RAID на Linux: как настроить и управлять дисковыми массивами
Важно: RAID не заменяет резервное копирование. Массив помогает доступности и доступу к данным, но не защищает от удалённого удаления, шифровальщиков или ошибок пользователя.

Краткие варианты использования
- Быстродействие (чтение/запись): RAID 0 или RAID 10
- Полная зеркальная копия: RAID 1
- Баланс скорости и устойчивости: RAID 5 (минимум 3 диска) или RAID 6 (минимум 4 диска)
- Критические сервисы с высокой нагрузкой: аппаратный RAID-контроллер или файловые системы с встроенным RAID (ZFS, Btrfs)
Что такое RAID
RAID — это «массив из нескольких дисков», объединённых так, чтобы система получала дополнительные свойства: скорость, избыточность или и то, и другое. Уровни RAID определяют способ распределения данных (striping), зеркалирования (mirroring) и расчёта четности (parity).
Ключевая идея в одной строке: RAID распределяет данные по нескольким дискам, чтобы при отказе одного (или нескольких, в зависимости от уровня) сервис продолжал работать.
Быстрый обзор уровней
- RAID 0: распределение (striping). Повышение скорости, никакой устойчивости. Требуется минимум 2 диска.
- RAID 1: зеркалирование. Данные полностью дублируются. Надёжно, но эффективный объём равен размеру самого маленького диска.
- RAID 5: распределение с одной полосой четности. Баланс между скоростью и устойчивостью. Требуется минимум 3 диска; теряет объём равный одному диску.
- RAID 6: как RAID 5, но с двумя блоками четности. Выдерживает отказ двух дисков; объём меньше на два диска.
- RAID 10: комбинированный — зеркала внутри striped-групп. Высокая скорость и устойчивость, но дорогой по месту.
Когда RAID не подходит
- Когда вам нужна защита от случайного удаления или заражения — нужны бэкапы.
- Если вы хотите экономить дископространство — RAID 1 и RAID 10 дублируют данные.
- Если вы используете очень большие диски и беспокоитесь о времени восстановления: при сборке RAID 5/6 риск ошибок чтения (URE) при восстановлении растёт.
Как выбрать уровень RAID — простая методика
- Определите цель: скорость / отказоустойчивость / баланс.
- Посчитайте доступный бюджет дисков и объём, который хотите сохранить.
- Оцените время восстановления: чем больше объём дисков, тем выше риск ошибки при rebuild.
- Если нужна простота и надёжность для критичных сервисов — выбирайте RAID 10 или аппаратный RAID с батарейной защитой кэша.
- Для домашнего использования с ограниченным бюджетом — RAID 1 (зеркало) или RAID 5 при трёх дисках.
Настройка программного RAID на Linux (mdadm)
Ниже — практический пример создания RAID 5 из трёх дисков с помощью mdadm. Приведённые команды применимы в большинстве дистрибутивов Debian/Ubuntu-подобных систем; пути конфигурации могут немного отличаться в других системах.
- Установите инструмент mdadm:
sudo apt install mdadm- Подготовьте диски. Допустим, у вас есть /dev/sdb, /dev/sdc, /dev/sdd (в примере будем использовать три виртуальных диска по 1 GB для наглядности).
Проверьте список дисков:
sudo fdisk -l- Разметьте каждый диск и установите тип раздела RAID (тип fd). Для каждого диска (пример /dev/sdb):
sudo fdisk /dev/sdbВ интерактивном fdisk выполните команды по порядку:
- n — новая партиция
- p — первичная
- 1 — номер партиции
— принять значения по умолчанию для первого и последнего сектора (или укажите конкретный размер) - t — сменить тип раздела
- fd — код Linux RAID
- w — сохранить и выйти
Повторите для /dev/sdc и /dev/sdd.
- Сообщите ядру о новых таблицах разделов:
sudo partprobe /dev/sdb
sudo partprobe /dev/sdc
sudo partprobe /dev/sdd- Проверьте, что появился /dev/sdb1 /dev/sdc1 /dev/sdd1:
fdisk -l- Создайте RAID 5 (массив /dev/md0):
sudo mdadm -C /dev/md0 --level=raid5 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1Разбор синтаксиса:
- mdadm — утилита
- -C — создать
- /dev/md0 — создаваемый RAID-устройство
- –level — уровень RAID
- –raid-devices — количество физических устройств
- Проверить состояние массива:
sudo mdadm --detail /dev/md0
cat /proc/mdstat- Сохраните конфигурацию mdadm, чтобы при загрузке массив собирался автоматически:
sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
# В некоторых системах путь может быть /etc/mdadm.conf
sudo update-initramfs -u- Создайте файловую систему и точку монтирования:
sudo mkfs.ext4 /dev/md0
sudo mkdir -p /data- Временное монтирование:
sudo mount /dev/md0 /data/- Постоянное монтирование — используйте UUID диска в /etc/fstab. Найдите UUID:
blkid /dev/md0Добавьте строку в /etc/fstab (пример):
UUID=ВАШ-UUID /data ext4 defaults 0 2Перезагрузите таблицу монтирования:
sudo mount -aПолезные команды для мониторинга и администрирования
- Просмотр статуса: cat /proc/mdstat
- Подробности массива: sudo mdadm –detail /dev/md0
- Искать метаданные на устройстве: sudo mdadm –examine /dev/sdb1
- Удалить устройство из массива: sudo mdadm –manage /dev/md0 –remove /dev/sdb1
- Добавить устройство в массив: sudo mdadm –manage /dev/md0 –add /dev/sdb1
- Ассемблировать массив вручную: sudo mdadm –assemble –scan
Примеры:
cat /proc/mdstat
sudo mdadm --detail /dev/md0
sudo mdadm --manage /dev/md0 --fail /dev/sdb1
sudo mdadm --manage /dev/md0 --remove /dev/sdb1
sudo mdadm --manage /dev/md0 --add /dev/sdb1Управление отказами: пошаговый план (Incident runbook)
- Обнаружение: мониторинг срабатывает или в /proc/mdstat виден статус degraded.
cat /proc/mdstat
sudo mdadm --detail /dev/md0- Пометить диск как вышедший из строя (если ещё не помечен):
sudo mdadm --manage /dev/md0 --fail /dev/sdb1- Удалить его из массива:
sudo mdadm --manage /dev/md0 --remove /dev/sdb1Если у вас hot-swap, выньте диск и замените новым. Если нет — завершите обслуживание и замените диск при следующем окне.
Разметьте новый диск как RAID (тип раздела fd) и сообщите ядру:
sudo fdisk /dev/sdb
# создать /dev/sdb1 с типом fd
sudo partprobe /dev/sdb- Добавьте новый раздел в массив:
sudo mdadm --manage /dev/md0 --add /dev/sdb1- Следите за процессом восстановления:
watch -n 10 cat /proc/mdstat- После завершения убедитесь, что массив в норме:
sudo mdadm --detail /dev/md0Замечание: при больших объёмах и RAID 5 восстановление может длиться долго и подвергать массив риску из-за возможных ошибок чтения. RAID 6 уменьшает этот риск, поскольку выдерживает двух одновременных отказавших дисков.
Что делать, если массив не собирается
- Попробуйте собрать вручную: sudo mdadm –assemble –scan
- Если метаданные повреждены, можно попытаться использовать –force при сборке, но это рискованно:
sudo mdadm --assemble --force /dev/md0 /dev/sdb1 /dev/sdc1 /dev/sdd1- Перед попытками агрессивного восстановления сделайте побитовый снимок (dd) проблемного диска на другой носитель для возможной офлайн-реанимации.
Тесты приёмки (минимальный набор)
- Массив собирается автоматически после перезагрузки.
- Максимальная доступная ёмкость соответствует расчетам для выбранного уровня RAID.
- При удалении одного физического диска (симуляция отказа) данные остаются доступными (для уровней, где это ожидаемо).
- Массив восстанавливается после добавления нового диска и завершения rebuild.
Резервные и альтернативные варианты
- Бэкап: локальные копии, удалённые резервные копии, rsync, borg, restic — всегда иметь отдельные резервные копии вне RAID.
- LVM поверх RAID: добавляет гибкость логических томов.
- ZFS или Btrfs: файловые системы с встроенной проверкой целостности, снимками (snapshots) и собственными средствами зеркалирования.
- Аппаратный RAID-контроллер: меньше нагрузки на CPU, часто батарейный кеш, но надо быть осторожным с vendor lock-in.
Плитка с ключевыми числами
- Минимум для RAID 5: 3 диска
- Минимум для RAID 6: 4 диска
- Потеря объёма для RAID 5: общая ёмкость минус ёмкость одного диска
- Потеря объёма для RAID 6: общая ёмкость минус ёмкость двух дисков
- RAID 1 и RAID 10: эффективный объём обычно равен сумме половины физического объёма (в зависимости от конфигурации)
Руководство по ролям — чеклисты
Администратор сервера:
- Проверить совместимость контроллера и BIOS/UEFI.
- Сделать бэкап перед любыми изменениями.
- Использовать идентичные или совместимые диски по скорости и размеру.
- Настроить мониторинг mdadm и оповещения.
- Тестировать восстановление в тестовой среде.
Домашний пользователь:
- Хранить копии важных данных вне RAID (облако, NAS, внешний диск).
- Для домашнего NAS выбирать RAID 1 или RAID 5 (при 3 дисках).
- Не полагаться на RAID как на единственный уровень защиты.
SOP: быстрый план развертывания RAID (пошагово)
- Оцените потребности (скорость/надёжность/объём).
- Подготовьте аппаратное обеспечение и резервные копии.
- Установите mdadm.
- Разметьте диски и назначьте тип RAID.
- Создайте массив и проверьте состояние.
- Создайте файловую систему и точку монтирования.
- Добавьте запись в /etc/fstab по UUID.
- Сохраните конфигурацию mdadm в mdadm.conf.
- Настройте мониторинг и оповещения.
- Проведите тест отказа и восстановления в окне обслуживания.
Советы по совместимости и миграции
- При смешении дисков array видит их как размер наименьшего диска. Планируйте единообразие.
- При переносе массива на другую машину убедитесь, что версия mdadm и ядро поддерживают метаданные, используемые вашим массивом.
- Всегда сохраняйте вывод sudo mdadm –detail –scan — он помогает воссоздать конфигурацию на новом хосте.
Возможные сценарии отказа и когда RAID не спасёт
- Шифровальщик/вредонос: RAID не защитит от шифрования файлов; нужен бэкап вне массива.
- Ошибки пользователя (удаление, форматирование): RAID не восстановит удалённый файл.
- Повреждение метаданных массива: может потребоваться ручное восстановление и риски потери данных.
Короткий словарь
- mdadm — утилита для управления программными RAID на Linux.
- Striping — распределение блоков данных по дискам для повышения скорости.
- Mirroring — зеркалирование данных на несколько дисков.
- Parity — блоки четности, используемые для восстановления данных.
- Rebuild — процесс восстановления данных на заменённый диск.
Критерии приёмки
- Массив собирается корректно после перезагрузки.
- При деградации массив продолжает обслуживать запросы (уровень зависит от RAID).
- Время на восстановление укладывается в допустимый RTO (вручную определяемая цель).
- Мониторинг оповещает о сбое, и процедура восстановления отработана.
Подсказки и чек-лист для тестов
- Тест записи/чтения: dd if=/dev/zero of=/data/testfile bs=1M count=1024; sync; rm /data/testfile
- Симуляция отказа: sudo mdadm –manage /dev/md0 –fail /dev/sdb1; sudo mdadm –manage /dev/md0 –remove /dev/sdb1
- Добавление диска и rebuild: sudo mdadm –manage /dev/md0 –add /dev/sdb1; watch -n 5 cat /proc/mdstat
Заключение
RAID на Linux с mdadm — мощный инструмент для получения дополнительного уровня доступности и/или производительности. Для продакшена рассмотрите аппаратный RAID или файловые системы с встроенным контролем целостности (ZFS). Всегда имейте отдельные резервные копии и протестированные процедуры восстановления.
Спасибо, что прочитали! Вы уже используете RAID? Какой у вас опыт обслуживания дисков и какие ошибки вы хотели бы избежать?
Похожие материалы
Err_Connection_Timed_Out в Chrome: как исправить
Как искать текст в Safari на iPhone и iPad
Endel: персонализированные звуковые ландшафты
Как стать этичным хакером — навыки и план действий
Как управлять несколькими аккаунтами в Outlook