Я пытаюсь решить эту проблему с mdadm raid1.
У меня есть сервер Ubuntu 9.04, работающий на программном 2-дисковом raid1 с mdadm. Вчера один из дисков вышел из строя, поэтому я заменил его на совершенно новый диск того же размера. Я удалил неисправный диск, скопировал раздел с оставшегося исправного диска на новый диск, а затем добавил его в raid. Он повторно синхронизировался, и система работала нормально, пока диск, который не вышел из строя, также не был помечен как неисправный.
Теперь у меня был raid, работающий исключительно на новом диске. Поэтому я купил другой диск и повторил процедуру выше. Так что теперь у меня было 2 совершенно новых диска, и raid синхронизировался. Однако через несколько минут я проверил /proc/mdstat, и raid больше не синхронизировался.
mdadm --detail /dev/md1 показывает: (sdb — первый новый диск, а sdc — второй новый диск)
root@dola:/home/jjaramillo# mdadm --detail /dev/md1 /dev/md1: Версия: 00.90 Время создания: Сб Дек 20 00:42:05 2008 Уровень рейда: raid1 Размер массива: 974711680 (929,56 ГиБ 998,10 ГБ) Использованный размер Dev: 974711680 (929,56 ГиБ 998,10 ГБ) Устройства рейда: 2 Всего устройств: 2 Предпочтительные второстепенные: 1 Постоянство: Суперблок является постоянным
Update Time : Wed Jun 2 10:09:35 2010
State : clean, degraded
Активные устройства: 1 Рабочие устройства: 2 Неисправные устройства: 0 Запасные устройства: 1
UUID : bba497c6:5029ba0b:bfa4f887:c0dc8f3d
Events : 0.5395594
Number Major Minor RaidDevice State
2 8 35 0 spare rebuilding /dev/sdc3
1 8 19 1 active sync /dev/sdb3
Я пробовал удалить и снова добавить диск несколько раз, но происходит то же самое. Рейд не может повторно синхронизироваться. Я посмотрел /var/log/messages и нашел следующее:
2 июня 07:57:36 ядро dola: [35708.917337] sd 5:0:0:0: [sdb] Необработанный код смысла 2 июня 07:57:36 ядро dola: [35708.917339] sd 5:0:0:0: [sdb] Результат: hostbyte=DID_OK driverbyte=DRIVER_SENSE 2 июня 07:57:36 ядро dola: [35708.917342] sd 5:0:0:0: [sdb] Ключ смысла: Средняя ошибка [текущая] [дескриптор] 2 июня 07:57:36 ядро dola: [35708.917346] Данные смысла дескриптора с дескрипторами смысла (в шестнадцатеричном формате): 2 июня 07:57:36 ядро dola: [35708.917348] 72 03 11 04 00 00 00 0c 00 0a 80 00 00 00 00 00 00 2 июня 07:57:36 ядро dola: [35708.917357] 00 43 9e 47 2 июня 07:57:36 ядро dola: [35708.917360] sd 5:0:0:0: [sdb] Доп. смысл: Неустраненная ошибка чтения - автоматическое перераспределение не удалось
Похоже, что на sdb (первом новом диске) есть какая-то ошибка. Мой вопрос в том, какой подход будет наилучшим, чтобы снова запустить raid? Я думал о том, чтобы dd'ить /dev/md1 на пустой жесткий диск, а затем переделать raid с нуля и загрузить данные обратно, но может быть есть более простое решение...
Любая помощь будет оценена по достоинству.
решение1
Вам не следует пытаться подготовить новый диск каким-либо осмысленным образом, если только ваши компоненты raid на самом деле не являются РАЗДЕЛАМИ диска, а не самими дисками. В этом случае вам следует создать раздел на новом диске того же размера, что и раздел на оставшемся активном диске.
Вам вообще не нужно трогать старый диск — он считается неисправным и ненадежным.
Правильная процедура — удалить сломанный диск, добавить новый, пустой диск, а затем использовать mdadm для добавления этого нового диска в массив. Вы бы сделали это примерно так:
mdadm --add /dev/md0 /dev/<newdrive>
Затем ядро синхронизирует новый диск с массивом, копируя данные с одного оставшегося исправного диска.
решение2
РЕ:
Я удалил неисправный диск, скопировал раздел с оставшегося исправного диска на новый диск, а затем добавил его в рейд.
Вам не следует копировать разделы самостоятельно.
Единственное, что вам нужно сделать, это вставить новый диск в систему и использовать mdadm, чтобы добавить его в вашу группу raid.
Если вы действительно сделали копию (например, dd if=/dev/good_disk of=/dev/new_disk), вы, вероятно, в конечном итоге скопировали UUID RAID или что-то еще, что позволяет mdadm узнать, какой диск какой, и затем он запутывается.
решение3
Установите новый жесткий диск, разбейте его на разделы, как предложил Том О'Коннор, а затем используйте mdadm для восстановления массива. Смотрите страницу руководства mdadm в разделе "For Manage mode:", параметр --add:
mdadm /dev/md0 --add /dev/sda1
Возможно, вам сначала придется сделать первый заменяемый диск неработоспособным.