RAID и RAID-контроллеры

mdadm после сбоя: замена диска, сборка, расширение и удаление RAID

Как безопасно проверить и собрать программный RAID mdadm, заменить участник, проконтролировать recovery, расширить массив или вывести его из эксплуатации.

18 минут
абстрактная иллюстрация обслуживания программного RAID в Linux
После сбоя сначала зафиксируйте состояние программного RAID без записи на диски: активные массивы, состав устройств, сохранённые метаданные RAID, UUID, роли и счётчики Events. Затем выполняйте только сценарий, который подтверждён этими данными: штатную замену одного известного участника, сборку известного массива, расширение исправного массива или вывод ненужного массива из эксплуатации. Если состав неоднозначен, расходятся Events либо роли, повреждены метаданные или требуется --force, остановитесь и перейдите к восстановлению RAID.

Стоп-проверка до любых изменений

Убедитесь, что актуальная резервная копия действительно восстанавливается; 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. 1
    Запишите версии mdadm и ядра
    Это нужно, чтобы позднее сопоставить поведение с документацией именно этой системы.
  2. 2
    Посмотрите активные массивы и фоновые операции
    /proc/mdstat показывает только массивы, уже активные в ядре, а также строки recovery, resync, reshape, check или repair с прогрессом.
  3. 3
    Зафиксируйте детали каждого активного md-устройства
    mdadm --detail /dev/md0 показывает уровень, UUID, состояние, число рабочих устройств и роли видимых участников работающего массива.
  4. 4
    Сопоставьте логические и физические устройства
    lsblk показывает дерево устройств, разделы, точки монтирования и связи holder/slave. Для каждого доступного кандидата прочитайте суперблок через mdadm --examine; физически отсутствующий накопитель эта команда исследовать не может.
Пример создания каталога со снимком. Переменная `d` задаётся один раз, поэтому стандартный вывод и сообщения об ошибках команд попадут в один каталог. Для нескольких массивов повторите `mdadm --detail`, подставляя проверенные пути.
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"
Пример чтения доступных RAID-компонентов. Перед использованием адаптируйте шаблон устройств под сервер: он не охватывает все возможные имена и не должен применяться к непроверенным путям.
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/degraded

recover в /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'

Когда не продолжать штатную процедуру

Перейдите к восстановлению RAID, если массив не собирается в пределах допустимой избыточности своего уровня; у RAID 10 неизвестно, какие зеркальные группы затронуты; у компонентов расходятся Events, роли, Array State или другие существенные поля; суперблоки повреждены; набор устройств неоднозначен; либо следующая команда предполагает --force или --create. Причины потери связи, ошибки I/O, кабели, корзину и HBA разбирают отдельно в материале «RAID Degraded, Offline или Failed: диагностика отказа дисков».

Как найти физический диск, а не только /dev/sdX

Имя /dev/sdX назначается ядром при обнаружении устройства и может измениться после перезагрузки, перестановки кабелей или одновременного появления нескольких дисков. Сопоставляйте физический диск по нескольким признакам: стабильной ссылке /dev/disk/by-id/, серийному номеру, WWN, модели, фактическому размеру, а при наличии данных платформы — по адресу корзины, порту HBA или PCIe-пути.

Замените `/dev/sdX` на уже проверенное устройство. `ID_PATH` может помочь связать диск с портом, но не всегда равен номеру слота корзины.
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'

Горячая замена требует подтверждения всей цепочки

Извлечение под питанием допустимо только при подтверждённой поддержке горячей замены накопителем, корзиной, HBA или контроллером, драйвером и платформой. Это отдельно проверяют для SATA, SAS и NVMe. Если поддержка не подтверждена, штатно остановите сервисы и выключите сервер по его процедуре; не извлекайте диск «для проверки».

Как заменить один отказавший диск в mdadm RAID

Эта ветвь применима, когда точно установлен один участник, а массив остаётся в допустимом деградированном режиме. Для RAID 1, RAID 5, RAID 6 и RAID 10 допустимость зависит от уровня и фактически затронутых позиций; RAID 10 не обязан пережить любые два отказа. RAID 0 избыточности не имеет: recovery после замены его участника не выполняется.

Штатная замена однозначно определённого участника

  1. 1
    Зафиксируйте состояние и подтвердите отказавшую позицию
    Сохраните mdstat, mdadm --detail, lsblk, результаты --examine доступных компонентов и журнал ядра. В mdadm --detail ищите статус вроде faulty, removed или отсутствующую роль; в /proc/mdstat — недостающую позицию в схеме [U_], [_U] и аналогичной.
  2. 2
    Разделите видимый отказ и уже отсутствующее устройство
    Если старый компонент ещё доступен и однозначно определён как неисправный, сначала логически пометьте его faulty, затем удалите из массива. Если он уже исчез и в mdadm --detail отображается как removed, не выполняйте --fail безусловно: проверьте слот, оставшуюся избыточность и отсутствие признаков временного обрыва.
  3. 3
    Замените накопитель физически
    При подтверждённом hot-plug замените именно идентифицированный диск. Без hot-plug выполните штатное выключение. После появления нового устройства снова сверяйте serial, WWN, размер и физический слот — не имя /dev/sdX.
  4. 4
    Подготовьте компонент
    Новый целый диск или раздел должен иметь доступный размер не меньше требуемого, совместимый логический и физический секторный формат и корректное выравнивание. Если массив построен на разделах, воспроизведите только подтверждённую схему разметки и проверьте результат до добавления.
  5. 5
    Добавьте новый компонент и проверьте принятие
    Выполните mdadm --add для конкретного раздела или диска. Сразу проверьте mdadm --detail, /proc/mdstat и sync_action: успешный код возврата сам по себе не означает, что диск получил ожидаемую роль и начался recovery.
  6. 6
    Дождитесь устойчивого состояния
    После завершения recovery убедитесь, что число active devices соответствует конфигурации, в /proc/mdstat все ожидаемые позиции активны, а sync_action вернулся в idle. Регулярную проверку и оповещения настраивают отдельно: «Мониторинг и профилактика RAID».
Используйте только для ещё видимого участника, который подтверждён как неисправный и принадлежит `/dev/md0`. Путь `OLD-DISK-part1` замените на свой проверенный компонент.
mdadm --manage /dev/md0 --fail /dev/disk/by-id/OLD-DISK-part1
mdadm --manage /dev/md0 --remove /dev/disk/by-id/OLD-DISK-part1
Добавление подготовленного компонента и наблюдение. В `mdadm --detail` новый участник не должен остаться только `spare`, если ожидается заполнение рабочей позиции; в `mdstat` обычно появляется `recovery` с процентом.
mdadm --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

Команды копирования таблицы разделов не универсальны: сначала сравните тип таблицы, начало и конец разделов, GUID GPT и назначение каждого раздела. В режиме BIOS после воспроизведения подтверждённой разметки загрузчик обычно требуется отдельно установить на новый физический диск, а не только обновить файлы на md-устройстве. В режиме UEFI проверьте наличие ESP на новом диске: этот FAT-раздел часто находится вне mdadm, поэтому его нужно отдельно создать по подтверждённой схеме, заполнить штатным для дистрибутива способом и проверить загрузочную запись UEFI. Для Debian и Ubuntu с GRUB команды выбирают по фактическому режиму загрузки и точке монтирования ESP; для RHEL-подобных систем 9 с UEFI и Secure Boot используйте документированную пакетную процедуру восстановления GRUB и shim, а не универсальный вызов grub2-install. После работ проверьте конфигурацию загрузчика и выполните контролируемую пробную загрузку с новым диском при доступном плане отката.

Как штатно собрать mdadm RAID после перезагрузки

Автосборка обычно использует метаданные компонентов и конфигурацию системы. Если массив не появился автоматически, сначала проверьте, какие устройства реально доступны и согласованы. Совпадение одного Array UUID недостаточно: одинаково важны уровень, версия метаданных, число RAID-устройств, Device Role, Array State, Events и время обновления.

Сборка известного массива без принудительных ключей

  1. 1
    Исключите активный массив и зафиксируйте доступные компоненты
    Проверьте /proc/mdstat, lsblk и mdadm --examine на каждом доступном предполагаемом компоненте. Не собирайте поверх уже активного массива с тем же содержимым.
  2. 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. 3
    Выполните обычную сборку только однозначного набора
    Для конфигурации, уже известной системе, применяют сканирование; для одного точно идентифицированного массива — сборку по UUID с явно перечисленными проверенными компонентами. Деградированная штатная сборка возможна лишь когда доступный состав укладывается в избыточность конкретного уровня и метаданные не противоречат друг другу.
  4. 4
    Проверьте результат до монтирования и обновления конфигурации
    Посмотрите mdadm --detail, mdstat, дерево lsblk и журнал ядра. Не записывайте новый ARRAY-элемент в конфигурацию автосборки, пока не доказано, что собран именно ожидаемый массив.
Штатная попытка собрать массивы, известные по доступным метаданным и конфигурации. Не добавляйте `--force` как «следующий шаг», если команда не дала ожидаемого результата.
mdadm --assemble --scan
cat /proc/mdstat
mdadm --detail /dev/md0
Пример для одного однозначно известного массива и уже проверенного набора компонентов. UUID и пути замените на свои. Не превращайте эту команду в рецепт для набора с разными Events, неизвестными ролями или недостающими сверх допустимого устройствами.
mdadm --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. Это не обязательный шаг после каждой замены: он нужен, когда конфигурация автосборки действительно должна знать подтверждённый массив, особенно для массива, необходимого при загрузке.

Не генерируйте конфигурацию из временно, ошибочно или неоднозначно собранного массива. Точный способ обновления initramfs сверяйте с локальной документацией дистрибутива.
# 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. 1
    Последовательно замените накопители
    Если ёмкость увеличивают заменой дисков, меняйте только один однозначно определённый участник за раз по процедуре штатной замены. После каждого добавления дождитесь завершения recovery и подтвердите исправное устойчивое состояние массива. Не извлекайте следующий участник, пока предыдущий не занял ожидаемую рабочую позицию.
  2. 2
    Подготовьте слой ниже mdadm
    После замены всех требуемых активных компонентов убедитесь, что каждый из них предоставляет нужный размер. Если компонентом mdadm является раздел, увеличьте именно этот раздел, сохранив его начало и выравнивание. До продолжения проверьте через lsblk и данные о секторах, что каждый требуемый компонент действительно стал больше.
  3. 3
    Увеличьте размер компонента в массиве
    Только после подготовки всех требуемых компонентов выполните поддерживаемую для данного массива операцию mdadm --grow --size=max или иной документированный вариант. Контролируйте reshape либо другое действие в /proc/mdstat и sync_action.
  4. 4
    Расширьте реально существующие слои выше mdadm
    Рост /dev/md0 ещё не увеличивает файловую систему. Следуйте фактическому стеку снизу вверх: раздел внутри md-устройства, затем LUKS, затем LVM PV и LV, затем файловая система; пропускайте отсутствующие слои.
  5. 5
    Проверьте новый размер на каждом уровне
    Сверьте размер md-устройства, раздела, dm-устройства, PV/LV и файловой системы. Не уменьшайте нижний слой в надежде на обратимость: сокращение md и многих файловых систем ограничено или не поддерживается.
Пример увеличения доступного component size, когда нижележащие устройства или разделы уже расширены и операция поддерживается. Перед запуском проверьте `mdadm --grow --help` и локальный `man mdadm` для своей версии.
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 1 добавление компонента обычно создаёт ещё одну активную копию после recovery, но не увеличивает полезную ёмкость. Для RAID 5 и RAID 6 перевод добавленного spare в новое число 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 поверх MDpvresize, затем при необходимости lvextend, затем файловая система.Увеличение PV не увеличивает LV автоматически.
LUKS → LVM → файловая системаLUKS, PV, LV, файловая система.Порядок всегда идёт снизу вверх; проверяйте размер после каждого слоя.

Не путайте рост RAID 1 с ростом ёмкости

Увеличение числа зеркал RAID 1 обычно повышает число копий, но полезная ёмкость ограничена размером компонента. Для RAID 5, RAID 6 и RAID 10 расширение числом дисков и увеличение размера компонентов имеют разные условия. Не начинайте reshape во время другого фонового действия и не рассчитывайте на возможность его отмены или продолжения без проверки документации конкретных версий.

Как остановить и удалить ненужный mdadm RAID

Остановка массива и очистка его метаданных — разные, потенциально необратимые действия. Сначала убедитесь, что это именно ненужный массив, а не похожий по имени или UUID рабочий массив. Проверьте монтирования, swap, LVM, dm-crypt, контейнеры и другие потребители блочного устройства.

Поиск потребителей и нижележащих компонентов. Дополнительно проверяйте 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. 1
    Остановите потребителей
    Штатно остановите приложения и контейнеры, отключите swap на массиве, размонтируйте файловые системы, деактивируйте зависимые LVM-тома и закройте dm-crypt по их документации. Не используйте принудительное размонтирование как обычный способ.
  2. 2
    Остановите md-устройство
    После исчезновения holders выполните mdadm --stop /dev/md0 и проверьте, что массив исчез из /proc/mdstat. Ошибка busy означает, что как минимум один потребитель ещё не отключён.
  3. 3
    Удалите постоянные ссылки потребителей
    Удалите или исправьте относящиеся только к этому массиву записи в /etc/fstab, /etc/crypttab, systemd mount- и swap-юнитах и конфигурации сервисов. Проверьте ссылки как на путь /dev/md0, так и на UUID файловой системы, LUKS и LVM.
  4. 4
    Уберите массив из автосборки
    Удалите или исправьте относящуюся к подтверждённому массиву запись в /etc/mdadm/mdadm.conf либо /etc/mdadm.conf, затем при необходимости пересоберите initramfs. Не изменяйте записи других массивов.
  5. 5
    Очищайте метаданные только перед повторным использованием
    Если компоненты действительно выводятся из эксплуатации и данные больше не нужны, ещё раз сопоставьте каждый путь с serial и WWN и только затем очищайте md-суперблоки. Не выполняйте этот шаг для потенциально восстанавливаемого массива.
Остановка массива после отключения всех потребителей. Ошибка о busy-устройстве означает, что зависимости ещё не сняты.
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 — формат накопителя с логическим и физическим сектором 4096 байт, без эмуляции 512-байтных секторов. Требует поддержки со стороны всего тракта ввода-вывода.
Битовая карта RAID, отмечающая области с незавершённой или не отражённой на всех участниках записью, чтобы синхронизировать только потенциально несогласованные области.
Горячая замена — извлечение и установка поддерживаемого компонента без отключения питания сервера. Непрерывность сервиса требует избыточности и корректной процедуры.
Состояние отказоустойчивого RAID-массива, потерявшего часть избыточности, но сохраняющего доступ, пока сочетание отказов допустимо для его уровня и раскладки.
Метаданные RAID — служебные записи на дисках или контроллере, описывающие состав, уровень, состояние и параметры RAID-массива для его распознавания и сборки.
RAID, реализованный ОС или другим программным стеком хоста без отдельного аппаратного RAID-контроллера. Использует вычислительные ресурсы сервера.
Фоновая операция, восстанавливающая согласованность избыточности RAID: зеркальных копий либо блоков данных и чётности.
Служебная метаобласть Linux Software RAID, хранящая параметры массива, роль диска и сведения, необходимые для его автоматической сборки.
Физический диск — отдельный HDD, SSD или иной накопитель, распознанный RAID-контроллером как член массива либо как независимое устройство.
AlmaLinux — корпоративный дистрибутив Linux, поддерживаемый сообществом и AlmaLinux OS Foundation, ориентированный на совместимость с интерфейсами и экосистемой RHEL.
Consistency Check — фоновая проверка согласованности избыточности RAID: зеркальных копий либо рассчитанной и записанной чётности; расхождения могут исправляться.
Debian — универсальный дистрибутив Linux с пакетами DEB и системой APT, известный консервативной веткой Stable и разделением репозиториев по веткам разработки.
Failed — статус физического накопителя, который RAID-контроллер признал отказавшим и перестал использовать для штатного ввода-вывода в составе массива.
GRUB — загрузчик операционных систем, который после BIOS или UEFI выбирает пункт своего меню, передаёт ядру Linux параметры и обычно загружает initramfs.
HBA — адаптер ввода-вывода, соединяющий сервер с накопителями или SAN и не формирующий аппаратные RAID-массивы.
initramfs — временная корневая файловая система в памяти, разворачиваемая ядром Linux для загрузки модулей и подготовки хранилища перед монтированием постоянной корневой файловой системы.
LTS — модель выпуска ПО с продлённым периодом сопровождения, в котором исправления безопасности и критических ошибок поставляются дольше обычного релиза.
Утилита командной строки Linux для создания, сборки, мониторинга и изменения программных RAID-массивов подсистемы MD.
NVMe — протокол обмена командами с энергонезависимыми накопителями, оптимизированный для параллельного ввода-вывода; локальные NVMe-SSD обычно подключаются по PCIe.
Технология объединения нескольких накопителей в логические блочные устройства для повышения производительности и/или отказоустойчивости в зависимости от RAID-уровня.
RAID 0 — массив минимум из двух дисков с чередованием данных без избыточности. Отказ любого участника делает весь логический том недоступным.
RAID 1 — уровень RAID с зеркалированием данных на двух или более дисках. Полезная ёмкость равна ёмкости наименьшего участника, а доступ сохраняется, пока исправна хотя бы одна копия.
Комбинированный уровень: чередование (RAID 0) поверх зеркальных пар (RAID 1). Сочетает высокую скорость и отказоустойчивость, отдавая под избыточность половину ёмкости.
RAID 5 — уровень RAID с чередованием данных и распределённой чётностью, выдерживающий отказ одного диска. Требует минимум трёх дисков.
Уровень RAID с чередованием данных и двойной распределённой чётностью. Выдерживает отказ любых двух дисков; минимум четыре диска.
RAID-уровень — схема размещения данных и избыточности по накопителям массива, определяющая полезную ёмкость, отказоустойчивость и характеристики ввода-вывода.
Процесс восстановления избыточности массива после замены отказавшего диска: контроллер вычисляет и записывает на новый диск недостающие данные из остальных дисков.
RHEL — корпоративный дистрибутив Linux от Red Hat с фиксированными основными версиями, сертификационной экосистемой и моделью сопровождения, зависящей от подписки.
Rocky Linux — корпоративный дистрибутив Linux, создаваемый из исходных пакетов экосистемы RHEL и ориентированный на совместимость с RHEL без использования его товарных знаков.
SAS — последовательный интерфейс и набор протоколов SCSI для подключения накопителей, поддерживающий адресацию устройств, экспандеры и обычно двухпортовое подключение дисков.
SATA — последовательный интерфейс подключения HDD, SSD и оптических приводов; в обычной прямой схеме один порт контроллера соединён с одним накопителем.
Swap — область на диске или SSD, используемая ядром Linux для размещения вытесненных страниц памяти, когда RAM требуется более активным данным.
systemd — система инициализации и менеджер служб Linux, управляющий службами и другими ресурсами как объектами unit, обычно описанными unit-файлами.

Вопросы по теме

Все вопросы и ответы

Можно ли использовать --force, если массив не собирается?

Нет, не как обычный следующий шаг. --force ослабляет проверки mdadm и может запустить массив в состоянии, которое утилита считает небезопасным. Если расходятся Events, роли, Array State, повреждены суперблоки, состав устройств неоднозначен или превышена допустимая избыточность, нужно остановиться и перейти к восстановлению RAID.

Можно ли определить отказавший диск только по имени /dev/sdX?

Нет. Имя /dev/sdX может измениться после перезагрузки, перестановки кабелей или обнаружения других устройств. Диск нужно сопоставлять по нескольким признакам: ссылке /dev/disk/by-id/, серийному номеру, WWN, модели, размеру и, если доступно, порту HBA, PCIe-пути или адресу корзины.

Чем recovery отличается от resync в mdadm?

Recovery заполняет добавленный или возвращённый компонент данными массива. Resync — повторная синхронизация уже существующих участников, например после некорректного завершения работы. Это разные процессы: recovery в /proc/mdstat обычно подписывается как recovery, а текущее действие также можно проверить через sync_action.

Можно ли сразу вытащить диск из работающего сервера?

Зависит от подтверждённой поддержки горячей замены. Hot-plug должен поддерживаться одновременно накопителем, корзиной, HBA или контроллером, драйвером и платформой; это отдельно проверяют для SATA, SAS и NVMe. Если подтверждения нет, следует штатно остановить сервисы и выключить сервер, а не извлекать диск для проверки.

Подойдёт ли для замены диск большего объёма?

Зависит от доступного размера и характеристик компонента. Новый диск или раздел должен быть не меньше требуемого размера, иметь совместимые логический и физический секторный формат и корректное выравнивание. Более ёмкий накопитель может не подойти, если его раздел меньше старого либо отличается формат 512n, 512e или 4Kn.

Нужно ли ждать окончания recovery после замены диска?

Да. После добавления компонента нужно контролировать mdadm --detail, /proc/mdstat и sync_action, а затем дождаться устойчивого состояния. Работу считают завершённой, когда число active devices соответствует конфигурации, все ожидаемые позиции активны в mdstat, а значение sync_action вернулось в idle.