Как RAID-контроллеры определяют, какой диск неисправен?

Как RAID-контроллеры определяют, какой диск неисправен?

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

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

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

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

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

решение1

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

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

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

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