Назад | Перейти на главную страницу

RAID-контроллер Linux (LVM / MDADM)

Сегодня я в очень плохом месте. Вышел из строя производственный рейдовый массив. Контроллер вышел из строя. После размонтирования файловых систем и убийства всех процессов я поменял аппаратный контроллер. После перезапуска массива диски вернулись, и я хочу попытаться собрать массив заново.

Однако я не могу остановить существующий массив.

У меня есть :

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 - Если все пойдет хорошо, это больше нельзя будет смонтировать, и вы можете поблагодарить меня в этом посте за помощь.

Удачи!

Кэти