Решение предупреждения «mismatch_cnt is not 0 on /dev/md*»

Заменил однажды нерабочий диск в программном RAID1, добавил его в рейд, он успешно синхронизировался, установил GRUB.
Через некоторое время получил email сообщение:

Subject: Cron <root@server> /usr/sbin/raid-check
WARNING: mismatch_cnt is not 0 on /dev/md2

В моем случае raid-check обнаружил что счетчик mismatch_cnt не равняется 0 для /dev/md2, а это может говорить о том что на диске возможно есть битые сектора, либо его просто нужно пересинхронизировать. Так как я установил GRUB после добавления диска в рейд, то это скорее и является причиной.

Пример просмотра счётчиков всех массивов:

cat /sys/block/md*/md/mismatch_cnt

Или каждого по очереди:

cat /sys/block/md0/md/mismatch_cnt
cat /sys/block/md1/md/mismatch_cnt
cat /sys/block/md2/md/mismatch_cnt

Просмотр состояния рейдов:

cat /sys/block/md*/md/sync_action

Если mismatch_cnt не равно 0 для какого либо массива, то можно попробовать его ресинхронизировать:

echo 'repair' >/sys/block/md2/md/sync_action

И проверить:

echo 'check' >/sys/block/md2/md/sync_action

Если понадобится отменить действие:

echo 'idle' >/sys/block/md2/md/sync_action

Посмотрим статус синхронизации и прочие данные массива:

cat /proc/mdstat

Если ошибки появляются из-за плохого диска, рекомендую посмотреть SMART и проверить его как я писал в этих статьях:
Диагностика HDD используя smartmontools
Тест диска в Linux на наличие ошибок и битых секторов

Смотрите также:
Решение проблемы с выпавшими дисками mdadm

Оставьте комментарий

Добавить комментарий