Представь, что ты собрал свой сервер хранения данных на базе TrueNAS. Диски подключены, система установлена, но впереди самый важный выбор — как организовать эти диски в надёжный и производительный массив? Давай разберём, как работает RAID в экосистеме TrueNAS, почему это не совсем классический RAID, и как правильно настроить пул под твои задачи, будь то домашняя медиатека или корпоративный бэкап-сервер.
Что такое RAID в TrueNAS? Отличия от классического подхода
В TrueNAS (ранее FreeNAS) используется не традиционный аппаратный или софтовый RAID, а файловая система ZFS со своими механизмами объединения дисков — RAIDZ (аналог RAID 5/6) и зеркалирование (аналог RAID 1/10). Ключевое преимущество — интеграция на уровне файловой системы: контрольные суммы данных, самовосстановление (scrub) и мгновенные снапшоты.
Выбор уровня RAID: Сравнение RAIDZ1, Z2, Z3 и зеркал
Перед созданием пула нужно определиться с компромиссом между объёмом, производительностью и отказоустойчивостью. Давай сравним основные варианты.
| Тип (ZFS) | Аналог RAID | Минимум дисков | Отказоустойчивость | Эффективный объём | Использование |
|---|---|---|---|---|---|
| Stripe | RAID 0 | 1 | Нет | 100% | Не рекомендуется |
| Mirror | RAID 1 | 2 | До N-1 | 50% | Высокая скорость, малые пулы |
| RAIDZ1 | RAID 5 | 3 | 1 диск | (N-1)/N | Баланс объёма/надёжности |
| RAIDZ2 | RAID 6 | 4 | 2 диска | (N-2)/N | Рекомендуется для средних/больших пулов |
| RAIDZ3 | — | 5 | 3 диска | (N-3)/N | Максимальная надёжность для критичных данных |
Создание и настройка TrueNAS RAID 10 (Striped Mirrors)
TrueNAS RAID 10 — это комбинация зеркал (RAID 1), объединённых в страйп (RAID 0). Это даёт максимальную производительность как на чтение, так и на запись, и высокую отказоустойчивость (каждое зерко может потерять по диску). Давай создадим такой пул через веб-интерфейс и посмотрим на эквивалентные команды.
Шаг 1: Подготовка дисков
Убедись, что у тебя чётное количество дисков (4, 6, 8...). В интерфейсе перейди в Storage → Disks. Диски должны быть видны и не иметь разделов. Идеально использовать диски одного размера и модели.
Шаг 2: Создание пула через Web UI
- Перейди в Storage → Pools и нажми "ADD".
- В поле "Name" укажи название пула (например,
tank). - В разделе "Data VDevs" нажми "ADD VDEV" и выбери тип Mirror.
- Перетащи в эту VDev два диска. Это создаст первое зеркало (например,
da0иda1). - Снова нажми "ADD VDEV", выбери Mirror и перетащи следующую пару дисков (
da2иda3). - Повторяй, пока не добавятся все диски. Для TrueNAS RAID 10 из 4 дисков у тебя будет 2 VDev типа Mirror.
- Оставь остальные настройки по умолчанию и нажми "CREATE POOL".
Шаг 3: Эквивалентная команда в shell (zpool create)
То, что ты сделал в интерфейсе, можно выполнить одной командой. Подключись к TrueNAS по SSH.
# Создание пула 'tank' в конфигурации RAID 10 из 4 дисков (2 зеркала)
zpool create tank \
mirror /dev/da0 /dev/da1 \
mirror /dev/da2 /dev/da3
# Проверка статуса пула
zpool status tank
Вывод команды zpool status покажет структуру VDevs:
pool: tank
state: ONLINE
scan: none requested
config:
NAME STATE READ WRITE CKSUM
tank ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
da0 ONLINE 0 0 0
da1 ONLINE 0 0 0
mirror-1 ONLINE 0 0 0
da2 ONLINE 0 0 0
da3 ONLINE 0 0 0
Расширение пула: Добавление VDev в существующий RAID
Одна из сильных сторон ZFS — возможность расширения пула добавлением новых VDevs. Например, у тебя есть пул из двух зеркал (4 диска), и ты хочешь добавить ещё два диска в виде третьего зеркала для увеличения ёмкости.
# Добавляем новое зеркало (da4, da5) в существующий пул 'tank'
zpool add tank mirror /dev/da4 /dev/da5
# Проверяем обновлённую структуру
zpool status tank
Критические задачи администрирования
Замена вышедшего из строя диска
Допустим, в нашем TrueNAS RAID 10 отказал диск /dev/da1. ZFS отметит зеркало как DEGRADED, но данные доступны. Физически замени диск в сервере, затем в веб-интерфейсе (Storage → Pools → три точки у пула → Status) нажми "Replace" у проблемного диска и выбери новый. Или через командную строку:
# Помечаем диск как вышедший из строя (опционально)
zpool offline tank /dev/da1
# Заменяем диск da1 на новый da6
zpool replace tank /dev/da1 /dev/da6
# Мониторим процесс восстановления (resilvering)
zpool status -v tank
Плановое сканирование и проверка целостности (Scrub)
ZFS автоматически проверяет контрольные суммы и исправляет ошибки, используя избыточные данные. Запускай scrub раз в 1-2 недели.
# Запуск scrub вручную для пула 'tank'
zpool scrub tank
# Проверка прогресса
zpool status tank
Часто задаваемые вопросы (FAQ) по TrueNAS RAID
Можно ли смешивать диски разного размера в одном пуле?
Да, но с важной оговоркой. В рамках одной VDev (например, одного зеркала или RAIDZ) ZFS будет использовать объём самого маленького диска. Для TrueNAS RAID 10 старайся, чтобы диски в каждом конкретном зеркале были одинакового размера.
Что лучше для производительности: RAIDZ2 или RAID 10 из зеркал?
RAID 10 (зеркала) обычно даёт лучшую производительность на случайных операциях чтения/записи (например, для виртуальных машин, баз данных). RAIDZ2 лучше подходит для последовательного доступа (потоковое видео, бэкапы) и обеспечивает лучшую утилизацию дискового пространства при сравнимой отказоустойчивости.
Как добавить кэширование (L2ARC) или лог (SLOG) к пулу?
Для этого используются специальные VDevs. L2ARC (кэш чтения) и SLOG (кэш записи ZIL) резко ускоряют работу. Добавляются они после создания основного пула через "ADD VDEV" в разделе соответствующих типов. Для SLOG обязательно используй устройство с защитой от потери питания (например, SSD с конденсаторами).
# Добавление SLOG устройства (например, быстрый NVMe) к пулу
zpool add tank log /dev/nvd0
# Добавление L2ARC кэша
zpool add tank cache /dev/nvd1
Правда ли, что RAID — это не замена бэкапу?
Абсолютная правда. RAID (или ZFS pool) защищает от физического отказа оборудования. Он не защитит от случайного удаления файлов, программного сбоя, ransomware-атаки или ошибки в данных, которая уже записана. Правило 3-2-1 (три копии данных, на двух разных носителях, одна из которых вне площадки) — обязательно.
Заключение: Ключевые принципы
Настройка truenas raid — это фундамент твоей системы хранения. Запомни главное:
- Выбирай уровень избыточности (RAIDZ2 или truenas raid 10) исходя из задач, а не только из экономии места.
- Планируй дисковую архитектуру заранее — переделать тип VDev будет невозможно.
- Регулярно выполняй scrub и мониторь состояние дисков через SMART-тесты.
- Настрой автоматические уведомления (в System → Alert Services) о проблемах с пулом.
- И помни: ZFS pool — это мощно, но бэкап — священен.
Теперь у тебя есть не только пошаговая инструкция, но и понимание, как работает ZFS под капотом. Создавай пул с уверенностью.