← Back to notes

RAID в Linux — уровни
0, 1 и 10


RAID в Linux (md)

RAID (Redundant Array of Independent Disks) — объединение блочных устройств в массив для производительности, отказоустойчивости или ёмкости. В Linux реализован подсистемой md (multiple devices); управляется утилитой mdadm(8). См. Documentation/admin-guide/md.rst.


RAID 0 — Striping

Чередование блоков (chunks) между N устройствами. Запись/чтение распараллеливаются.

sudo mdadm --create /dev/md0 --level=0 --raid-devices=2 /dev/sda /dev/sdb

RAID 1 — Mirroring

Идентичные копии данных на каждом устройстве. Чтение распараллеливается между копиями; запись идёт во все.

sudo mdadm --create /dev/md1 --level=1 --raid-devices=2 /dev/sda /dev/sdb

RAID 10 — Mirror over Stripe

Linux md --level=10 — нативная реализация (не nested RAID 1+0). Поддерживает near, far, offset layouts (-p n2, -p f2, -p o2) и нечётное число устройств.

sudo mdadm --create /dev/md10 --level=10 --raid-devices=4 /dev/sda /dev/sdb /dev/sdc /dev/sdd

Мониторинг

/proc/mdstat

cat /proc/mdstat

Формат строки состояния: [UU] — все устройства active, [U_] — одно failed/missing. Прогресс resync/recovery печатается ниже.

mdadm --detail

sudo mdadm --detail /dev/md0

Поля: Raid Level, Array Size, Used Dev Size, State (clean, degraded, resyncing, recovering), Active/Working/Failed/Spare Devices, UUID.

SMART

sudo smartctl -a /dev/sda

Пакет smartmontools. Показывает SMART-атрибуты: Reallocated_Sector_Ct, Pending_Sector_Count, Temperature_Celsius и др.

Реальное время

watch cat /proc/mdstat

Уведомления

/etc/mdadm/mdadm.conf (Debian/Ubuntu) или /etc/mdadm.conf (RHEL):

MAILADDR admin@example.com

Демон mdadm --monitor:

sudo systemctl enable --now mdmonitor.service

(на Debian/Ubuntu юнит называется mdmonitor.service, на других дистрибутивах может быть mdadm.service).


Ссылки

RAID в Linux — уровни 0, 1 и 10 | Aleksandr Suprun