RAIDZ или аппаратный RAID: что выбрать для ZFS на FreeBSD
При сборке файлового хранилища на базе HP DL380 Gen8 с контроллером P420i (1 ГБ кэша) и 12 дисками SATA по 4 ТБ перед администратором встаёт дилемма: использовать аппаратный RAID-массив или доверить управление дисками программной файловой системе ZFS. Оба подхода имеют сильные и слабые стороны, особенно в контексте скорости работы и безопасности данных. Разберём ключевые сценарии и дадим рекомендации.
Аппаратный RAID: плюсы и минусы на HP P420i
Контроллер HP P420i - это мощное устройство с кэшем 1 ГБ, поддерживающее режимы RAID 0, 1, 5, 6, 10, 50 и 60. Использование аппаратного RAID освобождает процессор сервера от вычислений контрольных сумм, что теоретически повышает производительность при последовательных операциях. Однако есть важный нюанс: ZFS, работающая поверх аппаратного RAID, не видит реального состояния дисков. Она получает от контроллера уже «склеенный» виртуальный диск, что лишает ZFS возможности самостоятельно исправлять ошибки - функция self-healing становится бесполезной. Кроме того, при сбое контроллера восстановить данные без аналогичного железа будет крайне сложно.
Какой уровень RAID выбрать?
- RAID 10 - компромисс между скоростью и отказоустойчивостью. Из 12 дисков полезная ёмкость - 6 дисков (24 ТБ). Выдерживает потерю до 6 дисков (по одному из каждого зеркала). Отличная производительность на случайных операциях ввода-вывода.
- RAID 50 - объединяет два массива RAID 5 в один. Из 12 дисков (два массива по 6 дисков) полезная ёмкость - 10 дисков (40 ТБ). Скорость записи ниже, чем у RAID 10, из-за вычисления чётности.
- RAID 60 - два массива RAID 6. Полезная ёмкость - 8 дисков (32 ТБ). Максимальная отказоустойчивость: выдерживает потерю до 4 дисков (по два в каждом подмассиве), но производительность ещё ниже из-за двойной чётности.
Для файлопомойки, где важна ёмкость, RAID 50 выглядит разумным выбором. Но помните: если выйдет из строя сам контроллер, данные станут недоступны до замены на точно такую же модель.
Программный RAIDZ на ZFS: преимущества и риски
ZFS с собственным RAIDZ - это современный подход, при котором контроллер P420i переводится в режим HBA (Host Bus Adapter) или просто отключается RAID-функциональность. Все диски подключаются напрямую к системе, и ZFS управляет ими сама.
Плюсы программного RAIDZ
- Безопасность данных: ZFS проверяет контрольные суммы каждого блока и автоматически исправляет ошибки, если есть избыточность.
- Гибкость: можно создавать пулы из дисков разного размера (с учётом ограничений), добавлять кэш-устройства (L2ARC) и журнал (ZIL/SLOG) на SSD.
- Независимость от железа: пул ZFS можно перенести на другой сервер с FreeBSD или Linux, просто подключив диски.
- Снапшоты и сжатие: встроенные средства для резервного копирования и экономии места.
Какой RAIDZ выбрать?
Для 12 дисков оптимальны следующие схемы:
- RAIDZ2 (двойная чётность) - полезная ёмкость 10 дисков (40 ТБ). Выдерживает потерю любых двух дисков. Рекомендуемый вариант для файлопомойки: хороший баланс между ёмкостью и отказоустойчивостью.
- RAIDZ3 (тройная чётность) - полезная ёмкость 9 дисков (36 ТБ). Выдерживает потерю трёх дисков. Избыточно для большинства сценариев, но даёт максимальную защиту.
- Два зеркала (RAID 10 в ZFS) - 6 дисков полезных. Максимальная производительность, но малая ёмкость.
Сравнение скорости: аппаратный RAID vs RAIDZ
На HP DL380 Gen8 с одним процессором (обычно Xeon E5-2600 v2) программный RAIDZ2 будет утилизировать CPU при записи. Для чисто файлового сервера с сетевым доступом (1-10 Гбит/с) это не критично - узким местом станет сеть, а не процессор. Аппаратный RAID 50 на P420i покажет чуть более высокую скорость последовательной записи за счёт аппаратного вычисления чётности, но разница будет заметна только при работе с большими файлами внутри самого сервера.
Финальная рекомендация
Для сценария «файлопомойка + кластеризация» с упором на безопасность данных и независимость от железа выбор очевиден: отключите RAID на контроллере P420i (переведите его в режим HBA) и используйте ZFS с RAIDZ2. Это даст 40 ТБ полезного пространства, защиту от сбоя двух дисков и возможность перенести пул на другой сервер без потери данных. Если же для вас критична максимальная производительность записи и вы готовы мириться с риском выхода из строя контроллера, используйте аппаратный RAID 50. Для кластеризации с репликацией (например, через ZFS send/receive) программный RAIDZ предпочтительнее, так как позволяет гибко настраивать реплики на уровне пулов.