Так что мне пришло в голову, что, используя четность XOR, я не могу определить, какой диск неисправен в наборе чередований.

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

Использование XOR, как и любой другой контрольной суммы, не скажет, какой диск в полосе был причиной неправильного вычисления четности, но вы знаете, что на одном из дисков возникла проблема.

Этот сценарий должен быть решен каким-то образом, учитывая ограничения рейда 5, но, честно говоря, он ускользает от меня. Я могу представить, что raid-6 с горизонтальной (raid-4'ish) и диагональной четностью может триангулировать плохие блоки и показать, на каком диске содержится плохая область .... но этот вопрос относится к наборам raid-5.

Заранее спасибо.

1 ответ1

2

Контроллер RAID определяет, какой диск неисправен, определяя, какой из них выбрасывает ошибки ввода-вывода или не отвечает.

Современный жесткий диск (т. Е. Созданный за последние 20 лет или около того) использует ECC на уровне секторов для выявления и исправления ошибок переворота битов. Используемые в настоящее время системы ECC могут исправить любую однобитовую ошибку в секторе и могут обнаружить все двухбитовые ошибки. Если повторные чтения сектора постоянно приводят к появлению однобитовых ошибок, микропрограмма накопителя автоматически переустанавливает сектор на неиспользуемую часть диска (для этого на всех современных жестких дисках имеется немного свободного места); если возникают двухбитные ошибки, микропрограмма сообщит об ошибке ввода / вывода контроллеру, а контроллер RAID пометит диск как неисправный. Для того, чтобы данные могли быть обнаружены необнаружимо, необходимо перевернуть как минимум три бита в одном секторе - событие, которое исчезающе редко.

Если вы подозреваете, что плохая прошивка вызывает переворот, вы можете определить это на уровне RAID (для RAID 1, 10, 5 и 6), выполнив проверку согласованности, но это просто скажет вам, что существуют полосы, где четность / зеркалирование не совпадает; он не скажет вам, какой диск плохой. Вы можете найти неисправный диск, вытащив диск из массива и выполнив "проверку поверхности" на наличие поврежденных блоков с помощью вашего любимого инструмента проверки диска: если прошивка плохая, при сканировании должны быть обнаружены сотни тысяч поврежденных секторов.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .