Исправление файловой системы только для чтения на Raid-1?

У меня есть сервер Ubuntu 18, использующий программный массив RAID-1, и smartctl указывает, что мой / dev / sda дает сбой. Оба параметра Throughput_Performance и Reallocated_Sector_Ct указаны как «FAILING_NOW».

Однако это не привело к сбою RAID, поскольку / proc / mdstat по-прежнему указывает на оба диски в порядке.

К сожалению, хотя smartctl показывает, что мой / dev / sdb в порядке, ошибка на / dev / sda каким-то образом привела к тому, что моя файловая система стала доступной только для чтения. Любая попытка записи или удаления файлов сообщает об ошибке, например:

rm: cannot remove '<somefile>': Read-only file system

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

Тем не менее, я думал, что вся суть RAID-1 , и причина, по которой я его использовал, заключалась в том, что он позволяет избежать отказа одного диска из-за повреждения файловой системы за счет зеркалирования всех данных между двумя дисками? Сбой диска должен остановить зеркалирование, но по-прежнему предоставить ОС полный доступ для чтения / записи к оставшемуся диску, верно?

Я собираюсь заменить неисправный диск, но как мне тем временем исправить файловую систему, и предотвратить отказ одного диска от поломки моего массива RAID-1?

1
задан 18 February 2020 в 21:18
1 ответ

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

Уровень MD не считывает данные с нескольких дисков и не сравнивает их, а также не слишком разбирается в сбоях дисков. Он будет постоянно пытаться использовать неисправные диски. Вот почему я отслеживаю варианты «исключения ata» в моем журнале ядра, потому что они указывают на то, что диск выйдет из строя задолго до чего-либо еще. Затем я просто mdadm --manage / dev / mdX --remove / dev / xxx диск и добавляю еще один с помощью mdadm --manage / dev / mdX --add / dev / xxx .

А пока вы можете удалить неисправный диск, возьмите полный dd клон устройства / dev / mdX в качестве резервной копии ( dd if = / dev / mdX of = / some / file / on / some / other / device bs = 4M ) (или записать в stdout и перенаправить через ssh) и с sysrescue CD / USB-накопителя, выполнить fsck -f -C / dev / mdX , несколько раз (это оказалось необходимым).

(вместо этого может быть разумнее создать резервную копию диска компонента, а не зеркало)

2
ответ дан 25 February 2020 в 23:31

Теги

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