Вопрос или проблема
У меня есть массив RAID1 из двух жестких дисков, один из которых недавно вышел из строя, но я не могу просто заменить сломанный.
mdadm --detail
сообщил, что первый слот для диска sda удален (что физически и произошло), второй слот для диска sdb продолжает работать (активен, синхронизирован).
sdb был недавно заменен, так что данные в безопасности.
Но когда я пытаюсь добавить диск с помощью mdadm /dev/md127 --add /dev/sdx
, возникает ошибка:
$ sudo mdadm /dev/md127 --add /dev/sdx1
mdadm: добавление нового устройства не удалось для /dev/sdx1: 3: Неверный аргумент
dmesg показывает следующее:
[ xx.xx] md: sdx1 не имеет действительного суперблока v1.2, импорт не выполняется!
[ xx.xx] md: md_import_device вернулся -22
Я подтвердил с помощью parted, что размер раздела sdx1 точно такой же, как у sdb1 (секторы и байты).
Также после --add
диска, хотя возникает ошибка, lsblk показывает, что метаданные для массива уже существуют на sda1.
Переведено с помощью DeepL
Ответ или решение
Проблема с добавлением отказавшего диска в RAID1 на базе mdadm
В данной ситуации вы столкнулись с проблемой восстановления RAID1 массива, где один из дисков вышел из строя. Ваш RAID массив состоял из двух жестких дисков, и один из них (sda) был физически удален из системы. Давайте рассмотрим, как решить проблему с добавлением нового диска (sdx) в массив RAID1 с помощью утилиты mdadm.
Шаг 1: Проверка состояния массива
Сначала важно удостовериться, что ваш массив существует и выявить его текущее состояние. Используйте команду:
sudo mdadm --detail /dev/md127
Эта команда позволит вам увидеть детальное описание массива, его состояние, и какие устройства в нем активны. Если ваш массив всё еще работает с оставшимся диском sdb, вы должны убедиться, что он синхронизирован и в нормальном состоянии.
Шаг 2: Подготовка нового диска
Диск, который вы пытаетесь добавить (sdx), должен быть правильно подготовлен. Прежде всего, необходимо убедиться, что на nом нет неполадок. Если диск новый или вы хотите переиспользовать его, выполните следующие шаги:
-
Отформатируйте диск (необходима, если на диске уже есть данные, которые не важны):
sudo wipefs -a /dev/sdx
-
Создайте раздел на диске (если это не было сделано):
sudo fdisk /dev/sdx
В fdisk создайте новый раздел (обычно /dev/sdx1).
-
Создание суперблока:
Ваша текущая проблема связана с недоступным суперблоком на sdx, поэтому нужно убедиться, что он соответствует формату RAID. Используйте команду:sudo mdadm --zero-superblock /dev/sdx1
Это удалит старый суперблок и позволит mdadm создать новый.
Шаг 3: Добавление диска в массив
Теперь попробуйте снова добавить новый диск:
sudo mdadm --add /dev/md127 /dev/sdx1
Если операция пройдет успешно, массив начнет процесс восстановления (синхронизации).
Шаг 4: Мониторинг состояния
Проверьте состояние массива, чтобы убедиться, что всё прошло успешно:
sudo mdadm --detail /dev/md127
Здесь вы должны увидеть, что новый диск добавлен и началась синхронизация.
Шаг 5: Решение возникших проблем
Если по-прежнему возникают ошибки, убедитесь в следующем:
- Все диски подключены и работают.
- Проверьте вывод
dmesg
на наличие дополнительных ошибок, которые могут помочь объяснить проблему. - Используйте
parted
для проверки структуры разделов (размеры и типы должны совпадать с активным диском).
Также стоит проверить, правильно ли настроены параметры RAID в конфигурационном файле mdadm.conf
. Иногда проблемы могут возникать из-за неверных параметров или устаревших сведений.
Заключение
Работа с RAID массивами может быть сложной задачей, особенно в случае, когда один из дисков выходит из строя. Убедитесь, что вы строго следуете рекомендациям, проверяйте состояние массивов и всех дисков. Эти шаги и рекомендации должны помочь вам успешно восстановить свой RAID1 массив, добавив новый диск без потери данных. Если проблемы продолжают возникать, возможно, стоит рассмотреть консультацию с экспертами по работе с RAID или технической поддержкой.