Изменение размера 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)
- Загрузитесь в rescue-систему и загрузите модули:
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- Предположим, /dev/md2 имеет размер 40 ГБ, и вы хотите уменьшить до 30 ГБ. Сначала уменьшаем файловую систему чуть больше, чтобы оставить запас (например, до 25 ГБ):
resize2fs /dev/md2 25G- Затем уменьшаем сам массив. Значение –size указывается в КиБ (KiB). Для 30 ГБ: 30 × 1024 × 1024 = 31457280 КиБ. Убедитесь, что значение делится на 64:
mdadm --grow /dev/md2 --size=31457280- После уменьшения массива расширяем файловую систему до максимально возможного значения:
resize2fs /dev/md2- Финальная проверка файловой системы:
e2fsck -f /dev/md2Теперь можно перезагрузить систему в обычную среду.
2.2 Увеличение целого массива (Grow)
- Загрузитесь в rescue-систему и загрузите те же модули (см. выше).
- Активируйте массивы mdadm (см. выше).
- Увеличиваем массив до максимума:
mdadm --grow /dev/md2 --size=maxМожно также указать конкретный размер в КиБ.
- Проверка ФС и расширение:
e2fsck -f /dev/md2
resize2fs /dev/md2
e2fsck -f /dev/md2Перезагрузитесь в нормальную систему.
3 Деградированный массив — рекомендации и примерный план
Деградированный массив требует осторожности. Общие принципы:
- Не добавляйте и не удаляйте устройства без понимания текущего состояния массива.
- Всегда сохраняйте копию mdadm.conf (или выдайте mdadm –examine перед изменениями).
- Работайте из rescue-системы, если меняете загрузочный раздел.
Типичный сценарий при битых секторах на единственном оставшемся диске:
- Определите текущее состояние: cat /proc/mdstat и mdadm –detail /dev/mdX.
- Если плохие сектора находятся в конце раздела, уменьшите массив, чтобы исключить область с ошибками: сначала уменьшите файловую систему (resize2fs до безопасного минимума), затем mdadm –grow –size=… как в разделе 2.1.
- Добавьте заменённый диск: подготовьте разделы на новом диске (тот же layout), затем mdadm –add /dev/md2 /dev/sda3.
- Дождитесь синхронизации: watch cat /proc/mdstat.
- После завершения можно удалить проблемный диск 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/md26 Альтернативные подходы и когда этот метод не подходит
- LVM: если разделы находятся под LVM, сначала изменяют PV/LV, потом файловую систему — процедура и команды другие.
- Btrfs/XFS: команды для изменения размера и проверки отличаются (xfs_growfs для XFS, btrfs filesystem resize для Btrfs).
- Аппаратные RAID: управляющие утилиты оборудования (RAID-контроллера) имеют свою логику — используйте их.
Counterexample: если повреждённый диск имеет ошибки по всему объёму, уменьшение массива не спасёт — нужно восстанавливать данные из бэкапа.
7 Простейшая методология принятия решения (mini-methodology)
- Оценить состояние (mdstat, smartctl, dmesg).
- Решить: уменьшать ли массив или сразу заменять диск.
- Сделать резервную копию.
- Выполнить операцию в rescue-системе.
- Проверить и наблюдать синхронизацию.
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).
- При деградации оцените целесообразность уменьшения массива — иногда логичнее заменить диск и синхронизировать.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента