Назад | Перейти на главную страницу

Как RAID обнаруживает неисправный жесткий диск?

Я просматривал уровни Рейдов последние 3 дня. И мы взвесили плюсы и минусы аппаратного / программного обеспечения рейдовых контроллеров. Я понимаю, что RAID не является решением для резервного копирования, и меня это устраивает, хотя один вопрос все еще остается.

Как RAID-контроллер, даже с Raid 1 по Raid 6, на самом деле обнаруживает, что жесткий диск выходит из строя. Проведенное мною исследование показало, что наиболее распространенные производители жестких дисков используют ECC в конструкции своих жестких дисков, которая, как предполагается, защищает от сбоев в 1 бит до 3 разряда.

Хотя, если подумать, допустим, у вас есть Raid (1) и два идентичных жестких диска. Допустим, данные читаются с диска 0, а также одновременно с диска 1. Хотя диск 1 сообщает об ошибке чтения ECC на контроллер Raid.

Теперь это большой вопрос, что будет делать контроллер Raid с аппаратным рейдом? Он получил сигнал с жесткого диска, что чтение не удалось. Он может сообщить, что жесткий диск неисправен и требует замены.

Ищет ли Raid Controller данные на другом жестком диске до тех пор, пока он не получит успешное чтение с диска. (Да, диск может сообщать о правильном чтении, но данные все еще могут быть повреждены, а RAID не проверяет полярность или ECC при чтении)

Я задал этот вопрос инженеру NetApp, который выступал с нами. Его ответ был более или менее таков:

Никто не читает контрольные суммы при чтении. Нет никакого смысла. Чтение контрольной суммы означает, что вы должны прочитать весь срез плюс контрольную сумму, а затем вычислить контрольную сумму, чтобы убедиться, что у вас есть правильные данные. Плюс ортоганальная контрольная сумма, если вы используете RAID-6 или что-то еще. Это убийца общей производительности, потому что он нарушает возможность случайного поиска в совершенно разных секторах на разных дисках одновременно. Точно так же почти никто не читает обе стороны зеркала в RAID-1, потому что, если вы читаете только одну сторону, вы можете чередовать, с какой стороны зеркала вы читаете, чтобы получить более высокую пропускную способность, и если у вас внезапно возникнет несоответствие, какой диск делает вы считаете правильным, а какой - сломанным? Все современные RAID-системы зависят от контроллеров на диске, которые сигнализируют RAID-контроллеру о том, что они находятся в аварийном состоянии (через SMART и т.п.), после чего этот диск почти всегда выкидывается из массива. Контрольные суммы используются для восстановления массивов, а не для проверки чтения.

Ответ на вопрос будет во многом зависеть от производителя RAID-контроллера и от того, как они реализовали обнаружение ошибок / сбоев диска.

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

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

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

У меня был контроллер, который не ЗНАЛ, что возникла проблема с приводом. У нас был трехдисковый RAID 5, где один диск полностью отказал. Установлен новый диск, и в процессе восстановления одного из исправных дисков произошла неисправимая ошибка чтения, которая становится все более и более серьезной проблемой, поскольку диски становятся больше, а производители допускают определенное количество таких ошибок в производственном процессе. Конечный результат? Восстановление из резервной копии с нуля. Поэтому, когда вы спрашиваете, как контроллер «знает», что диск плохой, он не обязательно знает.

Другими словами, RAID-контроллеры делают все, что в их силах. Они все еще терпят неудачу.

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

Программный RAID интегрирован с ОС, он намного дешевле, и сейчас он примерно такой же надежный (особенно если вы говорите о Linux) и почти такой же быстрый (в некоторых случаях быстрее). Также не требует специальных драйверов, в отличие от многих контроллеров. Если вы используете высокопроизводительную карту, она, вероятно, будет работать лучше, но для большинства домашних RAID-массивов они, как правило, сопоставимы по скорости.

Если вы говорите о RAID материнской платы, это не совсем RAID. Это дрянная версия программного RAID, и это делает практически невозможным восстановление данных, если ваша материнская плата выходит из строя, потому что часто они зависят от поставщика в том, как они портят данные на диске. У меня были случаи, когда система выходила из строя, и вы не могли перенести диск из массива в другую систему для восстановления данных.

В целом, если вы не говорите о RAID для серверов в бизнесе или не имеете действительно специализированных потребностей, программный RAID, вероятно, находится на одном уровне с аппаратным RAID на 90% того, для чего его использовали бы домашние пользователи.