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

Настройка программного RAID в Linux

• 7 min read • Linux • Обновлено 21 Nov 2025
Программный RAID в Linux — настройка RAID 1
Программный RAID в Linux — настройка RAID 1

Эта инструкция объясняет, как добавить программный RAID (software RAID) в уже работающую систему Linux. Подойдёт для домашнего компьютера или небольшого саморазмещённого сервера. Для крупных продакшен-инфраструктур требуется тщательное планирование и более сложная реализация.

Зачем использовать программный RAID

Кратко: программный RAID (md, multi-disk) обеспечивает отказоустойчивость и/или ускорение дисковых операций без необходимости специального аппаратного RAID-контроллера. Подходящий вариант, если вы хотите защитить данные без покупки отдельного контроллера.

Определение: md (multi-disk) — виртуальный блочный устройственный слой в ядре Linux, управляющий программными массивами RAID.

Важные варианты использования:

  • Защита пользовательских данных на домашнем сервере — RAID 1 (зеркалирование).
  • Ускорение временных или неважных данных — RAID 0 (полосование).
  • Баланс скорости и отказоустойчивости при 4+ дисках — RAID 10.

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

Что потребуется (инструменты и файлы)

  • Утилита mdadm (контролирует md-устройства).
  • Файл состояния: /proc/mdstat — показывает текущее состояние массивов.
  • Конфигурация: /etc/mdadm/mdadm.conf — содержит описание массивов для загрузки.
  • Стандартные утилиты: fdisk/parted/lsblk/mkfs.ext4/mount и т. п.

Проверка состояния RAID:

cat /proc/mdstat

Если mdadm не установлен (на некоторых Debian/Ubuntu):

sudo apt-get update
sudo apt-get install mdadm

После установки mdadm можно просмотреть справку:

mdadm --help

Выбор уровня RAID

Краткие рекомендации:

  • RAID 0 — для неважных данных, где важна скорость. Не даёт отказоустойчивости.
  • RAID 1 — зеркалирование; хорош для двух дисков и критичных данных.
  • RAID 5 — минимум 3 диска; экономия места за счёт паритета, но слабее при больших и медленных дисках.
  • RAID 6 — как RAID 5, но с двойным паритетом (теряет место под два диска), лучше для очень больших массивов.
  • RAID 10 — для 4+ дисков, сочетает скорость и отказоустойчивость.

Когда RAID не подходит:

  • Если диск очень большой (>1 ТБ) и медленный (<7200 RPM), избегайте RAID 5 из-за проблем с производительностью и временем восстановления.
  • Для критичных корпоративных задач рассмотрите аппаратный RAID или кластерные решения и профессиональное тестирование.

Совет: для сложных схем объединяйте RAID с LVM только после тщательного планирования.

Подготовка разделов (важно)

  1. Сначала сделайте резервную копию всех важных данных.
  2. Используйте fdisk/parted/gparted для создания партиций: создайте одинаковые по размеру разделы на каждом диске, которые будут участвовать в массиве. Тип раздела — 0xFD (Linux raid autodetect) или в современных утилитах указать тип “raid”.
  3. Подготовьте структуру, например:
    • /dev/sda1 — системный раздел (например, ext4, смонтирован в /)
    • /dev/sda2 — раздел для RAID (7.7G в примере)
    • /dev/sdb1 — второй раздел для RAID (7.7G)
    • /dev/sdb2 — оставшаяся часть второго диска (в данном примере не используется)

Просмотрите схему дисков:

lsblk -f

Разделы и устройства lsblk

Alt: Схема разделов и устройств, вывод lsblk с пометками разделов sda2 и sdb1

В примере используются /dev/sda2 и /dev/sdb1 для массива RAID 1.

Создание RAID 1 массива (пошагово)

Создадим RAID 1 из двух разделов. Команда mdadm выглядит так:

sudo mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sda2 /dev/sdb1 --verbose

Разбор параметров:

  • –create /dev/md0 — создать устройство /dev/md0.
  • –level=1 — RAID 1 (зеркалирование).
  • –raid-devices=2 — число устройств в массиве.
  • /dev/sda2 /dev/sdb1 — перечисление разделов, участвующих в массиве.
  • –verbose — подробный вывод.

Дополнительные опции:

  • –layout — управляет режимом расположения блоков, например f2 (far) для частичных схем ротации данных в некоторых уровнях RAID; используйте только если понимаете эффект.

Подтвердите приглашение и дождитесь начала синхронизации.

Мониторинг сборки массива из другой сессии:

watch -d cat /proc/mdstat

Процесс синхронизации RAID

Alt: Прогресс синхронизации RAID, вывод /proc/mdstat с полосой прогресса

Когда синхронизация закончится, /proc/mdstat покажет готовность массива.

Сохранение конфигурации и обновление initramfs

Хотя многие дистрибутивы автоматически обнаруживают массивы при загрузке, рекомендуется явно сохранить конфигурацию.

  1. Выполните (как root или с sudo для перенаправления):
sudo su -
mdadm --detail --scan > /etc/mdadm/mdadm.conf
exit
  1. Откройте файл и удалите параметр name=…, если он есть. Параметр name иногда вызывает проблемы при загрузке, если имена конфликтуют. Пример строки для удаления:
name=ubuntu-test:0

Редактирование:

sudo nano /etc/mdadm/mdadm.conf
  1. Обновите initramfs, чтобы образ initramfs включал новые настройки mdadm:
sudo update-initramfs -u
  1. Проверка конфигурации:
mdadm --examine --scan

Команда не должна возвращать ошибок.

Форматирование и монтирование массива

Отформатируйте устройство /dev/md0 в выбранную файловую систему, например ext4:

sudo mkfs.ext4 /dev/md0

Создайте точку монтирования (в примере — в домашней папке):

mkdir -p ~/failsafe

Отредактируйте /etc/fstab, добавив строку (замените путь на реальный):

/dev/md0 /home/test/failsafe ext4 defaults 0 2

Откройте /etc/fstab для редактирования:

sudo nano /etc/fstab

Примените монтирование без перезагрузки:

sudo mount -a

Проверьте права и доступность. Если массив смонтирован только для root, измените владельца:

sudo chown username:username /home/test/failsafe

Финальный вид lsblk

Alt: Вывод lsblk после создания и монтирования массива md0, показаны устройства и точки монтирования

Типичные ошибки и их решение

  • mdadm не установлен — установите пакет mdadm через пакетный менеджер.
  • Неправильные разделы — убедитесь, что разделы одинакового размера и помечены как RAID.
  • При загрузке массив не собирается — проверьте /etc/mdadm/mdadm.conf и обновите initramfs.
  • Массив в режиме read-only — проверьте права, владельцев, а также состояние дисков: dmesg и smartctl.

Полезные команды для диагностики:

cat /proc/mdstat
mdadm --detail /dev/md0
dmesg | tail
sudo smartctl -a /dev/sda

Проверочные тесты и критерии приёмки

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

  • Массив /dev/md0 создан и синхронизирован (в /proc/mdstat нет [U_] или видно 2/2).
  • mdadm –detail /dev/md0 показывает статус RAID 1 и два активных устройства.
  • /dev/md0 корректно отформатирован и монтируется через /etc/fstab без ошибок.
  • После перезагрузки массив автомонтируется и доступен.

Тесты:

  • Отключите второй диск (имитируйте отказ) и проверьте, что /dev/md0 остаётся доступным и в режиме degraded.
  • Подключите диск обратно и выполните восстановление (re-add) и синхронизацию.

Процесс восстановления при отказе диска (инцидент)

  1. Убедитесь, что диск действительно упал: dmesg, smartctl.
  2. Отметьте упавший диск в mdadm:
sudo mdadm --manage /dev/md0 --remove /dev/sdb1
  1. Замените диск физически, создайте раздел такого же размера и типа.
  2. Добавьте новый раздел в массив:
sudo mdadm --manage /dev/md0 --add /dev/sdb1
  1. Мониторьте синхронизацию через /proc/mdstat.

Быстрый шпаргалка (cheat sheet)

  • Просмотр состояния: cat /proc/mdstat
  • Создать массив: mdadm –create /dev/md0 –level=1 –raid-devices=2 /dev/sda2 /dev/sdb1
  • Сохранить конфиг: mdadm –detail –scan > /etc/mdadm/mdadm.conf
  • Обновить initramfs: sudo update-initramfs -u
  • Формат: sudo mkfs.ext4 /dev/md0
  • Монтировать: sudo mount -a
  • Удалить устройство: mdadm –manage /dev/md0 –remove /dev/sdb1
  • Добавить устройство: mdadm –manage /dev/md0 –add /dev/sdb1

Альтернативные подходы

  • LVM поверх RAID — удобен для гибкого управления томами, но усложняет восстановление.
  • Использовать ZFS или Btrfs — встроенные возможности RAID-like (RAIDZ, RAID1/10), контроль целостности и снимки; требует изучения и может быть предпочтительнее для некоторых задач.
  • Аппаратный RAID — уменьшает нагрузку на CPU и даёт аппаратные функции, но добавляет зависимость от контроллера.

Когда лучше не применять программный RAID:

  • Для систем с большим числом узлов и требованием мульти-хостового доступа (используйте кластерные файловые системы).

Безопасность и приватность

  • Контролируйте доступ к mdadm.conf и /dev/md* — хранятся критичные данные об массивах.
  • При утилизации дисков заранее стирайте содержимое (например, с помощью blkdiscard или shred).
  • Регулярно проверяйте SMART-статус дисков и логируйте события dmesg/syslog.

Рекомендации по локальным особенностям

Для домашних пользователей в России и странах с нестабильным электропитанием рекомендуется:

  • Иметь UPS/ИБП для корректного завершения операций записи.
  • Отключать автоматические фоновые операции (например, cron-скрипты, heavy fsck) в рабочие часы.

Ментальные модели и принятие решений

  • Если у вас два диска и важна доступность данных — RAID 1.
  • Если у вас 3+ диска и нужна ёмкость + устойчивость — RAID 5/6, но учитывайте время восстановления.
  • Если нужна высокая производительность и есть как минимум 4 диска — RAID 10.

Сводное руководство: шаги по порядку

  1. Сделать резервную копию.
  2. Подготовить одинаковые разделы с типом RAID.
  3. Установить mdadm.
  4. Создать массив md с –create.
  5. Сохранить /etc/mdadm/mdadm.conf и обновить initramfs.
  6. Отформатировать /dev/md0 и добавить запись в /etc/fstab.
  7. Смонтировать и проверить права доступа.
  8. Тестировать отказ и восстановление.

Ключевые команды приведены выше в cheat sheet.

Спасибо за прочтение. Если столкнётесь с проблемами во время настроек — опишите конфигурацию, выводы cat /proc/mdstat и mdadm –detail /dev/md0, и мы поможем диагностировать проблему.

Итог: программный RAID в Linux — гибкое и доступное решение для повышения надёжности дисковых хранилищ. При соблюдении правил резервирования и тестирования он даёт хорошую защиту от отказа отдельных дисков.

Поделиться: 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 быстро