Имеем: сетевой накопитель NETGEAR STORA. Рейд из 2 жестких дисков.
Приходит email от Сторы о том, что один из жестких дисков выпал из рейда. Смотрю в вебморде - все так. Один диск в состоянии "не инициализирован". Инициализирую. Начинается процесс синхронизации и постоянно рвется на 3,5 процентах.
Разбираем ситуацию дальше.
Рейд софтовый, состоит из sda1 и sdb1. Из рейда вылетел sda1. Смотрю SMART дисков - sda1 полностью исправен, sdb1, что остался в рейде в статусе actrive, имеет большое количество ошибок чтения и ненулевое число секторов в статусе "Pending " и один сектор в статусе "relocated'. Тут подробности
www.nn.ru/community/techno/t...496301#105496301
При перестройке raid sda1 находится в статусе spare, sdb1 - в статусе active, sync. Но из-за наличия сбойных секторов процесс прерывается. Тестирование утилитой badblocks подтверждает наличие нечитаемых блоков.
Ситуация несколько упрощается из-за того, что известно точно, когда произошло разрушение рейда. Данные на дисках практически идентичны.
Задача сводится к тому, чтобы "spare" диск сделать активным.
Три дня экспериментов и гугления подсказали простой путь.
Изначально хотел при помощи dd скопировать диск с пропуском ошибок, но это была бы лишняя работа, ибо данные идентичны.
Суть решения:
1) размонтируем все файловые системы
2) останавливаем рейд mdadm -S /dev/md0 (суперблоки не перетираем!!!!)
3) пересоздаем рейд с опцией --assume-clean и отсутсвующим вторым диском! Примерно так:
mdadm --create --level=raid1 --raid-devices=2 /dev/sda1 missing
4) Перегружаем устройство
Метод сработал! SPARE диск стал в статус ACTIVE. Вся информация сохранилась.
Сбойный диск был на гарантии, обменяли без вопросов в Ситилинке, поставил на место второго винта, воссоздание зеркало прошло успешно.