Как проверить / восстановить массив RAID1?

361
user2233709

В настоящее время я использую программный массив RAID-1 в Linux, построенный поверх жесткого диска и SSD. У меня сильное чувство, что SSD выходит из строя.

Я хотел бы проверить, насколько плохо работает SSD. Я проверил массив, echo check > /sys/block/md1/md/sync_actionи, когда он был закончен, я посмотрел содержимое /sys/block/md1/md/mismatch_cnt. Я запускал его 3 раза подряд и получал 3 разных результата: 256, 128 и 384. Меня удивляет то, что второй прогон дал более низкий результат, чем первый. Было ли исправлено несоответствие?

Есть ли способ получить более подробную информацию о обнаруженных несоответствиях? Может быть интересно проверить, изменяются ли несовпадающие блоки или они всегда одинаковы. Я также хотел бы взглянуть на содержимое несоответствующих блоков, чтобы увидеть, могу ли я сказать, какой из них правильный. (Например, если SSD обнулел некоторые блоки, он не мог бы перечитать.)

Более того, я вижу, что есть опция для repairмассива MD. Но я несколько подозрительно: как ядро ​​может угадать, какой из блоков несоответствия является правильным?

0
Я не знаю ответа на вопрос, но установка RAID1 работает на скорости самого медленного компонента. Это не быстрее, чем работать только на HD. Christopher Hostage 5 лет назад 0
@ChristopherHostage Это не относится к производительности чтения, если я настраиваю массив для чтения SSD, а не HDD, что я могу сделать, используя опцию «в основном для записи», когда добавляю HDD. user2233709 5 лет назад 2
Да. «В основном пишите» было для меня новым термином ... Поиск в Google привел меня к следующей ссылке, в которой также упоминается инструмент, который вы использовали. Ухоженная. https://www.tansi.org/hybrid/ Christopher Hostage 5 лет назад 0

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

0
user2233709

Хорошо ... Чтение исходного кода process_checksфункции в drivers/md/raid1.cфайле из linux 4.9.88, если я правильно его прочитал:

  1. Невозможно сделать подробные операции проверки или исправления о том, где обнаружены несоответствия.
  2. Если во время проверки или восстановления произошла ошибка чтения, сбойный блок будет перезаписан.
  3. Если во время операции восстановления обнаруживается несоответствие, оно будет исправлено путем копирования блока из «первичного» (первого неисправного) блока в другой блок (и).

Следовательно, нет никакого предположения, какой из блоков несоответствия является правильным; просто первый правильный. (Как я прочитал, даже если есть 3 компонента, а 2-й и 3-й имеют одинаковое содержание.)

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