RAID уровни: что выбрать и почему RAID 5 уже не торт
RAID уровни: что выбрать и почему RAID 5 уже не торт
RAID придумали в 1988 году, и с тех пор базовые уровни не изменились. Но изменились диски: они стали огромными — 16, 20, 22 ТБ на штуку — и это полностью меняет расклад. То, что прекрасно работало на дисках по 146 ГБ, превращается в проблему на современных HDD. Разберём уровни RAID и выясним, почему RAID 5 в 2026 году — это риск, который трудно оправдать.
Основные уровни RAID
RAID 0 (Striping) — данные разбиваются на полосы и пишутся на все диски одновременно. Максимальная скорость, нулевая отказоустойчивость. Один диск умер — теряете всё. Используется только там, где скорость важнее данных: временные кэши, scratch-дисплеи для рендеринга.
RAID 1 (Mirroring) — полная копия данных на каждом диске. Простота, надёжность, отличная скорость чтения. Полезного пространства — 50%. Хорошо подходит для системных дисков, небольших баз данных.
RAID 5 (Striping + Parity) — данные и контрольная сумма распределены по всем дискам. Выживает потеря одного диска. Требует минимум 3 диска, полезного пространства — (N-1)/N. Когда-то был золотым стандартом.
RAID 6 (Double Parity) — как RAID 5, но с двойной чётностью. Выживает потеря двух дисков одновременно. Медленнее при записи, но значительно надёжнее.
RAID 10 (1+0) — зеркала объединённые в stripe. Выживает потеря одного диска из каждой зеркальной пары. Отличная производительность на запись. Полезного пространства — 50%, нужно минимум 4 диска.
Почему RAID 5 больше не торт
Всё дело в Unrecoverable Read Error (URE). Современные SATA HDD имеют типичный URE rate 10^14 бит. Это означает, что в среднем одна ошибка чтения возникает на каждые ~12 ТБ прочитанных данных.
Теперь посчитаем. Когда в RAID 5 массиве умирает диск, контроллер начинает rebuild — читает все оставшиеся диски целиком, чтобы восстановить данные. На массиве из пяти дисков по 16 ТБ нужно прочитать около 64 ТБ. При URE 10^14 вероятность наткнуться на нечитаемый сектор во время rebuild — более 50%. Rebuild и так, и без того длится 12−48 часов на больших дисках. Вы получаете деградированный массив, который с высокой вероятностью окончательно потеряет данные прямо в процессе восстановления.
RAID 6 — минимум для хранения данных сегодня
RAID 6 переживает потерю двух дисков. Во время rebuild потеря второго диска — уже не катастрофа. Да, производительность записи чуть ниже (две операции чётности вместо одной), но с современными контроллерами это практически незаметно.
mdadm: программный RAID на Linux
# Создать RAID 6 из 6 дисков
mdadm --create /dev/md0
--level=6
--raid-devices=6
/dev/sd{b,c,d,e,f,g}
# Проверить состояние
cat /proc/mdstat
mdadm --detail /dev/md0
# Добавить spare-диск
mdadm /dev/md0 --add /dev/sdh
# Форсировать rebuild
mdadm /dev/md0 --add /dev/sdb # после замены вышедшего диска
ZFS как альтернатива RAID
ZFS предлагает raidz2 (аналог RAID 6) и raidz3 (тройная чётность). Главное преимущество — ZFS проверяет контрольные суммы при каждом чтении и умеет восстанавливать silent corruption, о котором аппаратный RAID даже не подозревает. Это называется scrubbing:
zpool scrub tank # запустить проверку пула
zpool status tank # посмотреть результат
Практические рекомендации
- Системный диск / небольшие данные: RAID 1
- Большие объёмы, много дисков: RAID 6 или raidz2 на ZFS
- Базы данных с высокими IOPS: RAID 10
- RAID 5: избегайте на дисках объёмом более 2−4 ТБ
- RAID — не замена бэкапу: RAID защищает от отказа железа, но не от случайного удаления, вирусов и пожара в ДЦ
Следите за SMART-показателями дисков: smartctl -a /dev/sdb. Первые признаки проблем видны задолго до физического отказа.
Расчёт про URE очень наглядный, именно так и объясняю коллегам почему мы перешли с RAID 5 на raidz2. Жаль что многие узнают об этом только после потери данных.