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

Изменение размера RAID-разделов (уменьшение и увеличение) — Software RAID

• 6 min read • Системное администрирование • Обновлено 23 Nov 2025
Изменение размера RAID-разделов — Software RAID
Изменение размера RAID-разделов — Software RAID

Кратко: как безопасно уменьшить и увеличить программный RAID (не-LVM, файловая система ext3). Пошаговые команды для целого и деградированного массива, чек‑листы перед операцией и рекомендации на случай ошибок. Всегда делайте резервную копию и работайте из rescue-системы, если меняете системный раздел.

Введение

Версия 1.0
Автор: Falko Timme (оригинальная статья)

Эта инструкция описывает, как уменьшать и увеличивать существующие программные RAID-разделы (Software RAID). Тестировалось на RAID1 без LVM с файловой системой ext3. Приведены шаги для целого (intact) и деградированного (degraded) массива.

Важно: если на ваших RAID-разделах используется LVM, этот документ вам не подходит — процедура отличается. Я не даю гарантии, что всё сработает в вашей среде.

Ключевые понятия (одной строкой)

  • RAID1: зеркальный массив, два диска дают одинаковые данные.
  • Degraded array: массив работает с потерянным/ошибочным устройством.
  • resize2fs / e2fsck / mdadm: основные утилиты в процедуре.

1 Предварительная заметка и реальный случай

В одном случае у автора был деградированный RAID1 (/dev/md2 из /dev/sda3 и /dev/sdb3): /dev/sda3 полностью умер, /dev/sdb3 работал, но имел битые сектора в конце. Лог ядра показывал I/O ошибки на /dev/sdb. План был такой: уменьшить /dev/md2, чтобы исключить битые сектора на /dev/sdb3, добавить новый /dev/sda3 и дать массиву синхронизироваться, затем заменить и восстановить /dev/sdb и вернуть массив к прежнему размеру.

Так как /dev/md2 был системным разделом (монтирование /), автор использовал загрузку с rescue-системы (например, Knoppix Live-CD). Если изменяемый массив не является системным, можно работать без live-системы, но массив должен быть размонтирован.

Important: перед любыми операциями сделайте полную резервную копию данных или снимок образа диска.

2 Целый (intact) массив — общая процедура

Ниже описана процедура для массива /dev/md2, состоящего из /dev/sda3 и /dev/sdb3.

2.1 Уменьшение целого массива (Shrink)

  1. Загрузитесь в rescue-систему и загрузите модули:
modprobe md
modprobe linear
modprobe multipath
modprobe raid0
modprobe raid1
modprobe raid5
modprobe raid6
modprobe raid10
  1. Активируйте массивы и обновите конфигурацию mdadm:
cp /etc/mdadm/mdadm.conf /etc/mdadm/mdadm.conf_orig
mdadm --examine --scan >> /etc/mdadm/mdadm.conf
mdadm -A --scan
  1. Проверьте файловую систему:
e2fsck -f /dev/md2
  1. Предположим, /dev/md2 имеет размер 40 ГБ, и вы хотите уменьшить до 30 ГБ. Сначала уменьшаем файловую систему чуть больше, чтобы оставить запас (например, до 25 ГБ):
resize2fs /dev/md2 25G
  1. Затем уменьшаем сам массив. Значение –size указывается в КиБ (KiB). Для 30 ГБ: 30 × 1024 × 1024 = 31457280 КиБ. Убедитесь, что значение делится на 64:
mdadm --grow /dev/md2 --size=31457280
  1. После уменьшения массива расширяем файловую систему до максимально возможного значения:
resize2fs /dev/md2
  1. Финальная проверка файловой системы:
e2fsck -f /dev/md2

Теперь можно перезагрузить систему в обычную среду.

2.2 Увеличение целого массива (Grow)

  1. Загрузитесь в rescue-систему и загрузите те же модули (см. выше).
  2. Активируйте массивы mdadm (см. выше).
  3. Увеличиваем массив до максимума:
mdadm --grow /dev/md2 --size=max

Можно также указать конкретный размер в КиБ.

  1. Проверка ФС и расширение:
e2fsck -f /dev/md2
resize2fs /dev/md2
e2fsck -f /dev/md2

Перезагрузитесь в нормальную систему.

3 Деградированный массив — рекомендации и примерный план

Деградированный массив требует осторожности. Общие принципы:

  • Не добавляйте и не удаляйте устройства без понимания текущего состояния массива.
  • Всегда сохраняйте копию mdadm.conf (или выдайте mdadm –examine перед изменениями).
  • Работайте из rescue-системы, если меняете загрузочный раздел.

Типичный сценарий при битых секторах на единственном оставшемся диске:

  1. Определите текущее состояние: cat /proc/mdstat и mdadm –detail /dev/mdX.
  2. Если плохие сектора находятся в конце раздела, уменьшите массив, чтобы исключить область с ошибками: сначала уменьшите файловую систему (resize2fs до безопасного минимума), затем mdadm –grow –size=… как в разделе 2.1.
  3. Добавьте заменённый диск: подготовьте разделы на новом диске (тот же layout), затем mdadm –add /dev/md2 /dev/sda3.
  4. Дождитесь синхронизации: watch cat /proc/mdstat.
  5. После завершения можно удалить проблемный диск mdadm –fail /dev/md2 /dev/sdb3 и mdadm –remove /dev/md2 /dev/sdb3, заменить диск и снова добавить.

Важно: при деградации операции уменьшения/увеличения могут вызвать повторную синхронизацию или дополнительные операции чтения — следите за логами и ошибками I/O.

Notes: если синхронизация постоянно сходит с ума из-за I/O ошибок, остановите операции и попробуйте создать образ проблемного диска (ddrescue) перед дальнейшими изменениями.

4 Чеклист перед операцией (оператор)

  • Резервное копирование данных или образ диска — обязательно.
  • Убедиться, что массив размонтирован.
  • Подготовить live/rescue-образ.
  • Проверить состояние mdadm (mdadm –examine, cat /proc/mdstat).
  • Зарезервировать достаточно времени для синхронизации.
  • Убедиться, что у вас физический доступ (или консоль KVM) на случай проблем.

5 Быстрый набор команд (cheat sheet)

  • Активировать модули:
modprobe md
modprobe raid1
  • Обновить mdadm.conf и активировать массив:
cp /etc/mdadm/mdadm.conf /etc/mdadm/mdadm.conf_orig
mdadm --examine --scan >> /etc/mdadm/mdadm.conf
mdadm -A --scan
  • Проверка файловой системы:
e2fsck -f /dev/md2
  • Уменьшить ФС до 25G:
resize2fs /dev/md2 25G
  • Изменить размер массива (в КиБ):
mdadm --grow /dev/md2 --size=31457280
  • Увеличить массив до макс:
mdadm --grow /dev/md2 --size=max
  • Расширить ФС на весь доступный размер:
resize2fs /dev/md2

6 Альтернативные подходы и когда этот метод не подходит

  • LVM: если разделы находятся под LVM, сначала изменяют PV/LV, потом файловую систему — процедура и команды другие.
  • Btrfs/XFS: команды для изменения размера и проверки отличаются (xfs_growfs для XFS, btrfs filesystem resize для Btrfs).
  • Аппаратные RAID: управляющие утилиты оборудования (RAID-контроллера) имеют свою логику — используйте их.

Counterexample: если повреждённый диск имеет ошибки по всему объёму, уменьшение массива не спасёт — нужно восстанавливать данные из бэкапа.

7 Простейшая методология принятия решения (mini-methodology)

  1. Оценить состояние (mdstat, smartctl, dmesg).
  2. Решить: уменьшать ли массив или сразу заменять диск.
  3. Сделать резервную копию.
  4. Выполнить операцию в rescue-системе.
  5. Проверить и наблюдать синхронизацию.

8 Риск‑матрица (основные риски и смягчения)

  • Риск: потеря данных при ошибке операции.
    Смягчение: полная резервная копия/образ диска.

  • Риск: I/O ошибки во время синхронизации.
    Смягчение: заменить проблемный диск до синхронизации или сделать ddrescue.

  • Риск: некорректный размер из‑за округлений.
    Смягчение: всегда оставлять запас (уменьшать ФС сильнее, чем предполагаемый размер массива).

9 Критерии приёмки

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

10 1‑строчный глоссарий

  • mdadm: утилита управления Linux md (software RAID).
  • e2fsck: проверка ext2/3/4 ФС.
  • resize2fs: изменение размера файловых систем ext2/3/4.

11 Советы по миграции и совместимости

  • Всегда реплицируйте разметку разделов (partition table) на заменяющий диск.
  • Если используете GPT, убедитесь, что резервная таблица на месте.
  • Проверьте версии mdadm и kernel — старые версии могут не поддерживать современные опции grow/shrink одинаково.

12 Итог и рекомендации

Уменьшение и увеличение программного RAID — операция, которую можно выполнить средствами mdadm и resize2fs, если массив не использует LVM и файловая система поддерживает изменение размера. Работайте через rescue-систему для системных разделов, делайте резервные копии и проверяйте состояние дисков перед операциями. В случае деградации сначала оцените возможность восстановления данных с проблемного диска (ddrescue), прежде чем выполнять рискованные изменения.

Ключевые шаги: проверить ФС, уменьшить ФС, изменить размер массива, расширить ФС, проверить ФС.

Summary:

  • Всегда делайте бэкап.
  • Проверяйте mdadm и dmesg перед началом.
  • Внимательно работайте с размерами в КиБ (KiB).
  • При деградации оцените целесообразность уменьшения массива — иногда логичнее заменить диск и синхронизировать.
Поделиться: 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 быстро