TrueNAS NAS: Установка, настройка ZFS, SMB/NFS, Docker | AdminWiki

TrueNAS NAS: Полное руководство по развертыванию и настройке для DevOps

25 января 2026 7 мин. чтения #devops #docker #nas #nfs #samba #storage #truenas #zfs

Представь, что тебе нужно развернуть надежное, масштабируемое хранилище для проекта. Ты устал от облачных счетов и хочешь контролировать свои данные. Решение — TrueNAS NAS. Это не просто "сетевая папка", а полноценная ZFS-система с enterprise-функциями, доступная каждому. Давай разберем, как превратить железо в профессиональный NAS.

Что такое TrueNAS и почему он нужен DevOps

TrueNAS — это операционная система на базе FreeBSD (TrueNAS CORE) или Linux (TrueNAS SCALE), заточенная под работу с хранилищами данных. Её ядро — файловая система ZFS, которая даёт:

  • Снапшоты — моментальные снимки данных без нагрузки
  • Копирование при записи (Copy-on-Write) — защита от повреждения данных
  • Самовосстановление — проверка целостности и исправление ошибок
  • Легкое масштабирование — добавление дисков в пул на лету
Для DevOps-инженера TrueNAS — это инфраструктурный кирпич. На нём можно хранить бэкапы, Docker-образы, ISO-файлы виртуальных машин, логи и даже развернуть CI/CD артефакты.

Выбор между TrueNAS CORE и TrueNAS SCALE

Первый и главный выбор. Давай сравним:

Критерий TrueNAS CORE TrueNAS SCALE
Основа FreeBSD Linux (Debian)
Виртуализация Bhyve (ограниченно) KVM + Docker
Контейнеры Jails (FreeBSD) Docker + Kubernetes
Для кого Классический NAS, файловое хранилище DevOps, хомлабы, гиперконвергентные системы
Если планируешь работать с Docker/Kubernetes — выбирай TrueNAS SCALE. CORE подойдет для чисто файловых задач.

Пошаговая установка TrueNAS SCALE

Шаг 1: Подготовка загрузочного носителя

Скачиваем ISO с официального сайта. Записываем на USB (минимум 8 ГБ) через BalenaEtcher или dd:

bash
# Определяем устройство USB (ОСТОРОЖНО!)
lsblk
# Допустим, USB — это /dev/sdb
sudo dd if=truenas-scale.iso of=/dev/sdb bs=1M status=progress
sudo sync

Шаг 2: Установка на систему

Загружаемся с USB, выбираем установку. Важный момент — TrueNAS устанавливается целиком на диск. Для системы выдели отдельный SSD (даже на 32 ГБ), а для данных — другие диски.

  • Выбираем диск для установки (НЕ данные!)
  • Задаем root-пароль и IP-адрес (или оставляем DHCP)
  • Ждем завершения, извлекаем USB, перезагружаемся

Базовая настройка хранилища: создание пула ZFS

Всё управление через веб-интерфейс (https://IP-адрес). Первым делом создаем пул (Pool) — это аналог RAID-массива в ZFS.

Web UI / Консоль
# Через веб: Storage → Pools → ADD
# Или через консоль (если любишь CLI):
zpool create tank raidz2 /dev/sda /dev/sdb /dev/sdc /dev/sdd
zpool status tank

Рекомендации по конфигурациям:

  • mirror (RAID1): 2 диска — максимум безопасности, минимум места
  • raidz1 (RAID5): 3+ диска — один диск на отказ
  • raidz2 (RAID6): 4+ диска — два диска на отказ (рекомендуется)
  • raidz3: 5+ дисков — три диска на отказ для очень больших массивов

Создание наборов данных (Datasets)

Внутри пула создаем datasets — это как папки, но с индивидуальными настройками ZFS (компрессия, квоты, снапшоты).

Web UI
# Storage → Pools → три точки у пула → Add Dataset
Имя: docker
Компрессия: lz4 (рекомендуется)
Quota: 100G (если нужно ограничить)

Настройка сетевых шаров: SMB и NFS

SMB/CIFS для Windows и macOS

Идем в Sharing → SMB. Добавляем шар, указываем путь к dataset.

Конфиг SMB (автоматически)
# Файл конфигурации: /etc/smb4.conf
[backup]
path = /mnt/tank/backup
valid users = @users
read only = no
browsable = yes

Не забудь создать пользователей (Credentials → Local Users) и назначить им права.

NFS для Linux и Kubernetes

NFS критически важен для DevOps. В Sharing → NFS создаем шар. Пример для экспорта dataset "docker":

/etc/exports
/mnt/tank/docker -alldirs -network 192.168.1.0/24 -maproot=root

На клиенте монтируем так:

bash
sudo mount -t nfs 192.168.1.10:/mnt/tank/docker /mnt/docker

Использование TrueNAS как Docker-хоста

В TrueNAS SCALE есть встроенные Applications (это обёртка над Kubernetes). Но если хочешь прямой Docker — есть два пути:

Способ 1: Установка Docker вручную через Shell

bash
# Включаем SSH и заходим на TrueNAS
ssh root@truenas.local

# Устанавливаем Docker
apt update
apt install docker.io docker-compose

# Запускаем сервис
systemctl enable --now docker

# Проверяем
docker ps
Ручная установка Docker может сломаться после обновления TrueNAS. Используй на свой страх и риск.

Способ 2: Использование Applications (рекомендуется)

Идем в Applications, настраиваем Pool для приложений. Устанавливаем, например, Portainer:

  • Находим "Portainer" в каталоге
  • В настройках Storage указываем dataset для /data
  • Задаем NodePort (например, 30779 для веб-интерфейса)
  • Запускаем, управляем Docker через Portainer

Автоматизация и мониторинг

Снапшоты и репликация

Сила ZFS — в снапшотах. Настрой периодические снапшоты через Storage → Snapshots:

Периодические снапшоты (через UI)
Dataset: tank/docker
Расписание: каждый день в 2:00
Хранить: 7 дней, 4 недельных, 3 месячных

Репликацию на второй TrueNAS настраиваешь через Storage → Replication Tasks.

Мониторинг через Netdata или Prometheus

Установи Netdata из Applications — даст красивый дашборд по дискам, ZFS, сети.

Для интеграции с существующим Prometheus:

prometheus.yml
scrape_configs:
  - job_name: 'truenas'
    static_configs:
      - targets: ['truenas.local:9100']  # node_exporter порт
    metrics_path: '/api/v2.0/metrics/report'
    scheme: 'https'
    basic_auth:
      username: 'root'
      password: 'твой_пароль'

Частые вопросы (FAQ)

Можно ли обновлять TrueNAS без потери данных?

Да, обновления через веб-интерфейс безопасны для данных. Но всегда делай снапшот перед обновлением. Данные хранятся в пулах ZFS, которые не затрагиваются при обновлении системы.

Как мигрировать данные со старого NAS на TrueNAS?

1. Через NFS/SMB: смонтируй шар со старого NAS на TrueNAS и скопируй данные. 2. Через ZFS send/receive: если старый NAS тоже на ZFS, используй `zfs send | zfs recv` для эффективной миграции с сохранением снапшотов.

TrueNAS тянет 10 GbE сеть?

Да, если железо позволяет. Для 10 GbE нужны: быстрые диски (SSD или HDD в RAID), достаточный CPU (Intel Core i3/i5 или Xeon) и правильная настройка сети. На HDD-массиве ты упрешься в дисковую подсистему (~200-400 MB/s).

Можно ли запускать виртуальные машины на TrueNAS?

На TrueNAS SCALE — да, через встроенный KVM. Выделяй VM отдельный dataset, создавай виртуальную машину через раздел Virtual Machines. Идеально для тестовых стендов или изолированных сервисов.

Заключение: TrueNAS в DevOps-инфраструктуре

TrueNAS — это не игрушка, а production-готовое решение. С ним ты получаешь:

  • Надежное хранилище с ZFS и самовосстановлением
  • Единую точку управления данными, снапшотами, репликацией
  • Платформу для Docker и виртуальных машин (на SCALE)
  • Бесплатный enterprise-уровень с активным комьюнити

Начни с малого: разверни TrueNAS SCALE на старой рабочей станции, создай пул из двух дисков в mirror, настрой NFS-шар для своих проектов. Через месяц ты не поймешь, как жил без снапшотов и компрессии lz4.

Поделиться:
Сохранить гайд? В закладки браузера