Skip to main content

Программный RAID (mdadm)

1. Установка mdadm и создание RAID

Установите утилиту и создайте массив нужного уровня. Замените `/dev/sd[b-e]` на ваши диски. Перед этим убедитесь, что они не содержат нужных данных.

Установка:

sudo apt update && sudo apt install -y mdadm

Пример создания RAID 1 (зеркало, 2 диска):

sudo mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sdb /dev/sdc

Пример создания RAID 5 (мин. 3 диска):

sudo mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sdb /dev/sdc /dev/sdd

Пример создания RAID 6 (мин. 4 диска):

sudo mdadm --create --verbose /dev/md0 --level=6 --raid-devices=4 /dev/sdb /dev/sdc /dev/sdd /dev/sde

Пример создания RAID 10 (мин. 4 диска):

sudo mdadm --create --verbose /dev/md0 --level=10 --raid-devices=4 /dev/sdb /dev/sdc /dev/sdd /dev/sde

2. Настройка и автоподключение RAID

После создания массив нужно отформатировать и настроить для автозагрузки.

Шаг А: Отформатируйте RAID-массив.

sudo mkfs.ext4 /dev/md0

Шаг Б: Сохраните конфигурацию массива, чтобы он собирался при загрузке.

sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf

Шаг В: Обновите initramfs, чтобы ядро знало о RAID на раннем этапе загрузки.

sudo update-initramfs -u

Шаг Г: Добавьте массив в `/etc/fstab` для автоматического монтирования, используя его UUID.

# Узнаем UUID массива
sudo blkid /dev/md0

#Добавляем в /etc/fstab (замените UUID и /mnt/raid) UUID=a1b2c3d4-e5f6-7890-1234-567890abcdef /mnt/raid ext4 defaults,nofail,discard 0 2

Комментарии к опциям монтирования:

  • nofail: критически важно для RAID. Если массив не соберется при загрузке, система не "зависнет" в ожидании.
  • discard: полезная опция, если ваш RAID собран на SSD-дисках. Включает поддержку TRIM для повышения производительности и долговечности.
Разбор последних двух параметров: `[dump]` и `[pass]`

Две последние цифры в строке `fstab` (`0 2`) управляют резервным копированием и проверкой файловой системы при загрузке.

  • Первая цифра (`dump`): Управляет утилитой резервного копирования `dump`.
    • 0: Не создавать резервную копию. Это стандартное значение для 99% систем, так как `dump` редко используется в наши дни.
    • 1: Создавать резервную копию.
  • Вторая цифра (`pass` или `fsck`): Определяет порядок проверки файловой системы (`fsck`) при загрузке.
    • 0: Не проверять. Используется для swap-разделов, сетевых файловых систем или виртуальных ФС.
    • 1: Проверять в первую очередь. Этот параметр должен использоваться ИСКЛЮЧИТЕЛЬНО для корневого раздела (`/`).
    • 2: Проверять во вторую очередь. Используется для всех остальных локальных разделов, которые вы хотите проверять при загрузке (например, `/home`, `/var`, или, как в нашем примере, `/mnt/data`).

Итог: Для всех дополнительных дисков и разделов с данными (не корневых) самая правильная и распространенная комбинация — 0 2.