RAID 0, 1, 5, 10: який рівень обрати для сервера
Під системний том і більшість робочих задач беріть RAID 1 із двох дисків. Під навантажену базу даних і віртуалізацію — RAID 10 із чотирьох і більше накопичувачів. Під файлове сховище, де вирішує обсяг, — RAID 5 або RAID 6. RAID 0 у продакшені не використовують: він нічого не резервує і подвоює шанс втратити дані.
- RAID 1 — дзеркало: корисна ємність одного диска, масив переживає відмову одного з двох.
- RAID 10 — дзеркальні пари, об'єднані у страйп: 50% ємності, найкращий випадковий запис, швидке відновлення копіюванням.
- RAID 5 — парність: корисні N−1 дисків, але кожен випадковий запис коштує чотирьох операцій, а ребілд триває годинами.
- RAID 6 переживає відмову двох дисків і потрібен на масивах від шести накопичувачів.
- Жоден рівень не замінює резервну копію: видалення файла і шифрувальник відбиваються на всіх дисках одразу.
Що RAID вирішує, а що ні
RAID об'єднує кілька фізичних накопичувачів в один логічний том. Рівень описує спосіб розкладання даних: копіювання (дзеркало), нарізання на смуги (страйп) або обчислення контрольної суми (парність).
Відмовостійкі рівні закривають рівно один сценарій — раптову смерть накопичувача або лавиноподібне зростання кількості збійних секторів. Логічні помилки масив не ловить: невдала міграція, rm -rf не в тому каталозі та шифрувальник потрапляють на всі диски одночасно. Тому масив і резервне копіювання сервера розв'язують різні задачі, і потрібні обидва.
RAID 0: швидкість без страховки
Дані ріжуться на смуги і пишуться на всі диски паралельно. Лінійна швидкість та IOPS зростають майже пропорційно кількості накопичувачів, корисна ємність дорівнює сумі. Надлишковості немає взагалі: масив із двох дисків помирає приблизно вдвічі частіше за одиночний диск, із чотирьох — вчетверо.
Рівень виправданий там, де дані відновлюються за хвилини і без вашої участі: кеш перекодованого відео, каталог складання CI, репліка для читання, яку перезаливають з майстра.
RAID 1: дзеркало на два диски
Кожен блок пишеться на обидва накопичувачі. Корисна ємність дорівнює обсягу одного диска, тобто половині сирого обсягу. Читання роздається з обох половин, запис іде зі швидкістю повільнішої з них.
Це стандарт для завантажувального тому і для серверів, чиї дані вміщуються на один накопичувач. Тарифи Dedicated Start і Dedicated Pro на виділених серверах ZevsHost зібрані саме так: 2×500 GB SSD або 2×1 TB NVMe у RAID 1.
RAID 5 і RAID 6: парність замість копії
RAID 5 зберігає один блок парності на кожну смугу і розподіляє його по всіх дисках. Із N накопичувачів корисні N−1: із шести дисків по 1 TB виходить 5 TB. Читання швидке, а запис платить штраф — зміна одного блоку перетворюється на два читання і два записи.
RAID 6 тримає два блоки парності, переживає відмову двох дисків поспіль, віддає корисними N−2 накопичувачі та платить уже шістьма операціями на випадковий запис.
RAID 10: дзеркала у страйпі
Диски розбиваються на дзеркальні пари, а пари об'єднуються у страйп. Корисні 50% сирої ємності, мінімум чотири накопичувачі. На випадковому записі RAID 10 випереджає RAID 5 у 4–6 разів: блок просто лягає на два диски пари, парність перераховувати не потрібно.
Ребілд теж дешевший — система копіює вміст вцілілої половини пари, а не збирає дані з усього масиву. Конфігурація Dedicated Enterprise US із 4×1 TB NVMe зібрана у RAID 10 саме під бази даних і гіпервізор.
Порівняння рівнів
| Рівень | Мін. дисків | Корисна ємність | Переживає відмову | Штраф на запис | Типова задача |
|---|---|---|---|---|---|
| RAID 0 | 2 | 100% | 0 дисків | немає | кеш, тимчасові дані |
| RAID 1 | 2 | 50% | 1 диск | немає | системний том, веб-сервер |
| RAID 5 | 3 | (N−1)/N | 1 диск | 4 операції | архів, файлове сховище |
| RAID 6 | 4 | (N−2)/N | 2 диски | 6 операцій | широкий масив на HDD |
| RAID 10 | 4 | 50% | 1 диск у кожній парі | немає | СУБД, віртуалізація |
Складання і перевірка масиву
Програмний масив збирається парою команд. Вибір реалізації — контролер чи mdadm — розібрано у статті апаратний RAID або mdadm; тут лише мінімум, щоб побачити рівень і стан.
# Debian/Ubuntu
apt-get install -y mdadm
# RHEL, AlmaLinux, Rocky
dnf install -y mdadm
# дзеркало з двох розділів
mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/nvme0n1p2 /dev/nvme1n1p2
# RAID 10 з чотирьох дисків
mdadm --create /dev/md1 --level=10 --raid-devices=4 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1
# поточний стан усіх масивів
cat /proc/mdstat
mdadm --detail /dev/md0 2>&1 | grep -E 'Raid Level|State|Failed|Active'
Масив у стані degraded продовжує працювати і нічим себе не видає: сайт відкривається, база відповідає, навантаження звичайне. Відмова другого диска в RAID 1 або RAID 5 цієї миті знищує дані повністю, відновлювати буде нічого. Заведіть перевірку одразу після складання: cat /proc/mdstat має показувати всі пристрої літерою U у дужках, наприклад [UU], а mdadm --detail — рядки State : clean і Failed Devices : 0. Символ підкреслення замість U означає накопичувач, що випав, і потребує заміни диска того ж дня.
Коротко
- Системний том і типовий веб-сервер — RAID 1 із двох дисків.
- База даних, гіпервізор, активний випадковий запис — RAID 10 від чотирьох накопичувачів.
- Архів на великих жорстких дисках — RAID 6; RAID 5 припустимий лише на вузьких масивах до п'яти дисків.
- RAID 0 — виключно під дані, втрата яких не створює інциденту.
- Будь-який рівень потребує окремих резервних копій і моніторингу стану масиву.