Представь, что тебе нужно надежное, производительное и функциональное хранилище данных для дома, лаборатории или даже небольшого офиса. Ручная сборка ZFS на Linux — это мощно, но требует времени и глубоких знаний. TrueNAS OS — это готовое, отполированное решение, которое упаковывает всю мощь ZFS в интуитивный веб-интерфейс. Давай разберем, как развернуть его с нуля и настроить под свои задачи.
Что такое TrueNAS OS и зачем он нужен
TrueNAS OS (ранее FreeNAS) — это специализированная операционная система на базе FreeBSD (или, в случае с TrueNAS CORE) и OpenZFS. Её ядро — это не просто файловый сервер, а комплексная платформа для управления данными с акцентом на целостность, безопасность и простоту администрирования.
- ZFS как основа: Все преимущества — снапшоты, копирование при записи (CoW), самовосстановление данных (scrub), сжатие, дедупликация.
- Единый веб-интерфейс: Управление дисками, сетью, общими ресурсами, сервисами и виртуализацией через браузер.
- Богатая экосистема плагинов и jail'ов: Развертывание дополнительных сервисов (Nextcloud, Plex, *Arr-приложения) в изолированных средах.
- Профессиональные фичи: Репликация, облачное резервное копирование, мониторинг через Graphite/InfluxDB, интеграция с Active Directory.
Пошаговая установка и первоначальная настройка TrueNAS
Шаг 1: Подготовка и установка ОС
Скачай последний образ TrueNAS OS с официального сайта. Запиши его на USB-накопитель (не менее 8 ГБ) с помощью BalenaEtcher или аналогичной утилиты. Загрузись с этого носителя.
# Пример записи образа через dd (Linux/Mac)
dd if=truenas.iso of=/dev/sdX bs=1M status=progress && sync
# Где /dev/sdX — твой USB-накопитель
В инсталляторе выбери загрузочный диск для установки самой ОС. Важно: Для ОС лучше выделить отдельный SSD (даже небольшой, 16-32 ГБ) или USB (менее надежно). Данные будут храниться на других дисках.
Шаг 2: Базовая сетевая настройка
После установки и перезагрузки система покажет IP-адрес, присвоенный по DHCP. Подключись к нему через браузер. Первым делом задай статический IP.
- Перейди в Network → Interfaces.
- Отредактируй активный интерфейс (например, igb0).
- Укажи статический IP, маску, шлюз и DNS-серверы.
# Конфигурация сети через CLI (альтернативный способ)
truenas# cli
> network interface query # Смотрим интерфейсы
> network interface update id=igb0 ipv4_dhcp=false \
aliases="192.168.1.10/24" \
ipv4_gateway="192.168.1.1"
Создание и настройка пула хранения ZFS
Это сердце TrueNAS OS. Пул (pool) — это группа дисков, организованная в виде RAIDZ (аналог RAID 5/6) или mirror.
Шаг 3: Создание пула через веб-интерфейс
- Перейди в Storage → Pools и нажми "ADD POOL".
- Выбери диски (минимум 3 для RAIDZ1, 4 для RAIDZ2).
- Выбери тип виртуализации (Data VDev):
- RAIDZ1: Один диск для четности. Потеря емкости 1 диск.
- RAIDZ2: Два диска для четности. Выдерживает отказ 2 дисков.
- Mirror: Диски в парах (2,4,6...). Максимальная надежность и производительность, но большая потеря емкости (50%).
- Настрой свойства пула (опционально, но рекомендуется):
- Compression: LZ4 (практически без нагрузки на CPU).
- Record Size: Для больших файлов (видео, backups) — 1M. Для маленьких (ВМ, базы данных) — 16K-128K.
- Enable atime: Лучше отключить (set to off) для снижения нагрузки на диск.
Шаг 4: Создание наборов данных (Datasets)
Внутри пула создавай логические разделы — datasets. У каждого могут быть свои настройки квот, сжатия и прав.
# Создание dataset через CLI с кастомными настройками
truenas# zfs create -o compression=zstd-fast -o recordsize=128k \
-o quota=500G tank/apps/database
# Где tank — имя пула, apps/database — путь dataset
Настройка общих ресурсов (SMB, NFS, iSCSI)
Теперь сделаем данные доступными в сети.
Шаг 5: Создание общего ресурса SMB (Samba)
- Создай dataset, например,
tank/share/media. - Перейди в Sharing → Windows Shares (SMB) → ADD.
- Укажи путь к dataset.
- Настрой права:
- Включи "Enable ACLs" для детального управления правами.
- В закладке "Advanced" можно задать параметры для медиасерверов (например,
ea support = noдля лучшей совместимости).
# Фрагмент конфига SMB (генерируется автоматически)
# Можно добавить кастомные параметры в Services → SMB → Auxiliary Parameters
[Media]
path = /mnt/tank/share/media
read only = no
veto files = /.snapshot/.windows/.mac/.zfs/
vfs objects = zfs_space zfsacl streams_xattr
zfsacl:acesort = dontcare
Шаг 6: Настройка периодических задач (Scrub, Snapshots, Replication)
Автоматизация — ключ к надежности.
- Scrub (проверка целостности): Storage → Scrubs. Добавь задачу для пула раз в неделю или две.
- Снапшоты: Storage → Periodic Snapshot Tasks. Создай политику снапшотов (например, ежечасно, хранить 24 штуки; ежедневно, хранить 30 штук).
- Репликация: Data Protection → Replication Tasks. Позволяет копировать снапшоты на второй сервер TrueNAS для Disaster Recovery.
Расширенные возможности и мониторинг
Настройка оповещений и мониторинга
Перейди в System → Alert Services. Можно настроить отправку уведомлений в Telegram, Slack или по email.
# Пример конфигурации оповещения о здоровье пула (генерируется системой)
# Критично, если состояние пула не ONLINE
CHECK="zpool status tank | grep -q -E 'DEGRADED|FAULTED|UNAVAIL|OFFLINE'"
if [ $? -eq 0 ]; then
/usr/local/bin/send_telegram.sh "ALERT: Pool tank is DEGRADED!"
fi
Использование плагинов и Jail'ов (TrueNAS CORE)
Позволяют запускать сторонние приложения в изолированных окружениях FreeBSD.
- Перейди в Jails → Add.
- Выбери шаблон (например, Nextcloud).
- Настрой сетевое взаимодействие и точки монтирования для доступа к данным.
Сравнение: TrueNAS CORE vs. TrueNAS SCALE
| Критерий | TrueNAS CORE | TrueNAS SCALE |
|---|---|---|
| Основа | FreeBSD | Linux (Debian) |
| Виртуализация | bhyve (ограниченная) | KVM (полноценная) |
| Контейнеризация | Jails (FreeBSD) | Docker + Kubernetes |
| Масштабирование | Вертикальное | Горизонтальное (кластеры) |
| Идеальный сценарий | Классический файловый сервер, репликация | Гибридное хранилище + контейнеры + ВМ |
Часто задаваемые вопросы (FAQ)
Можно ли обновлять TrueNAS OS без потери данных?
Да, процесс обновления через веб-интерфейс (System → Update) безопасен для данных, так как они хранятся в пулах ZFS, отдельно от системного раздела. Всегда делай полную резервную копию конфигурации (System → General → Save Config) перед обновлением.
Как перенести пул ZFS с другого сервера на TrueNAS?
Импорт пула — одна из сильных сторон. Просто подключи диски к TrueNAS, зайди в Storage → Pools → ADD → IMPORT. Система обнаружит существующий пул и предложит его импортировать. Права и данные сохранятся.
Почему не стоит использовать RAIDZ1 с дисками большого объема?
Во время восстановления (resilver) после замены сломанного диска в RAIDZ1 высока вероятность встречной ошибки (URE) на одном из оставшихся дисков, что приведет к полной потере данных. RAIDZ2 или зеркала безопаснее для дисков от 4 ТБ и более.
Как организовать автоматическое резервное копирование на облако?
Используй задачу Cloud Sync (Data Protection → Cloud Sync Tasks). TrueNAS поддерживает S3, Backblaze B2, Google Drive, Dropbox и др. Настрой синхронизацию dataset с облачным бакетом по расписанию.
Заключение
TrueNAS OS — это не просто "сборка ZFS с веб-мордой". Это законченная, профессиональная платформа для управления данными, которая из коробки дает то, на настройку чего вручную ушли бы недели. От контроля целостности данных (scrub, снапшоты) до гибкого предоставления доступа (SMB, NFS, iSCSI) и расширения функциональности (jails, плагины, ВМ). Начни с простого пула и общего ресурса, затем освой периодические снапшоты и репликацию — и твоя data-инфраструктура выйдет на новый уровень надежности и управляемости.