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

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

У меня есть программная конфигурация 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 счастливо продолжила работу, оно зависло. Если я запускаю команду sync, то тоже зависает. Сначала я бы предположил, что это нестандартное поведение для устройства RAID 1. Если один из дисков выйдет из строя, он все равно сможет записывать данные на виртуальное устройство, которое образуют два диска, без проблем.

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

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

Система работает под управлением ядра 2.6.18, так что оно не совсем новое, но я думаю, что, учитывая, что программный RAID существует уже так долго, подобных проблем возникнуть не должно.

Любая информация будет высоко оценена.

mdadm --detail /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 Предпочтительный второстепенный: 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

решение1

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

решение2

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

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

Связанный контент