Гид по технологиям

Изменение размера деградированного RAID-массива (mdadm)

• 5 min read • Системное администрирование • Обновлено 09 Nov 2025
Изменение размера деградированного RAID (mdadm)
Изменение размера деградированного RAID (mdadm)

Содержание

  • Краткое описание задачи
  • Требования и подготовка
  • Проверка и удаление неисправного диска
  • Уменьшение размера деградированного массива
  • Увеличение размера деградированного массива
  • Возврат диска в массив и проверка синхронизации
  • Частые ошибки и как их избежать
  • Плейбук / пошаговая инструкция (SOP)
  • Дерево решений (Mermaid)
  • Роль‑базовые чек‑листы
  • Риск‑матрица и смягчения
  • Краткий глоссарий
  • Итог

Краткое описание задачи

У нас есть RAID1 /dev/md2 из /dev/sda3 и /dev/sdb3, при этом /dev/sda3 считается неисправным. Требуется изменить размер RAID‑массива (уменьшить или увеличить) в деградированном состоянии, затем вернуть диск и дождаться синхронизации.

Важно: изменение размера массива и файловой системы — рискованная операция. Всегда делайте резервные копии важных данных перед началом.

Требования и подготовка

  • Доступ в rescue/Live-систему или возможность загрузиться в режим восстановления.
  • Утилиты: mdadm, e2fsck, resize2fs, modprobe.
  • Консольный доступ с правами root.
  • Достаточное свободное пространство на оставшемся диске (для уменьшения — финальный размер должен помещаться на оставшийся диск).

1. Проверка состояния RAID и удаление диска

Проверим текущий статус массива:

cat /proc/mdstat

Пример вывода (как у вас):

Personalities : [raid1]
md2 : active raid1 sdb3[1]
4594496 blocks [2/1] [_U]

md1 : active raid1 sda2[0] sdb2[1]
497920 blocks [2/2] [UU]

md0 : active raid1 sda1[0] sdb1[1]
144448 blocks [2/2] [UU]

unused devices: 

Удалим/отметим неисправный диск (/dev/sda3) в mdadm:

mdadm --manage /dev/md2 --fail /dev/sda3
mdadm --manage /dev/md2 --remove /dev/sda3

Важно: сразу после удаления ОБЯЗАТЕЛЬНО обнулите суперблок на физическом устройстве, которое собираетесь затем заново добавить. Если забыть – система может не загрузиться после изменения размера:

mdadm --zero-superblock /dev/sda3

2. Подготовка rescue-среды и загрузка модулей

Загрузитесь в rescue или Live‑среду и активируйте ядро модули, если требуется:

modprobe md
modprobe linear
modprobe multipath
modprobe raid0
modprobe raid1
modprobe raid5
modprobe raid6
modprobe raid10

Затем соберите конфигурацию mdadm и активируйте массивы:

cp /etc/mdadm/mdadm.conf /etc/mdadm/mdadm.conf_orig
mdadm --examine --scan >> /etc/mdadm/mdadm.conf
mdadm -A --scan

Проверьте файловую систему перед изменениями:

e2fsck -f /dev/md2

3. Уменьшение размера деградированного массива (пример: 40GB → 30GB)

Порядок действий и объяснение:

  1. Сначала нужно уменьшить файловую систему на массиве так, чтобы она гарантированно помещалась в целевой размер. Для безопасности уменьшите её сильнее, чем целевой размер массива.
  2. Затем уменьшите само устройство md (/dev/md2) через mdadm (–grow –size). Параметр –size принимает значение в KiB; для 30 GiB это 30 × 1024 × 1024 = 31457280.
  3. После уменьшения устройства расширьте файловую систему до максимально возможного значения.

Пример команд (в вашем случае):

resize2fs /dev/md2 25G

(мы сначала делаем файловую систему 25G, чтобы был запас)

mdadm --grow /dev/md2 --size=31457280

(значение в KiB; убедитесь, что оно делится на 64)

Затем расширяем файловую систему до максимально возможного размера:

resize2fs /dev/md2

И ещё раз проверяем файловую систему:

e2fsck -f /dev/md2

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

mdadm --zero-superblock /dev/sda3
mdadm -a /dev/md2 /dev/sda3

Проверяем статус:

cat /proc/mdstat

Вы должны увидеть синхронизацию между /dev/sdb3 и /dev/sda3.

4. Увеличение размера деградированного массива

Процедура схожа с уменьшением, но проще в части размеров: можно указать –size=max или конкретный размер в KiB.

Удаляем диск, обнуляем суперблок, загружаемся в rescue и активируем модули (см. выше). Затем увеличиваем:

mdadm --grow /dev/md2 --size=max

Проверка и изменение файловой системы:

e2fsck -f /dev/md2
resize2fs /dev/md2
e2fsck -f /dev/md2

Затем в обычной системе добавляем диск обратно:

mdadm --zero-superblock /dev/sda3
mdadm -a /dev/md2 /dev/sda3

И снова проверяем cat /proc/mdstat для мониторинга синхронизации.

Частые ошибки и как их избежать

  • Забытие mdadm –zero-superblock на возвращаемом диске → диск будет содержать старую метаинформацию и может привести к ошибкам при сборке массива. Всегда выполняйте обнуление.
  • Неправильный расчёт размера в KiB (не делится на 64) → mdadm может отклонить запрос. Всегда проверяйте значение.
  • Изменение размера без резервной копии → потеря данных при ошибке. Создайте резервную копию.
  • Прерывание операции без понимания состояния массива → остановите, восстановите из бэкапа или обратитесь к логам.

Важно: при любых сомнениях отключите автоматическую загрузку нового/старого конфигурационного mdadm и анализируйте /var/log/syslog и output mdadm.

Плейбук / пошаговая инструкция (SOP)

  1. Оповестите пользователей и запланируйте окно обслуживания.
  2. Сделайте резервную копию критичных данных.
  3. Проверка состояния:
    • cat /proc/mdstat
    • mdadm –detail /dev/md2
  4. Отметьте и удалите проблемный диск:
    • mdadm –manage /dev/md2 –fail /dev/sda3
    • mdadm –manage /dev/md2 –remove /dev/sda3
    • mdadm –zero-superblock /dev/sda3
  5. Загрузитесь в rescue и выполните модули/сборку (см. раздел выше).
  6. e2fsck -f /dev/md2
  7. resize2fs предварительно (если уменьшаем).
  8. mdadm –grow –size=…
  9. resize2fs /dev/md2
  10. e2fsck -f /dev/md2
  11. Перезагрузитесь в рабочую систему.
  12. mdadm –zero-superblock /dev/sda3
  13. mdadm -a /dev/md2 /dev/sda3
  14. Мониторинг через cat /proc/mdstat и mdadm –detail /dev/md2

Дерево решений (простое) в формате Mermaid

flowchart TD
  A[Диск в RAID деграду] --> B{Хотите уменьшить или увеличить?}
  B --> |Уменьшить| C[Сделать резервную копию]
  B --> |Увеличить| C
  C --> D[Удалить нерабочий диск и obnull superblock]
  D --> E[Загрузиться в rescue и проверить FS]
  E --> F{Уменьшение?}
  F --> |Да| G[resize2fs до <целевого размера с запасом>]
  F --> |Нет| H[mdadm --grow --size=max]
  G --> I[mdadm --grow --size=]
  I --> J[resize2fs до max]
  H --> J
  J --> K[e2fsck проверки]
  K --> L[Перезагрузка и добавление диска обратно]
  L --> M[Мониторинг синхронизации]

Роль‑базовые чек‑листы

Администратор (перед выполнением):

  • Уведомил заинтересованных лиц.
  • Проверил наличие и целостность резервных копий.
  • Подготовил rescue‑среду и проверил инструменты.

Оператор (в момент выполнения):

  • Выполнил команды по порядку и сохранил вывод в лог.
  • Проверил /proc/mdstat и mdadm –detail.
  • Следил за прогрессом синхронизации после добавления диска.

Риск‑матрица и смягчения

  • Риск: Потеря данных при ошибке изменения размера. Смягчение: резервная копия, тест на копии данных.
  • Риск: Неверный размер в KiB. Смягчение: выверить расчёт и убедиться, что значение делится на 64.
  • Риск: Диск с нестерильным суперблоком случайно воссоединился. Смягчение: всегда запускать –zero-superblock перед добавлением.

Краткий глоссарий

  • mdadm — утилита для управления программными RAID в Linux.
  • e2fsck — проверка файловых систем ext2/3/4.
  • resize2fs — расширение/уменьшение файловой системы ext2/3/4.
  • KiB/GiB — килобайты/гибибайты, основаны на степенях 1024.

Факто‑бокс (ключевые числа и формула)

  • Пример в статье: уменьшение с 40GB до 30GB.
  • Для mdadm –grow размер в KiB: 30 × 1024 × 1024 = 31457280 (значение в статье).
  • Правило: значение –size должно быть кратно 64 KiB.

Часто встречающиеся команды (шпаргалка)

cat /proc/mdstat
mdadm --manage /dev/md2 --fail /dev/sda3
mdadm --manage /dev/md2 --remove /dev/sda3
mdadm --zero-superblock /dev/sda3
mdadm --examine --scan >> /etc/mdadm/mdadm.conf
mdadm -A --scan
e2fsck -f /dev/md2
resize2fs /dev/md2 25G
mdadm --grow /dev/md2 --size=31457280
resize2fs /dev/md2
mdadm --grow /dev/md2 --size=max
mdadm -a /dev/md2 /dev/sda3

Итог

Изменение размера деградированного RAID‑массива возможно и относительно прямолинейно при строгом соблюдении порядка действий: удалить и обнулить суперблок проблемного диска, работать в rescue‑среде, проверять и изменять файловую систему до и после изменения размера устройства, и только затем возвращать диск в массив. Соблюдение чек‑листа и мониторинг /proc/mdstat снизят риски.

Важно: если вы не уверены в каждом шаге — выполните операцию сначала на тестовой системе или восстановите данные из резервной копии.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро