Linux Software Raid 10 зависает после сбоя 1 диска, mdadm не позволит мне принудительно удалить неисправное устройство

8

У меня есть программа raid 10 для Linux, состоящая из 5 RAID 1 (два диска на зеркальную настройку) и RAID 0 для всех 5 пар RAID 1. Чтобы проверить, что ни один из дисков не выйдет из строя быстро под нагрузкой, я использовал бадблоки на RAID 0 с деструктивным режимом чтения / записи.

Команда Badblocks: badblocks -b 4096 -c 98304 -p 0 -w -s / dev / md13

Одно из устройств вышло из строя, и вместо программы «badblocks», радостно двигаясь на нем, зависло. Если я запускаю команду синхронизации, это также зависает. Сначала я бы предположил, что это не стандартное поведение для устройства RAID 1. Если один из дисков выйдет из строя, он все равно сможет записать в виртуальное устройство, которое два диска составляют без проблем.

Поэтому я приступил к принудительному выходу из строя диска и попытался его удалить. Я могу без проблем установить диск на неисправный (однако операции ввода-вывода все еще зависают). Я не могу удалить устройство полностью из рейда, он говорит, что он занят. Мое предположение состоит в том, что если я смогу полностью исключить его из рейда, IO продолжится, но это всего лишь предположение, и я думаю, что я имею дело с некоторой ошибкой.

Что именно здесь происходит? Я в неисправимом месте из-за ошибки?

В системе работает ядро ​​2.6.18, поэтому оно не совсем новое, но я бы подумал, учитывая, что программный рейд существовал так долго, что таких проблем не было бы.

Любое понимание очень ценится.

mdadm - деталь / dev / md13

/ DEV / md13:

    Version : 00.90.03   Creation Time : Thu Jan 21 14:21:57 2010
 Raid Level : raid0
 Array Size : 2441919360 (2328.80 GiB 2500.53 GB)    Raid Devices : 5  

Всего устройств: 5 Предпочитаемый незначительный: 13 Постоянство: Суперблок является постоянным

Update Time : Thu Jan 21 14:21:57 2010
      State : clean  Active Devices : 5 Working Devices : 5 

Неисправные устройства: 0 Запасные устройства: 0

 Chunk Size : 64K

       UUID : cfabfaee:06cf0cb2:22929c7b:7b037984
     Events : 0.3

Number   Major   Minor   RaidDevice State
   0       9        7        0      active sync   /dev/md7
   1       9        8        1      active sync   /dev/md8
   2       9        9        2      active sync   /dev/md9
   3       9       10        3      active sync   /dev/md10
   4       9       11        4      active sync   /dev/md11

Неудачный рейдовый выход:

/ dev / md8: Версия: 00.90.03 Время создания: чт 21 января 14:20:47 2010 Уровень рейда: raid1 Размер массива: 488383936 (465,76 ГБ 500,11 ГБ) Размер устройства: 488383936 (465,76 ГБ 500,11 ГБ) Устройства рейда: 2
Всего устройств: 2 Предпочитаемый Minor: 8 Постоянство: Суперблок является постоянным

Update Time : Mon Jan 25 04:52:25 2010
      State : active, degraded  Active Devices : 1 Working Devices : 1

Неисправные устройства: 1 Запасные устройства: 0

       UUID : 2865aefa:ab6358d8:8f82caf4:1663e806
     Events : 0.11

Number   Major   Minor   RaidDevice State
   0      65       17        0      active sync   /dev/sdr1
   1       8      209        1      faulty   /dev/sdn1
ScottZ
источник

Ответы:

1

Извините, может быть, я не очень хорошо понял, и cat / proc / mdstat может быть полезен, но, насколько я вижу, вы застрелили себя в ногу, уничтожая ваши данные на RAID0 и так далее на базовых массивах RAID1. Если вам нужно проверить надежность RAID, вы должны пометить как неисправный диск, диск, чтобы не уничтожать логические блоки, относящиеся ко всем лежащим в основе дискам RAID1, если я хорошо понял проблему (дайте мне знать).

twistedbrain
источник
0

Может быть, вам нужно обратиться к ядру, чтобы удалить неисправный диск. это выпустит зависший RAID.

Вы можете удалить его с помощью скрипта, например http://bash.cyberciti.biz/diskadmin/rescan-linux-scsi-bus/

Дом
источник
Хотя этот сценарий интересен, и мне нужно больше взглянуть на то, как он добавляет / удаляет устройства, чтобы увидеть, смогу ли я принудительно удалить его, но в конечном итоге система все еще видит диск как активный. Устройство не должно быть полностью мертвым для программного рейда, чтобы выкинуть его из raid1, и в этом случае некоторые записи были неудачными, но устройство все еще «существует»
ScottZ