У меня есть сервер DELL со встроенным контроллером PERC H700. Я сделал RAID5 с 12 жесткими дисками, и виртуальное устройство находится в Оптимальном состоянии, но я получаю такие ошибки под Linux:
sd 0:2:0:0: [sda] Unhandled error code
sd 0:2:0:0: [sda] Result: hostbyte=0x07 driverbyte=0x00
sd 0:2:0:0: [sda] CDB: cdb[0]=0x88: 88 00 00 00 00 07 22 50 bd 98 00 00 00 08 00 00
end_request: I/O error, dev sda, sector 30640487832
sd 0:2:0:0: [sda] Unhandled error code
sd 0:2:0:0: [sda] Result: hostbyte=0x07 driverbyte=0x00
sd 0:2:0:0: [sda] CDB: cdb[0]=0x88: 88 00 00 00 00 07 22 50 bd 98 00 00 00 08 00 00
end_request: I/O error, dev sda, sector 30640487832
sd 0:2:0:0: [sda] Unhandled error code
sd 0:2:0:0: [sda] Result: hostbyte=0x07 driverbyte=0x00
sd 0:2:0:0: [sda] CDB: cdb[0]=0x88: 88 00 00 00 00 07 22 50 bc e0 00 00 01 00 00 00
end_request: I/O error, dev sda, sector 30640487648
Но все диски находятся в состоянии прошивки: Online, Spun Up.
Также нет ни одной ошибки чтения или записи ATA ни на одном диске в рейде (проверяю с помощью smartctl -a -d sat+megaraid,N -H /dev/sda
). Единственная странность в выводе в
megacli:
megacli -LDInfo -L0 -a0
...
Bad Blocks Exist: Yes
Как могут быть плохие блоки на виртуальном диске, который находится в оптимальном состоянии, и ни один диск не сломан или даже с единственной ошибкой? Я попробовал "Проверка согласованности", но она завершилась успешно, и ошибки все еще находятся в dmesg. Может ли кто-нибудь помочь мне разобраться, что не так с моим рейдом?
Индикатор MegaCLI «Существуют плохие блоки» относится к таблице Soft Bad Block Management, которая работает следующим образом (цитата из Документы MegaRaid):
Если CU обнаруживает ошибку носителя на исходном диске во время восстановления, он инициирует чтение сектора для этого блока. Если чтение сектора не удается, CU добавляет записи в таблицу Soft Bad Block Management (SBBM), записывает эту таблицу на целевой диск и отображает сообщение об ошибке.
Дополнительные сообщения об ошибках отображаются, если таблица SBBM заполнена на 80% или на 100%. Если таблица SBBM полностью заполнена, операция восстановления прерывается, и диск помечается как FAIL.
Таблица SBBM не будет содержать тех же "плохих" отметок, которые сообщает SMART, поскольку критерии и методы действий очень разные.
Посмотрите, какой из ваших дисков сообщает об ошибках, используя megacli -LDPDInfo -aAll
и внимательно изучите его.
У меня недавно возникла эта проблема. В массиве было сообщение «Bad Blocks Exist: Yes», но все LD и PD были в порядке. При чтении этого массива произошли ошибки.
Я нашел команду -LDBBMClr
которые очищают эту таблицу fkng.
megacli -LDBBMClr -L0 -a0
(измените номер в соответствии с вашим адаптером / массивом)
Пожалуйста, не забудьте перемонтировать файловую систему (или перезагрузить), поскольку предыдущие ошибки чтения могут вызвать некоторые проблемы позже.