Сегодня я в очень плохом месте. Вышел из строя производственный рейдовый массив. Контроллер вышел из строя. После размонтирования файловых систем и убийства всех процессов я поменял аппаратный контроллер. После перезапуска массива диски вернулись, и я хочу попытаться собрать массив заново.
Однако я не могу остановить существующий массив.
У меня есть :
cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md1 : active raid5 sdi1[5](F) sdh1[6](F) sdg1[7](F) sdf1[8](F) sde1[9](F) sdd1[10](F)
976751616 blocks level 5, 64k chunk, algorithm 2 [5/0] [_____]
md2 : active raid5 sdo1[5](F) sdm1[6](F) sdl1[7](F) sdk1[8](F) sdj1[9](F)
3907039744 blocks level 5, 64k chunk, algorithm 2 [5/0] [_____]
unused devices: <none>
Диски теперь / dev / sdn sds sdt sdu sdv и sdw + sdx sdy sdz sdaa и sdab
Попытка остановить массив дает:
[root@tango ~]# mdadm --stop /dev/md1
mdadm: fail to stop array /dev/md1: Device or resource busy
Perhaps a running process, mounted filesystem or active volume group?
Это потому, что он считает, что группы томов все еще активны.
lvs дает:
/dev/md1: read failed after 0 of 4096 at 0: Input/output error
/dev/md2: read failed after 0 of 4096 at 0: Input/output error
/dev/raid5_vol2/u03: read failed after 0 of 4096 at 0: Input/output error
/dev/raid5_vol1/u06: read failed after 0 of 4096 at 0: Input/output error
LV VG Attr LSize Origin Snap% Move Log Copy% Convert
LogVol00 VolGroup00 -wi-ao 111.00G
LogVol01 VolGroup00 -wi-ao 17.50G
u01 raid1_vol1 -wi-ao 128.00G
u04 raid1_vol2 -wi-ao 128.00G
u05 raid5_vol3 -wi-ao 521.00G
u02 raid5_vol4 -wi-ao 521.00G
u07 raid5_vol5 -wi-ao 248.00G
попытка установить lv как неактивный не удалась:
[root@tango ~]# lvchange -a n /dev/raid5_vol1
/dev/md1: read failed after 0 of 4096 at 0: Input/output error
/dev/md2: read failed after 0 of 4096 at 0: Input/output error
/dev/raid5_vol2/u03: read failed after 0 of 4096 at 0: Input/output error
/dev/raid5_vol1/u06: read failed after 0 of 4096 at 0: Input/output error
/dev/md1: read failed after 0 of 4096 at 0: Input/output error
/dev/md1: read failed after 0 of 4096 at 1000193589248: Input/output error
/dev/md1: read failed after 0 of 4096 at 1000193646592: Input/output error
/dev/md1: read failed after 0 of 4096 at 0: Input/output error
/dev/md1: read failed after 0 of 4096 at 4096: Input/output error
/dev/md1: read failed after 0 of 4096 at 0: Input/output error
/dev/md2: read failed after 0 of 4096 at 0: Input/output error
/dev/md2: read failed after 0 of 4096 at 4000808632320: Input/output error
/dev/md2: read failed after 0 of 4096 at 4000808689664: Input/output error
/dev/md2: read failed after 0 of 4096 at 0: Input/output error
/dev/md2: read failed after 0 of 4096 at 4096: Input/output error
/dev/md2: read failed after 0 of 4096 at 0: Input/output error
/dev/raid5_vol2/u03: read failed after 0 of 4096 at 3974992166912: Input/output error
/dev/raid5_vol2/u03: read failed after 0 of 4096 at 3974992224256: Input/output error
/dev/raid5_vol2/u03: read failed after 0 of 4096 at 0: Input/output error
/dev/raid5_vol2/u03: read failed after 0 of 4096 at 4096: Input/output error
/dev/raid5_vol2/u03: read failed after 0 of 4096 at 0: Input/output error
/dev/raid5_vol1/u06: read failed after 0 of 4096 at 991063638016: Input/output error
/dev/raid5_vol1/u06: read failed after 0 of 4096 at 991063695360: Input/output error
/dev/raid5_vol1/u06: read failed after 0 of 4096 at 0: Input/output error
/dev/raid5_vol1/u06: read failed after 0 of 4096 at 4096: Input/output error
/dev/raid5_vol1/u06: read failed after 0 of 4096 at 0: Input/output error
Volume group "raid5_vol1" not found
Skipping volume group raid5_vol1
Я также пробовал:
[root@tango ~]# mdadm --assemble --force /dev/md1 /dev/sdn /dev/sds /dev/sdt /dev/sdu /dev/sdv /dev/sdw
mdadm: device /dev/md1 already active - cannot assemble it
Так что у меня нет идей! Кто-нибудь может помочь?
Кэти
[root@tango ~]# cat /etc/mdadm.conf
DEVICE partitions
ARRAY /dev/md2 level=raid5 num-devices=5 metadata=0.90 spares=1 UUID=dce41d37:804dea59:e5727503:733c194b
ARRAY /dev/md1 level=raid5 num-devices=5 metadata=0.90 spares=2 UUID=9e8a7463:ea5942af:abf7ab25:de5bb614
Я, наконец, решил эту проблему, 24 часа боли, поэтому подумал, что поделюсь:
Вот информация, если вы потеряете контроллер диска, все ваши диски перейдут в состояние сбоя. Когда вы выключаете массив и заменяете контроллер при перезапуске, все диски имеют разные метки. Заметьте, я не сказал "перезагрузка". Я перезапустил массив raid, так как систему не удалось перезагрузить.
Шаг 1 - Скажите mdadm, чтобы он забыл об отсоединенном диске, например:
$> mdadm / dev / md1 - удалить отсоединенный
Если вы попытаетесь использовать mdadm / dev / md1 --remove / dev / sdX, это не удастся, поэтому вам придется использовать «отсоединенный». Если это не приведет к отсоединению всех дисков в вашей группе рейда, вам, вероятно, придется запускать его более одного раза. Я сделал. При третьей попытке cat / proc / mdstat показал, что все они удалены.
Шаг 2 - Если вы попытаетесь выключить массив и у вас были какие-либо активные логические тома или пользователи на момент сбоя контроллера, вы не сможете:
$> mdadm --stop / dev / md1
Однако, если это сработает, пропустите шаг 3.
Шаг 3 - использование dmsetup remove для освобождения массива
Итак .. вам нужно запустить команду dmsetup remove -f -j 1234 -m 1. Эти числа получены при запуске dmsetup info и поиске неисправных томов. В моем случае их было легко идентифицировать, потому что у сломанных был открытый флаг, равный нулю. Запускать это в действующей системе пугает, поэтому убедитесь, что вы правильно поняли эти числа. Эта команда поможет:
$> dmsetup info .. .. .. Имя: raid5_vol2-u03 Состояние: АКТИВНОЕ Предварительное чтение: 1024 Присутствующие таблицы: LIVE Количество открытий: 0 Номер события: 0 Основное, второстепенное: 253, 6 Количество целей: 1 UUID: LVM- fPJWYWhBhTO7tzHMBbc01qR20Nazc8N93S0bMPqstrg0sFFVtipaWYi7NYzas12d
Объем на активном поле имел 1 в счетчике открытий. Сломанные имели открытый счет 0.
Если вы уверены, что у вас правильный том, вы можете выполнить команду. В моем случае это были два числа: 253 и 6.
$> dmsetup remove -f -j 253 -m 6 подождите 30 секунд $> mdadm --stop / dev / md1
Шаг 4 - предположим, что вам удалось остановить массив, который вам нужен, чтобы попытаться собрать его заново.
Для этого вам нужно знать, что такое новые метки дисков, если вы знаете серийные номера своих дисков до сбоя, что является хорошей практикой, вы можете запустить
$> smartctl -i / dev / sdN, чтобы узнать, какая метка соответствует какому диску. В качестве альтернативы вы можете снова выключить массив и физически проверить их.
Как только вы узнаете:
$> mdadm --assemble / dev / md1 / dev / sdn1 / dev / sds1 / dev / sdt1 ... и т. д.
Если это сработает, вы получите сообщение о начале рейда, если нет, то хмм ... Я не уверен!
Подожди немного ...
$> cat / proc / mdstat
Массив должен синхронизироваться / восстанавливаться. Мой маленький занял минуты, большой - часы. Если это сработает.
Шаг 5 - на этом этапе все группы томов, логические тома и т. Д. Будут в состоянии, чтобы исправить их, которые я запустил:
$> pvscan $> vgscan $> lvscan
К счастью для меня, это определило мой массив и все подключило, но оставило группу томов неактивной.
Итак, lvs показал:
неактивный raid5_vol1 ...
Шаг 6 - снова сделайте группу томов активной:
vgchange -a y raid5_vol1
Шаг 7 - Если все пойдет хорошо, это больше нельзя будет смонтировать, и вы можете поблагодарить меня в этом посте за помощь.
Удачи!
Кэти