--force, остановитесь и перейдите к восстановлению RAID.Стоп-проверка до любых изменений
mdadm --create, --force, --zero-superblock, wipefs, форматирование и изменение таблицы разделов. Эти де йствия могут изменить или уничтожить сведения, нужные для штатной сборки и восстановления.Базовые команды ниже используют синтаксис современных версий mdadm, но это не матрица совместимости всех пакетных сборок Debian 12/13, Ubuntu 22.04/24.04 LTS, RHEL, AlmaLinux и Rocky Linux 9. До работы сохраните вывод mdadm --version и uname -r. Возможность конкретного grow или reshape, требования к резервной области и способ продолжения прерванной операции проверяйте для установленной версии mdadm, ядра, уровня, раскладки и формата метаданных по локальному man mdadm и документации дистрибутива.
Проверка mdadm RAID до замены, сборки или расширения
Сохраните снимок состояния без записи на диски
Подставляйте реальные пути только после проверки. Примеры используют /dev/md0, /dev/sdX1 и /dev/disk/by-id/... как переменные, а не как готовые имена устройств.
- 1Запишите версии mdadm и ядраЭто нужно, чтобы позднее сопоставить поведение с документацией именно этой системы.
- 2Посмотрите активные массивы и фоновые операции
/proc/mdstatпоказывает только массивы, уже активные в ядре, а также строкиrecovery,resync,reshape,checkилиrepairс прогрессом. - 3Зафиксируйте детали каждого активного md-устройства
mdadm --detail /dev/md0показывает уровень, UUID, состояние, число рабочих устройств и роли видимых участников работающего массива. - 4Сопоставьте логические и физические устройства
lsblkпоказывает дерево устройств, разделы, точки монтирования и связи holder/slave. Для каждого доступного кандидата прочитайте суперблок черезmdadm --examine; физически отсутствующий накопитель эта команда исследовать не может.
d="/root/mdadm-state-$(date +%F-%H%M%S)"
mkdir -p -- "$d" || exit 1
mdadm --version 2>&1 | tee "$d/mdadm-version.txt"
uname -a 2>&1 | tee "$d/uname.txt"
cat /proc/mdstat 2>&1 | tee "$d/proc-mdstat.txt"
lsblk -e7 -o NAME,KNAME,PATH,SIZE,TYPE,FSTYPE,UUID,PARTUUID,MODEL,SERIAL,WWN,MOUNTPOINTS 2>&1 | tee "$d/lsblk.txt"
mdadm --detail /dev/md0 2>&1 | tee "$d/md0-detail.txt"for dev in /dev/sd[a-z][0-9]* /dev/nvme*n*p*; do [ -b "$dev" ] && mdadm --examine "$dev"; done | tee /root/mdadm-examine.txtЧто отвечают основные средства проверки
| Средство | Что показывает | Чего не доказывает |
|---|---|---|
cat /proc/mdstat | Активные md-массивы, число участников, деградацию и вид текущей фоновой операции. | Сохранённые суперблоки на неактивных или отсутствующих устройствах. |
mdadm --detail /dev/md0 | Параметры работающего массива, UUID, состояние, роли и статусы членов. | Что устройство /dev/sdX соответствует конкретному физическому слоту после перезагрузки. |
lsblk -o NAME,PATH,SIZE,TYPE,FSTYPE,MOUNTPOINTS,MODEL,SERIAL,WWN | Иерархию блоковых устройств, разделы, файловые системы, монтирования, серийные номера и WWN, если эти данные передаёт драйвер. | Согласованность RAID-метаданных и актуальность компонента. |
mdadm --examine /dev/... | Сохранённый суперблок mdadm на доступном компоненте. | Состояние физически отсутствующего диска или работоспособность массива как целого. |
/sys/block/md0/md/sync_action | Текущее действие MD. Частые значения: idle, recover, resync, reshape, check и repair; набор зависит от ядра и состояния. Процесс recover в /proc/mdstat обычно подписан как recovery. | Успешность операции без проверки журналов, /proc/mdstat и итогового состояния. |
cat /sys/block/md0/md/sync_action; cat /sys/block/md0/md/sync_completed 2>/dev/null; cat /sys/block/md0/md/degradedrecover в /sys/block/md0/md/sync_action соответствует процессу, который /proc/mdstat обычно подписывает как recovery: заполнению добавленного или возвращённого компонента данными массива. resync означает повторную синхронизацию существующих участников, например после некорректного завершения работы; reshape — изменение геометрии массива; check — проверку согласованности без намерения исправлять, а repair — проверку с исправлением. Не называйте все эти операции rebuild: у синхр онизации RAID разные причины и последствия.
journalctl -k -b | grep -Ei 'md[0-9]|raid|sd[a-z]|nvme|I/O error|medium error|reset|timeout|offline'Когда не продолжать штатную процедуру
--force или --create. Причины потери связи, ошибки I/O, кабели, корзину и HBA разбирают отдельно в материале «RAID Degraded, Offline или Failed: диагностика отказа дисков».Как найти физический диск, а не только /dev/sdX
Имя /dev/sdX назначается ядром при обнаружении устройства и может измениться после перезагрузки, перестановки кабелей или одновременного появления нескольких дисков. Сопоставляйте физический диск по нескольким признакам: стабильной ссылке /dev/disk/by-id/, серийному номеру, WWN, модели, фактическому размеру, а при наличии данных платформы — по адресу корзины, порту HBA или PCIe-пути.
ls -l /dev/disk/by-id/; lsblk -d -o NAME,PATH,SIZE,MODEL,SERIAL,WWN,TRAN; udevadm info --query=property --name=/dev/sdX | grep -E 'ID_SERIAL|ID_WWN|ID_PATH|ID_MODEL'Горячая замена требует подтверждения всей цепочки
Как заменить один отказавший диск в mdadm RAID
Эта ветвь применима, когда точно установлен один участник, а массив остаётся в допустимом деградированном режиме. Для RAID 1, RAID 5, RAID 6 и RAID 10 допустимость зависит от уровня и фактически затронутых позиций; RAID 10 не обязан пережить любые два отказа. RAID 0 избыточности не имеет: recovery после замены его участника не выполняется.
Штатная замена однозначно определённого участника
- 1Зафиксируйте состояние и подтвердите отказавшую позициюСохраните
mdstat,mdadm --detail,lsblk, результаты--examineдоступных компонентов и журнал ядра. Вmdadm --detailищите статус вродеfaulty,removedили отсутствующую роль; в/proc/mdstat— недостающую позицию в схеме[U_],[_U]и аналогичной. - 2Разделите видимый отказ и уже отсутствующее устройствоЕсли старый компонент ещё доступен и однозначно определён как неисправный, сначала логически пометьте его
faulty, затем удалите из массива. Если он уже исчез и вmdadm --detailотображается какremoved, не выполняйте--failбезусловно: проверьте слот, оставшуюся избыточность и отсутствие признаков временного обрыва. - 3Замените накопитель физическиПри подтверждённом hot-plug замените именно идентифицированный диск. Без hot-plug выполните штатное выключение. После появления нового устройства снова сверяйте serial, WWN, размер и физический слот — не имя
/dev/sdX. - 4Подготовьте компонентНовый целый диск или раздел должен иметь доступный размер не меньше требуемого, совместимый логический и физический секторный формат и корректное выравнивание. Если массив построен на разделах, воспроизведите только подтверждённую схему разметки и проверьте результат до добавления.
- 5Добавьте новый компонент и проверьте принятиеВыполните
mdadm --addдля конкретного раздела или диска. Сразу проверьтеmdadm --detail,/proc/mdstatиsync_action: успешный код возврата сам по себе не означает, что диск получил ожидаемую роль и начался recovery. - 6Дождитесь устойчивого состоянияПосле завершения recovery убедитесь, что число active devices соответствует конфигурации, в
/proc/mdstatвсе ожидаемые позиции активны, аsync_actionвернулся вidle. Регулярную проверку и оповещения настраивают отдельно: «Мониторинг и профилактика RAID».
mdadm --manage /dev/md0 --fail /dev/disk/by-id/OLD-DISK-part1
mdadm --manage /dev/md0 --remove /dev/disk/by-id/OLD-DISK-part1mdadm --manage /dev/md0 --add /dev/disk/by-id/NEW-DISK-part1
watch -n 2 'cat /proc/mdstat; echo; mdadm --detail /dev/md0; echo; cat /sys/block/md0/md/sync_action'Не добавляйте обратно старый диск по шаблону
Смешивание 512n, 512e и 4Kn нельзя считать безопасным по умолчанию. Важны фактический размер компонента в секторах, логический и физический сектор, ограничения контроллера и загрузочной цепочки. Более ёмкий диск может оказаться непригодным, если его доступный раздел меньше старого или отличается секторный формат.
Разделы и загрузочный RAID
grub2-install. После работ проверьте конфигурацию загрузчика и выполните контролируемую пробную загрузку с новым диском при доступном плане отката.Как штатно собрать mdadm RAID после перезагрузки
Автосборка обычно использует метаданные компонентов и конфигурацию системы. Если массив не появился автоматически, сначала проверьте, какие устройства реально доступны и согласованы. Совпадение одного Array UUID недостаточно: одинаково важны уровень, версия метаданных, число RAID-устройств, Device Role, Array State, Events и время обновления.
Сборка известного массива без принудительных ключей
- 1Исключите активный массив и зафиксируйте доступные компонентыПроверьте
/proc/mdstat,lsblkиmdadm --examineна каждом доступном предполагаемом компоненте. Не собирайте поверх уже активного массива с тем же содержимым. - 2Сверьте суперблокиСопоставьте Array UUID, Name или homehost, Raid Level, Raid Devices, Device Role, Array State, Events, Update Time и версию метаданных. Метаданные 0.90, 1.0, 1.1 и 1.2 размещаются в разных областях носителя, поэтому их совместимость с загрузкой и видимые признаки состояния различаются.
- 3Выполните обычную сборку только однозначного набораДля конфигурации, уже известной системе, применяют сканирование; для одного точно идентифицированного массива — сборку по UUID с явно перечисленными проверенными компонентами. Деградированная штатная сборка возможна лишь когда доступный состав укладывается в избыточность конкретного уровня и метаданные не противоречат друг другу.
- 4Проверьте результат до монтирования и обновления конфигурацииПосмотрите
mdadm --detail,mdstat, деревоlsblkи журнал ядра. Не записывайте новый ARRAY-элемент в конфигурацию автосборки, пока не доказано, что собран именно ожидаемый массив.
mdadm --assemble --scan
cat /proc/mdstat
mdadm --detail /dev/md0mdadm --assemble /dev/md0 --uuid=ARRAY-UUID /dev/disk/by-id/DISK-A-part1 /dev/disk/by-id/DISK-B-part1Что делают --run и --force
--run просит запустить собранный массив, когда mdadm иначе не запускает его автоматически; он не исправляет противоречивые метаданные. --force ослабляет обычные проверки и может запускать массив при состоянии, которое mdadm считает небезопасным. Ни --force, ни --create не являются универсальным средством восстановления. При расхождении Events, ролей, Array State, неполном наборе или превышении допустимых отказов не используйте их и перейдите к восстановлению RAID.После подтверждённой штатной сборки при необходимости обновляют автосборку и initramfs. В Debian и Ubuntu обычно проверяют /etc/mdadm/mdadm.conf и используют update-initramfs; в RHEL, AlmaLinux и Rocky Linux — /etc/mdadm.conf и dracut. Это не обязательный шаг после каждой замены: он нужен, когда конфигурация автосборки действительно должна знать подтверждённый массив, особенно для массива, необходимого при загрузке.
# Debian/Ubuntu: после проверки правильности ARRAY-записей
update-initramfs -u
# RHEL/AlmaLinux/Rocky Linux: после проверки /etc/mdadm.conf
dracut -fКак расширить mdadm RAID и верхние слои хранения
Расширение — только для исправного стабильного массива
mdadm --grow массив должен быть исправен и стабилен: без recovery, resync, reshape, check или repair, без неразобранных ошибок дисков и с проверенной резервной копией. Онлайн-расширение и reshape зависят от уровня RAID, версии mdadm, версии ядра, раскладки и текущей геометрии; не обещайте одинаковую возможность для всех систем.Добавление устройства и увеличение component size — разные операции. У RAID 1 добавление устройства обычно создаёт дополнительную копию, а не увеличивает полезную ёмкость. Для RAID 5, RAID 6 и RAID 10 изменение числа raid-devices может требовать reshape; возможность, способ продолжения прерванного reshape и допустимые переходы нужно проверять на вашей версии. Если целевая операция не поддерживается, безопаснее создать новый массив и перенести данные по процедуре из настройки программного RAID, чем применять непроверенные ключи.
Расширение component size после установки более ёмких дисков
- 1Последовательно замените накопителиЕсли ёмкость увеличивают заменой дисков, меняйте только один однозначно определённый участник за раз по процедуре штатной замены. После каждого добавления дождитесь завершения recovery и подтвердите исправное устойчивое состояние массива. Не извлекайте следующий участник, пока предыдущий не занял ожидаемую рабочую позицию.
- 2Подготовьте слой ниже mdadmПосле замены всех требуемых активных компонентов убедитесь, что каждый из них предоставляет нужный размер. Если компонентом mdadm является раздел, увеличьте именно этот раздел, сохранив его начало и выравнивание. До продолжения проверьте через
lsblkи данные о секторах, что каждый требуемый компонент действительно стал больше. - 3Увеличьте размер компонента в массивеТолько после подготовки всех требуемых компонентов выполните поддерживаемую для данного массива операцию
mdadm --grow --size=maxили иной документированный вариант. Контролируйтеreshapeлибо другое действие в/proc/mdstatиsync_action. - 4Расширьте реально существующие слои выше mdadmРост
/dev/md0ещё не увеличивает файловую систему. Следуйте фактическому стеку снизу вверх: раздел внутри md-устройства, затем LUKS, затем LVM PV и LV, затем файловая система; пропускайте отсутствующие слои. - 5Проверьте новый размер на каждом уровнеСверьте размер md-устройства, раздела, dm-устройства, PV/LV и файловой системы. Не уменьшайте нижний слой в надежде на обратимость: сокращение md и многих файловых систем ограничено или не поддерживается.
mdadm --grow /dev/md0 --size=max
watch -n 2 'cat /proc/mdstat; echo; cat /sys/block/md0/md/sync_action; echo; mdadm --detail /dev/md0'Изменение числа RAID-устройств не имеет универсальной команды
raid-devices запускает reshape. У RAID 10 допустимость перехода зависит также от раскладки и числа устройств. До mdadm --grow /dev/md0 --raid-devices=... подтвердите поддержку именно исходной и целевой геометрии установленными версиями mdadm и ядра, требования к внешнему --backup-file или внутренней резервной области и документированный способ продолжения после сбоя. Не выполняйте предварительный --add, пока весь переход не проверен.Порядок роста верхних слоёв определяется фактической схемой хранения
| Стек над mdadm | Что растёт после /dev/md0 | Примечание |
|---|---|---|
| Файловая система прямо на MD | Файловая система. | resize2fs обычно используют для ext4; файловую систему XFS увеличивают в смонтированном состоянии через xfs_growfs; Btrfs — через btrfs filesystem resize. XFS не поддерживает уменьшение. |
Раздел внутри /dev/md0 | Таблица разделов и нужный раздел, затем его потребитель. | Сначала убедитесь, что раздел действительно находится на MD, а не MD построен на разделах дисков. |
| LUKS поверх MD | Сначала размер отображения LUKS документированным для версии cryptsetup способом, затем следующий слой. | Не предполагавайте одинаковое поведение LUKS1 и LUKS2 без проверки документации. |
| LVM поверх MD | pvresize, затем при необходимости lvextend, затем файловая система. | Увеличение PV не увеличивает LV автоматически. |
| LUKS → LVM → файловая система | LUKS, PV, LV, файловая система. | Порядок всегда идёт снизу вверх; проверяйте размер после каждого слоя. |
Не путайте рост RAID 1 с ростом ёмкости
Как остановить и удалить ненужный mdadm RAID
Остановка массива и очистка его метаданных — разные, потенциально необратимые действия. Сначала убедитесь, что это именно ненужный массив, а не похожий по имени или UUID рабочий массив. Проверьте монтирования, swap, LVM, dm-crypt, контейнеры и другие потребители блочного устройства.
findmnt -S /dev/md0
swapon --show
lsblk -o NAME,TYPE,MOUNTPOINTS,HOTPLUG
ls -l /sys/block/md0/holders /sys/block/md0/slavesВывод массива из эксплуатации
- 1Остановите потребителейШтатно остановите приложения и контейнеры, отключите swap на массиве, размонтируйте файловые системы, деактивируйте зависимые LVM-тома и закройте dm-crypt по их документации. Не используйте принудительное размонтирование как обычный способ.
- 2Остановите md-устройствоПосле исчезновения holders выполните
mdadm --stop /dev/md0и проверьте, что массив исчез из/proc/mdstat. Ошибка busy означает, что как минимум один потребитель ещё не отключён. - 3Удалите постоянные ссылки потребителейУдалите или исправьте относящиеся только к этому массиву записи в
/etc/fstab,/etc/crypttab, systemd mount- и swap-юнитах и конфигурации сервисов. Проверьте ссылки как на путь/dev/md0, так и на UUID файловой системы, LUKS и LVM. - 4Уберите массив из автосборкиУдалите или исправьте относящуюся к подтверждённому массиву запись в
/etc/mdadm/mdadm.confлибо/etc/mdadm.conf, затем при необходимости пересоберите initramfs. Не изменяйте записи других массивов. - 5Очищайте метаданные только перед повторным использованиемЕсли компоненты действительно выводятся из эксплуатации и данные больше не нужны, ещё раз сопоставьте каждый путь с serial и WWN и только затем очищайте md-суперблоки. Не выполняйте этот шаг для потенциально восстанавливаемого массива.
mdadm --stop /dev/md0
cat /proc/mdstatПодготовка компонентов к повторному использованию
mdadm --zero-superblock /dev/sdX1 очищает найденный md-суперблок на указанном компоненте; без --force команда обычно отказывается, если подходящий суперблок не найден, а с --force может записать служебную область. Расположение суперблоков зависит от формата: 0.90 и 1.0 используют конец устройства, 1.1 — начало, 1.2 — область в начале с отступом. Главный риск — выбрать не тот диск или раздел. Очищайте суперблоки только после остановки массива, проверки каждого пути по serial/WWN и подтверждения, что данные не нужны.mdadm --zero-superblock /dev/disk/by-id/CONFIRMED-OLD-DISK-part1Термины в статье
- 4Kn
- 4Kn — формат накопителя с логическим и физическим сектором 4096 байт, без эмуляции 512-байтных секторов. Требует поддержки со стороны всего тракта ввода-вывода.
- Битовая карта намерений записи
- Битовая карта RAID, отмечающая области с незавершённой или не отражённой на всех участниках записью, чтобы синхронизировать только потенциально несогласованные области.
- Горячая замена
- Горячая замена — извлечение и установка поддерживаемого компонента без отключения питания сервера. Непрерывность сервиса требует избыточности и корректной процедуры.
- Деградированный режим
- Состояние отказоустойчивого RAID-массива, потерявшего часть избыточности, но сохраняющего доступ, пока сочетание отказов допустимо для его уровня и раскладки.
- Метаданные RAID
- Метаданные RAID — служебные записи на дисках или контроллере, описывающие состав, уровень, состояние и параметры RAID-массива для его распознавания и сборки.
- Программный RAID
- RAID, реализованный ОС или другим программным стеком хоста без отдельного аппаратного RAID-контроллера. Использует вычислительные ресурсы сервера.
- Синхронизация RAID
- Фоновая операция, восстанавливающая согласованность избыточности RAID: зеркальных копий либо блоков данных и чётности.
- Суперблок mdadm
- Служебная метаобласть Linux Software RAID, хранящая параметры массива, роль диска и сведения, необходимые для его автоматической сборки.
- Физический диск
- Физический диск — отдельный HDD, SSD или иной накопитель, распознанный RAID-контроллером как член массива либо как независимое устройство.
- AlmaLinux
- AlmaLinux — корпоративный дистрибутив Linux, поддерживаемый сообществом и AlmaLinux OS Foundation, ориентированный на совместимость с интерфейсами и экосистемой RHEL.
- Consistency Check
- Consistency Check — фоновая проверка согласованности избыточности RAID: зеркальных копий либо рассчитанной и записанной чётности; расхождения могут исправляться.
- Debian
- Debian — универсальный дистрибутив Linux с пакетами DEB и системой APT, известный консервативной веткой Stable и разделением репозиториев по веткам разработки.
- Failed
- Failed — статус физического накопителя, который RAID-контроллер признал отказавшим и перестал использовать для штатного ввода-вывода в составе массива.
- GRUB
- GRUB — загрузчик операционных систем, который после BIOS или UEFI выбирает пункт своего меню, передаёт ядру Linux параметры и обычно загружает initramfs.
- HBA
- HBA — адаптер ввода-вывода, соединяющий сервер с накопителями или SAN и не формирующий аппаратные RAID-массивы.
- initramfs
- initramfs — временная корневая файлов ая система в памяти, разворачиваемая ядром Linux для загрузки модулей и подготовки хранилища перед монтированием постоянной корневой файловой системы.
- LTS
- LTS — модель выпуска ПО с продлённым периодом сопровождения, в котором исправления безопасности и критических ошибок поставляются дольше обычного релиза.
- mdadm
- Утилита командной строки Linux для создания, сборки, мониторинга и изменения программных RAID-массивов подсистемы MD.
- NVMe
- NVMe — протокол обмена команд ами с энергонезависимыми накопителями, оптимизированный для параллельного ввода-вывода; локальные NVMe-SSD обычно подключаются по PCIe.
- RAID
- Технология объединения нескольких накопителей в логические блочные устройства для повышения производительности и/или отказоустойчивости в зависимости от RAID-уровня.
- RAID 0
- RAID 0 — массив минимум из двух дисков с чередованием данных без избыточности. Отказ любого участника делает весь логический том недоступным.
- RAID 1
- RAID 1 — уро вень RAID с зеркалированием данных на двух или более дисках. Полезная ёмкость равна ёмкости наименьшего участника, а доступ сохраняется, пока исправна хотя бы одна копия.
- RAID 10
- Комбинированный уровень: чередование (RAID 0) поверх зеркальных пар (RAID 1). Сочетает высокую скорость и отказоустойчивость, отдавая под избыточность половину ёмкости.
- RAID 5
- RAID 5 — уровень RAID с чередованием данных и распределённой чётностью, выдерживающий отказ одного диска. Требует минимум трёх дисков.
- RAID 6
- Уровень RAID с чередованием данных и двойной распределённой чётностью. Выдерживает отказ любых двух дисков; минимум четыре диска.
- RAID-уровень
- RAID-уровень — схема размещения данных и избыточности по накопителям массива, определяющая полезную ёмкость, отказоустойчивость и характеристики ввода-вывода.
- Rebuild
- Процесс восстановления избыточности массива после замены отказавшего диска: контроллер вычисляет и записывает на новый диск недостающие данные из остальных дисков.
- RHEL
- RHEL — корпоративный дистрибутив Linux от Red Hat с фиксированными основными версиями, сертификационной экосистемой и моделью сопровождения, зависящей от подписки.
- Rocky Linux
- Rocky Linux — корпоративный дистрибутив Linux, создаваемый из исходных пакетов экосистемы RHEL и ориентированный на совместимость с RHEL без использования его товарных знаков.
- SAS
- SAS — последовательный интерфейс и набор протоколов SCSI для подключения накопителей, поддерживающий адресацию устройств, экспандеры и обычно двухпортовое подключение дисков.
- SATA
- SATA — последовательный интерфейс подключения HDD, SSD и оптических приводов; в обычной прямой схеме один порт контроллера соединён с одним накопителем.
- Swap
- Swap — область на диске или SSD, используемая ядром Linux для размещения вытесненных страниц памяти, когда RAM требуется более активным данным.
- systemd
- systemd — система инициализации и менеджер служб Linux, управляющий службами и другими ресурсами как объектами unit, обычно описанными unit-файлами.
