Как предотвратить MDADM от сбоя диска из-за ошибок чтения?

421
Martin

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

Я видел это: https://serverfault.com/questions/475505/linux-mdadm-raid5-data-recovery-with-one-drive-failed-one-drive-failing

... но нет ответа, который помог бы мне

Предыстория: у меня был RAID 6, на котором 1 диск с ошибкой чтения сектора, который MDADM провалил за месяц до того, как я заметил. Затем 2-й диск тоже вышел из строя по той же причине, и я был в очень удобной ситуации, когда нужно было перегрузить оставшиеся диски, перестроив RAID 6 без какой-либо избыточности - вот почему у меня RAID 6 вместо RAID 5. Я запускал сбойные блоки на сбойных дисках, глядя на SMART диагностика, но оказалось, что с дисками все в порядке, с нулевыми ошибочными блоками или событиями повторной активации. Я пришел к выводу, что данные в некоторых секторах со временем стали слабее, но как только данные были записаны в них снова, все работают отлично. Я понимаю, что это не так уж редко на больших дисках.

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

Я думаю, что RAID 6 или 5 должен быть в состоянии работать даже со случайными плохими блоками. Например, если на диске № 1 имеется один нечитаемый сектор, RAID должен компенсировать это из-за избыточных данных на остальных дисках. Если на другом диске есть еще один нечитаемый поврежденный блок (диск № 2), он, скорее всего, повлияет на другой блок файловой системы или другой файл, поэтому массив RAID должен компенсировать это. Если это сработает, я смогу извлечь все данные без потери при необходимости. Но так как MDADM отказывает мои диски после ошибки чтения, я не получаю этого возможного преимущества избыточности RAID.

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

0
Похоже, что диски, которые вы используете, не предназначены для работы с RAID (то есть время ожидания дисков при медленном чтении / записи), и вы должны сосредоточиться на этом элементе. Кроме того, RAID 5 не работает. Также кажется, что вы спрашиваете об антитизисе о том, как должен работать RAID. Подумайте об этом - вы просите его НЕ ВЫПОЛНЯТЬ ДИСК, КОТОРЫЙ ОТКАЗЫВАЕТСЯ - когда это весь смысл наличия RAID, и делать иначе означает подвергая риску ваши данные и замедляя работу системы. davidgo 5 лет назад 0

0 ответов на вопрос

Похожие вопросы