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

Изменение размера деградированного RAID массива /dev/md2

5 min read Системное администрирование Обновлено 06 Nov 2025
Изменение размера деградированного RAID /dev/md2
Изменение размера деградированного RAID /dev/md2

Введение

Этот документ описывает, как безопасно уменьшать и увеличивать RAID-массив /dev/md2 в состоянии degraded (деградированный), когда один из дисков (/dev/sda3) не работает. Примеры команд сохранены в виде блоков кода. Опишите свои действия пошагово и проверяйте состояние после каждой критической операции.

Короткое определение: degraded — RAID-массив работает с отсутствующим или неисправным членом и требует осторожных действий при изменении структуры.

Содержание

  • Уменьшение размера деградированного массива
  • Увеличение размера деградированного массива
  • Проверки и расчёты
  • Контрольные списки и ролевая разбивка
  • Риски и способы их смягчения
  • Критерии приёмки и контроль качества

Входное состояние (пример)

Вывод /proc/mdstat показывает, что md2 — RAID1, активен, но один из членов отсутствует:

server1:~# 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:   
server1:~#

В этом примере /dev/sda3 отсутствует, а /dev/sdb3 — единственный активный член md2.

1. Общая предосторожность

Важно: прежде чем изменять размер массива, убедитесь, что у вас есть свежая резервная копия ключевых данных. Любая ошибка при манипуляциях с разделами и файловой системой может привести к потере данных.

Важно: всегда выполняйте обнуление суперблока (mdadm –zero-superblock) на диске, который вы временно удаляете, чтобы система не пыталась автоматически воссоздать старую конфигурацию при загрузке.


2. Уменьшение размера деградированного массива (/dev/md2)

Шаг 1 — отметить и удалить проблемный член массива

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

Шаг 2 — обнулить суперблок на /dev/sda3 (обязательно)

mdadm --zero-superblock /dev/sda3

Важно: если забыть этот шаг, при следующей загрузке диск может быть повторно распознан как часть старого массива и вызвать проблемы.

Шаг 3 — загрузиться в rescue-систему и подключить нужные модули

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

Шаг 4 — обновить конфигурацию mdadm и активировать массивы

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

mdadm -A --scan

Шаг 5 — проверить файловую систему на /dev/md2

e2fsck -f /dev/md2

Шаг 6 — подготовка к уменьшению размера

В примере исходный размер md2 — 40GB. Требуется уменьшить до 30GB. Чтобы не переполнить файловую систему, сначала уменьшаем её до безопасного маржа (например, 25GB), затем уменьшаем сам RAID до 30GB и снова расширяем файловую систему вплоть до максимально возможного размера в новом массиве.

resize2fs /dev/md2 25G

Шаг 7 — перевод размера RAID в KiBytes и выполнение mdadm –grow

30 GB в KiBytes: 30 × 1024 × 1024 = 31457280 KiB. Значение должно делиться на 64.

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

Шаг 8 — расширить файловую систему до доступного пространства на новом массиве

resize2fs /dev/md2

Шаг 9 — финальная проверка файловой системы

e2fsck -f /dev/md2

Шаг 10 — загрузка в нормальную систему и добавление /dev/sda3 обратно

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

Затем проверьте статус синхронизации:

cat /proc/mdstat

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


3. Увеличение размера деградированного массива (/dev/md2)

Процедура почти идентична удалению: отметьте и удалите /dev/sda3, обнулите суперблок, загрузитесь в rescue, подключите модули и активируйте массивы.

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

mdadm --zero-superblock /dev/sda3

Подключение модулей и активация массивов — те же команды, что и в разделе уменьшения.

Шаг увеличить сам массив до максимально возможного размера:

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

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

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

После этого загрузитесь в обычную систему и добавьте /dev/sda3 обратно:

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

Проверьте синхронизацию через cat /proc/mdstat.


4. Контрольные списки (роль-based)

Инженер смены:

  • Убедиться в наличии резервной копии и согласовании окон работ.
  • Выполнить fail/remove и zero-superblock.
  • Контролировать e2fsck и resize2fs.

Оператор (после работ):

  • Проверить /proc/mdstat и скорость ресинхронизации.
  • Проверить логи dmesg и syslog на предмет ошибок.

DevOps/архитектор:

  • Утвердить новый размер и подтвердить, что служебные скрипты/мониторинг учитывают изменения.

5. Риски и смягчение

  • Риск: потеря данных при ошибочном изменении файловой системы. Смягчение: резервные копии перед операцией, тест на копии данных.
  • Риск: забыть обнулить суперблок — система может попытаться примонтировать старую конфигурацию. Смягчение: всегда выполнять mdadm –zero-superblock и проверять вывод.
  • Риск: неверный расчёт KiB. Смягчение: проверять арифметику (GB → KiB = GB × 1024 × 1024) и делимость на 64.

6. Критерии приёмки

  • /proc/mdstat показывает режим [UU] после завершения ресинхронизации.
  • e2fsck завершён без ошибок.
  • Файловая система монтируется и проходит базовые тесты целостности (чтение/запись небольших файлов).
  • Мониторинг не фиксирует новых ошибок в логе ядра, SMART-данные дисков в норме.

7. Полезные подсказки и альтернативы

Альтернативы:

  • Если доступен резервный диск, вместо изменения размера массива можно временно заменить /dev/sda3 новым диском и дождаться ресинхронизации.
  • Для LVM над RAID: изменение размера можно выполнять на уровне PV/VG/LV с учётом блоков и резервов.

Когда этот способ не подходит:

  • Если файловая система не поддерживает онлайн-изменение размера в требуемом направлении или содержит недопустимые структуры — сначала экспортируйте данные.

Ментальные модели:

  • Сначала защитите данные → затем работайте с суперблоками → затем меняйте размер RAID → затем корректируйте файловую систему.

8. Чек-лист перед работой

  • Снят бэкап критичных данных.
  • Согласовано окно обслуживания.
  • Имеется доступ в rescue-систему.
  • Проверены SMART-данные дисков.
  • Записаны текущие параметры mdadm (mdadm –detail).

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

  • mdadm — утилита управления программными RAID в Linux.
  • zero-superblock — команда для удаления метаданных RAID на устройстве.
  • resize2fs — инструмент изменения размера файловых систем ext2/3/4.
  • e2fsck — проверка и восстановление файловых систем ext.

10. Быстрые команды (шпаргалка)

# Пометить и удалить проблемный диск
mdadm --manage /dev/md2 --fail /dev/sda3
mdadm --manage /dev/md2 --remove /dev/sda3

# Обнулить метаданные на диске
mdadm --zero-superblock /dev/sda3

# В rescue: подключить модули и активировать массивы
modprobe md
modprobe linear
modprobe multipath
modprobe raid0
modprobe raid1
modprobe raid5
modprobe raid6
modprobe raid10

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

# Проверка и изменение FS
e2fsck -f /dev/md2
resize2fs /dev/md2 25G   # пример уменьшения FS перед shrink
mdadm --grow /dev/md2 --size=31457280
resize2fs /dev/md2        # расширяем FS до нового предела

# Добавить диск обратно
mdadm --zero-superblock /dev/sda3
mdadm -a /dev/md2 /dev/sda3

# Проверить статус
cat /proc/mdstat

11. Резюме

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

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

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

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

Herodotus: механизм и защита Android‑трояна
Кибербезопасность

Herodotus: механизм и защита Android‑трояна

Включить новое меню «Пуск» в Windows 11
Windows руководство

Включить новое меню «Пуск» в Windows 11

Панель полей сводной таблицы в Excel — руководство
Excel

Панель полей сводной таблицы в Excel — руководство

Включить новое меню «Пуск» в Windows 11
Windows 11

Включить новое меню «Пуск» в Windows 11

Дубликаты Диспетчера задач в Windows 11 — как исправить
Windows

Дубликаты Диспетчера задач в Windows 11 — как исправить

История просмотров Reels в Instagram — как найти
Instagram

История просмотров Reels в Instagram — как найти