Эта статья — прямое и практическое руководство для системных администраторов и DevOps инженеров, которым нужно быстро и без ошибок развернуть сервисы на базе TrueNAS. Вы получите четкое сравнение архитектур Core и Scale, готовые пошаговые инструкции для обеих систем и рекомендации по распределению ресурсов, чтобы ваши приложения работали стабильно. Информация проверена на практике и актуальна для версий 2026 года.
Перед установкой: ключевое отличие архитектур TrueNAS Core и Scale
Успешное развертывание ПО в TrueNAS начинается с понимания фундаментального различия между двумя ветками системы. TrueNAS Core (основана на FreeBSD) и TrueNAS Scale (основана на Linux) используют принципиально разные подходы к изоляции и управлению сервисами. Выбор между ними определяет доступный инструментарий, гибкость и сложность администрирования.
TrueNAS Core: изоляция через Jails и управление плагинами
В TrueNAS Core основная единица развертывания — Jail. Это легковесная виртуальная среда ("клетка"), которая изолирует приложение, предоставляя ему собственную файловую систему, сетевой стек и пространство процессов, но использует ядро основной операционной системы. Плагины в Core — это предварительно собранные и настроенные Jail, доступные через официальный репозиторий.
Плюсы подхода:
- Предсказуемость и стабильность: Все зависимости жестко зафиксированы, что минимизирует конфликты.
- Глубокая интеграция с системой: Прямой доступ к функциям FreeBSD и ZFS.
- Простота управления: Весь жизненный цикл Jail (создание, запуск, остановка) контролируется через интуитивный веб-интерфейс.
Минусы подхода:
- Ограниченный выбор ПО: Официальный каталог плагинов сравнительно невелик.
- Возможное отставание версий: Обновления ПО в плагинах могут появляться с задержкой.
- Меньшая гибкость: Сложнее адаптировать окружение под специфические нужды по сравнению с контейнерами.
TrueNAS Scale: контейнеры, Kubernetes и App Catalog
TrueNAS Scale построена вокруг контейнерной парадигмы. В ее основе лежит облегченный дистрибутив Kubernetes — k3s, который оркестрирует контейнерные приложения. App Catalog — это графический интерфейс для управления хранилищем Helm-чартов (пакетами, описывающими развертывание приложения в K8s).
Плюсы подхода:
- Огромный выбор приложений: Доступны сотни приложений из официального и сторонних репозиториев (например, TrueCharts).
- Независимость версий: Каждое приложение работает в своей изолированной среде со своими зависимостями.
- Легкое масштабирование и оркестрация: Встроенная поддержка репликации, обновлений без простоя и балансировки нагрузки.
- Современный стек: Полная совместимость с экосистемой Docker и Kubernetes.
Минусы подхода:
- Более высокая сложность: Требуется базовое понимание концепций Kubernetes (поды, службы, PVC).
- Потребление ресурсов: Сам k3s и инфраструктура оркестрации требуют дополнительных вычислительных мощностей (CPU, RAM).
- Больше точек настройки: Развертывание включает конфигурацию хранилища, сети, переменных среды и ресурсов.
Итоговое сравнение для быстрого выбора:
- Выбирайте TrueNAS Core (Jails), если вам нужна максимальная стабильность, простота администрирования для классических сетевых сервисов (SMB/NFS-сервер, медиасервер Plex, Nextcloud) и вы предпочитаете проверенный FreeBSD-стек.
- Выбирайте TrueNAS Scale (Контейнеры/K8s), если вам требуется гибкость, доступ к современным контейнеризированным приложениям, планируется масштабирование или интеграция с существующей Kubernetes-инфраструктурой.
Пошаговая инструкция: установка плагина в TrueNAS Core
Установка плагина в Core — это самый быстрый способ получить готовый к работе сервис. Процесс полностью осуществляется через веб-интерфейс.
- В боковом меню веб-интерфейса перейдите в раздел «Plugins».
- Откроется вкладка «Available» со списком плагинов из официального репозитория iXsystems.
- Найдите нужный плагин (например, Nextcloud). Важно: Проверьте описание на совместимость с вашей версией TrueNAS Core (актуально на 2026 год).
- Нажмите кнопку «INSTALL» на выбранном плагине.
- В открывшемся диалоге укажите:
Имя Jail (латиницей, без пробелов).
Сетевые настройки: выберите интерфейс (обычно «br0» — мостовой), укажите метод получения IP (DHCP или статический адрес, шлюз).
Примечание: Для сервисов, которые должны быть доступны из внешней сети, рекомендуется использовать статический IP. - Нажмите «SUBMIT». Система автоматически загрузит образ, создаст Jail и установит плагин.
- После установки статус плагина в списке «Installed» сменится на «RUNNING». Для доступа к веб-интерфейсу приложения нажмите на «MANAGE» и следуйте инструкциям (обычно это переход по указанному IP-адресу и порту).
Где искать логи при ошибке: Если плагин не запустился, перейдите в «Jails», выберите соответствующий Jail и нажмите «Shell». Проверить логи запуска службы можно командами вида service -e | grep service_name и tail -f /var/log/messages.
Настройка сети и хранилища для нового Jail
Правильная начальная настройка предотвратит проблемы с доступностью и хранением данных.
- Сеть: Для большинства сценариев подходит режим «VNET» с бриджем («br0»). Это дает Jail собственный виртуальный сетевой интерфейс в сети вашего хоста. Для сервисов, требующих проброса множества портов или сложной маршрутизации, может потребоваться тонкая настройка сетевых правил.
- Хранилище (Storage): Подключение дискового пространства — критически важный шаг.
1. В свойствах Jail перейдите на вкладку «Storage» и нажмите «Add».
2. В поле «Source» выберите существующий набор данных (dataset) ZFS из вашего пула (например,/mnt/tank/app_data).
3. В поле «Destination» укажите точку монтирования внутри Jail (например,/mnt/dataили/var/db/nextcloudв зависимости от требований плагина).
4. Внимание на права доступа: Убедитесь, что пользователь и группа, от имени которых работает служба внутри Jail (например,wwwдля Nextcloud), имеют права на запись в подключенный каталог. Это можно настроить через свойства исходного набора данных ZFS или внутри Jail командойchown.
Для развертывания ПО, которого нет в официальном репозитории, потребуется создать кастомный Jail. Подробное руководство по созданию и настройке пользовательского Jail с нуля поможет вам в этом.
Пошаговая инструкция: установка приложения в TrueNAS Scale
Развертывание приложений в Scale — более гибкий, но и более многоэтапный процесс, связанный с настройкой Helm-чарта.
- В боковом меню перейдите в раздел «Apps».
- Нажмите «Discover Apps» или перейдите на вкладку «Available Applications».
- Используйте поиск, чтобы найти приложение (например, Plex). Критически важно: Не выбирайте версию
latestдля продакшен-среды. Выберите стабильную версию с номером (например,1.32.0). - Нажмите «Install».
- Заполните форму установки:
Application Name: Имя развертывания (латиницей).
Version: Убедитесь, что выбрана стабильная версия.
Workload Details: Оставьтеix-plex.
Namespace: Можно оставитьix-plexили создать свой для логической группировки приложений.
Конфигурация хранилища (Storage):
- В разделе «Storage» нажмите «Add».
- Выберите тип тома (обычноixVolumeдля использования локальных пулов ZFS).
- Укажите имя тома (PVC), выберите пул данных для хранения и тип доступа:ReadWriteOnce (RWO)для данных, уникальных для этого пода, илиReadWriteMany (RWX), если к данным нужно обращаться с нескольких подов (реже).
- Укажите точку монтирования внутри контейнера (например,/configдля конфигурации Plex).
Конфигурация сети (Networking):
- В разделе «Networking» выберите тип службы (Service). Для доступа извне (например, к веб-интерфейсу Plex) выберитеLoadBalancer— система назначит внутренний IP и откроет указанные порты. Для внутреннего взаимодействия между приложениями используйтеClusterIP.
- Укажите порт, на котором будет работать приложение. - Нажмите «Save». Приложение начнет развертывание. Статус можно отслеживать на вкладке «Installed Applications».
Расширенная настройка: переменные среды, ресурсы и обновления
После базовой установки важно оптимизировать приложение под ваши нужды.
- Переменные среды (Environment Variables): В форме редактирования приложения найдите соответствующий раздел. Здесь задаются ключевые параметры. Например, для корректного времени укажите переменную
TZсо значениемEurope/Moscow. Конкретные переменные зависят от приложения и указаны в его документации. - Ресурсы (Resources): В разделе «Resources» задайте лимиты и запросы CPU/RAM.
- Requests: Гарантированное количество ресурсов, резервируемое системой для пода.
- Limits: Максимально допустимое потребление.
Пример для медиасервера средней нагрузки: Установите Limit CPU на 2 ядра, Limit Memory на 4 GiB. Это предотвратит "голодание" других сервисов при пиковой нагрузке. - Политика обновлений (Update Policy): Настройте автоматические обновления. Рекомендуется выбрать политику «Only update the application if the new version is a higher SemVer match», чтобы избежать неожиданных мажорных обновлений, которые могут сломать обратную совместимость.
- Мониторинг развертывания: Если приложение "висит" в статусе
Deploying, нажмите на его имя, перейдите на вкладку «Events» и «Logs». В событиях часто указывается причина сбоя (например, ошибка монтирования тома PVC).
Как добавить и использовать сторонние репозитории приложений
Официальный каталог Scale содержит ограниченный набор приложений. Чтобы получить доступ к сотням дополнительных чартов (Pihole, Vaultwarden, мониторинг и т.д.), добавьте сторонний репозиторий.
- Перейдите в «Apps» -> «Manage Catalogs».
- Нажмите «Add Catalog».
- Заполните форму:
Catalog Name: Например,truecharts.
Repository: Укажите URL репозитория Helm-чартов. Для популярного сообщества TrueCharts этоhttps://github.com/truecharts/catalog(актуальность URL на 2026 год уточняйте в официальной документации TrueCharts).
Branch: Обычноmain.
Preferred Trains: Для стабильности выберитеstableилиenterprise. - Нажмите «Save». Система загрузит индекс репозитория. Это может занять несколько минут.
- После успешного добавления новые приложения появятся в «Available Applications». Вы можете фильтровать их по каталогу (
TRUECHARTS).
Важно: Добавляйте репозитории только из доверенных источников. Сторонние чарты могут требовать дополнительной настройки или содержать отличные от официальных параметры развертывания.
Распределение системных ресурсов и мониторинг
Грамотное планирование ресурсов — залог стабильной работы как самой TrueNAS, так и развернутых на ней сервисов. Недостаток ресурсов приводит к "тормозам" и сбоям, избыток — к неэффективному использованию железа.
- Оперативная память (RAM):
- TrueNAS Core: ZFS активно использует ARC (Adaptive Replacement Cache) для кэширования данных. Рекомендуется оставить не менее 8 ГБ ОЗУ для работы самой системы и ARC. Остаток можно выделять Jail.
- TrueNAS Scale: Помимо ZFS ARC, память потребляет k3s и системные сервисы. Минимум 16 ГБ ОЗУ для базовой работы системы. Для каждого приложения задавайте реалистичные Limits в разделе Resources. - Центральный процессор (CPU):
- Выделяйте ядра целыми единицами, особенно для ресурсоемких задач (транскодирование видео, компиляция). Для фоновых сервисов можно использовать доли ядра (например, 0.5).
- Мониторинг: Используйте встроенные графики в разделах «Reporting» (Core) или «System Settings -> Insights» (Scale), чтобы выявить узкие места. - Дисковый ввод-вывод (I/O):
- Не размещайте все высоконагруженные приложения на одном пуле ZFS. Разделите нагрузку: один пул для системных томов и кэша приложений, другой — для медиафайлов или баз данных.
- Используйте разные типы vdev (зеркало, RAIDZ) в зависимости от требований к производительности и отказоустойчивости. Подробнее об оптимизации ZFS. - Настройка алертов: В «System Settings -> Alert Services» настройте уведомления (Email, Telegram) о критических событиях: заполнении пула, высокой загрузке CPU, сбое службы.
Частые проблемы и их решения при развертывании
| Симптом | Вероятная причина | Решение |
|---|---|---|
| Приложение в Scale зависло в статусе «Deploying». | 1. Ошибка создания Persistent Volume Claim (PVC) — нет места или прав на пуле. 2. Не удалось загрузить образ контейнера из репозитория. | 1. Проверьте вкладку «Events» приложения на наличие ошибок монтирования. Убедитесь, что в целевом пуле достаточно свободного места. 2. Проверьте доступность сети, попробуйте выбрать другую версию приложения. |
| Плагин в Core установился, но сервис не запускается. | 1. Конфликт портов (порт уже занят другим Jail или службой). 2. Ошибка в конфигурации плагина или недостаток прав для доступа к хранилищу. | 1. В свойствах Jail измените номер порта в настройках сети или остановите конфликтующий сервис. 2. Откройте Shell Jail и проверьте логи службы ( journalctl -xe или логи в /var/log). Убедитесь, что пользователь службы имеет права на запись в подключенные каталоги. |
| Нет доступа к веб-интерфейсу развернутого приложения. | 1. Неправильно настроен тип службы (Service Type) в Scale. 2. Брандмауэр на хосте или сетевом оборудовании блокирует порт. 3. Приложение запустилось не на том IP-адресе. | 1. Для внешнего доступа у службы должен быть тип LoadBalancer. Проверьте в настройках приложения.2. Убедитесь, что указанный в службе порт открыт в настройках брандмауэра TrueNAS и маршрутизатора. 3. В Scale проверьте назначенный службе IP в разделе «Services». В Core проверьте IP Jail в списке Jails. |
| Нехватка места для обновления приложения или системы. | 1. Переполнен пул загрузок (boot-pool) или пул данных. 2. Накопилось много старых образов контейнеров или снапшотов. | 1. Освободите место, удалив ненужные данные или расширив пул. 2. В Scale: «System Settings -> Advanced -> Kubernetes -> Cleanup unused images». Регулярно управляйте снапшотами наборов данных. |
Вопросы миграции и итоговое сравнение
Возможна ли миграция сервиса из Jail (Core) в контейнер (Scale) и обратно?
Прямой, автоматической миграции не существует из-за кардинального различия архитектур (FreeBSD Jail vs Linux-контейнер). Процесс миграции всегда сводится к двум этапам:
- Миграция данных: Обеспечьте доступ к данным приложения (файлы конфигурации, базы данных, медиатека) из новой системы. Это можно сделать через общую сетевую папку (SMB/NFS), копирование или подключение дисков.
- Новая установка приложения: Разверните приложение в целевой системе (Core или Scale) по инструкциям выше и настройте его на работу с перенесенными данными.
Итоговая шпаргалка для выбора (2026):
| Критерий | TrueNAS Core (Jails) | TrueNAS Scale (Контейнеры/K8s) |
|---|---|---|
| Идеально для | Классических файловых серверов (SMB/NFS/iSCSI), медиасерверов (Plex, Emby), стабильных сервисов типа Nextcloud. Простоты администрирования. | Современного стека приложений (из каталогов TrueCharts и др.), оркестрации нескольких сервисов, интеграции с Docker/K8s-экосистемой, масштабирования. |
| Архитектура | FreeBSD Jails. Изоляция на уровне ОС. | Linux-контейнеры (Docker), оркестрация через k3s (Kubernetes). |
| Выбор ПО | Ограничен официальными плагинами. Для кастомного ПО нужен ручной Jail. | Огромный, за счет сторонних Helm-репозиториев. |
| Сложность | Низкая/Средняя. Понятный интерфейс, меньше точек настройки. | Средняя/Высокая. Требует понимания базовых концепций K8s. |
| Потребление ресурсов | Минимальное накладные расходы. | Выше (затраты на k3s и оркестрацию). |
| Автоматизация | Ограничена скриптами внутри Jail. | Широкая, через REST API для полного управления. |
Это руководство охватывает ключевые аспекты установки ПО в TrueNAS Core и Scale, актуальные для 2026 года. Следуя пошаговым инструкциям и рекомендациям по ресурсам, вы сможете развертывать сервисы быстро, безопасно и с пониманием происходящего.