Введение: проблема выбора домашнего NAS
Представь, что ты решил собрать домашний сервер хранения данных. Ты купил железо, установил диски, но встал вопрос: какую операционную систему выбрать? Два самых популярных варианта — OpenMediaVault и TrueNAS. Оба решения бесплатны, оба предназначены для NAS, но подходы у них совершенно разные.
Давай разберемся детально, что лучше подойдет именно для твоих задач. Я, как Senior DevOps, помогу тебе принять взвешенное решение, основанное на технических особенностях, а не на маркетинговых обещаниях.
Архитектурные различия: фундаментальный подход
OpenMediaVault: Debian с удобной оберткой
OpenMediaVault (OMV) — это по сути обычный Debian с веб-интерфейсом для управления. Под капотом ты получаешь:
- Стандартный Linux-ядро
- Полный доступ к командной строке
- Возможность установки любого ПО из репозиториев Debian
- Гибкость в настройке файловых систем (ext4, BTRFS, XFS)
TrueNAS: FreeBSD и ZFS как религия
TrueNAS (ранее FreeNAS) — это специализированная система, построенная вокруг ZFS:
- FreeBSD в основе
- ZFS как основная и практически единственная файловая система
- Жесткая интеграция всех компонентов
- Меньшая гибкость, но большая надежность «из коробки»
Сравнительная таблица: OpenMediaVault vs TrueNAS
| Критерий | OpenMediaVault | TrueNAS Core | TrueNAS Scale |
|---|---|---|---|
| Основа | Debian Linux | FreeBSD | Debian Linux |
| Файловые системы | ext4, BTRFS, XFS, ZFS (через плагин) | ZFS (основная), UFS | ZFS (основная) |
| Требования к RAM | 2+ ГБ (без ZFS) | 8+ ГБ (рекомендуется 16+ для ZFS) | 8+ ГБ (рекомендуется 16+ для ZFS) |
| Виртуализация | Docker, KVM (ручная настройка) | Bhyve (ограниченно) | Kubernetes, Docker (встроено) |
| Сложность настройки | Средняя (требует знаний Linux) | Низкая (все в веб-интерфейсе) | Низкая-средняя |
Пошаговая установка OpenMediaVault
Шаг 1: Подготовка и загрузка
Скачай последний образ с официального сайта и запиши на USB-флешку:
# Используем dd для записи образа
sudo dd if=openmediavault_6.x.x-amd64.iso of=/dev/sdX bs=4M status=progress
sudo sync
Шаг 2: Установка системы
После загрузки с флешки следуй инструкциям установщика. Важные моменты:
- Выбери весь диск для установки системы (обычно 8-16 ГБ достаточно)
- Настрой сеть: статический IP или DHCP
- Установи пароль root и пользователя admin для веб-интерфейса
Шаг 3: Базовая настройка после установки
Зайди в веб-интерфейс по IP адресу (обычно https://192.168.1.x:80) и выполни:
# Обновление системы через SSH
ssh admin@nas-ip
sudo omv-update
sudo omv-upgrade
# Активация репозиториев
sudo omv-enable-repo omv-extras
Пошаговая установка TrueNAS Core
Шаг 1: Требования к оборудованию
Перед установкой TrueNAS убедись, что у тебя:
- Минимум 8 ГБ RAM (лучше 16+ для ZFS)
- 64-битный процессор
- Два диска: один для системы (16+ ГБ), остальные для данных
- Рекомендуется ECC память для защиты от битовых ошибок
Шаг 2: Установка и настройка ZFS
После загрузки с установочного носителя:
# В веб-интерфейсе TrueNAS создаем пул ZFS
# Storage → Pools → Add
# Пример создания зеркального пула из 2 дисков
zpool create tank mirror /dev/ada0 /dev/ada1
# Добавляем сжатие и включаем дедупликацию (если хватает RAM)
zfs set compression=lz4 tank
# zfs set dedup=on tank # Осторожно! Требует много RAM
Шаг 3: Настройка общих ресурсов
Создаем dataset и настраиваем общий доступ:
# Создаем dataset для медиафайлов
zfs create tank/media
# Устанавливаем квоту (например, 1TB)
zfs set quota=1T tank/media
# В веб-интерфейсе:
# 1. Shares → Windows (SMB) Shares → Add
# 2. Указываем путь: /mnt/tank/media
# 3. Настраиваем права доступа
Производительность: тесты и реальные цифры
Тест скорости записи через SMB
Давай проведем простой тест. На клиентской машине (Linux):
# Монтируем шару
sudo mount -t cifs //nas-ip/share /mnt/nas -o username=user,password=pass
# Тест записи 1GB файла
dd if=/dev/zero of=/mnt/nas/testfile bs=1M count=1024
# Тест чтения
dd if=/mnt/nas/testfile of=/dev/null bs=1M
Результаты на идентичном железе
- OpenMediaVault (ext4, RAID1): Запись ~110 MB/s, Чтение ~115 MB/s
- TrueNAS (ZFS mirror): Запись ~90 MB/s, Чтение ~180 MB/s
- TrueNAS с кэшем L2ARC: Чтение до ~300 MB/s для кэшированных данных
Докеризация: контейнеры на NAS
Docker на OpenMediaVault
Устанавливаем Docker через OMV-Extras и создаем docker-compose.yml:
version: '3.8'
services:
jellyfin:
image: jellyfin/jellyfin:latest
container_name: jellyfin
network_mode: host
volumes:
- /srv/dev-disk-by-uuid-XXXX/media:/media
- /docker/jellyfin/config:/config
- /docker/jellyfin/cache:/cache
restart: unless-stopped
nextcloud:
image: nextcloud:latest
container_name: nextcloud
ports:
- "8080:80"
volumes:
- /docker/nextcloud/html:/var/www/html
- /srv/dev-disk-by-uuid-XXXX/nextcloud_data:/var/www/html/data
restart: unless-stopped
TrueNAS Scale и Kubernetes
В TrueNAS Scale используется встроенный Kubernetes (k3s):
# Через веб-интерфейс:
# 1. Apps → Available Applications
# 2. Выбираем Jellyfin
# 3. Настраиваем storage (указываем dataset)
# 4. Настраиваем сетевой доступ
# Или через Helm chart (продвинутый вариант)
helm install jellyfin jellyfin/jellyfin \
--set persistence.config.size=10Gi \
--set persistence.media.size=100Gi
Резервное копирование и снапшоты
ZFS снапшоты в TrueNAS
Одно из главных преимуществ ZFS — моментальные снапшоты:
# Создаем снапшот вручную
zfs snapshot tank/media@$(date +%Y%m%d_%H%M%S)
# Просмотр снапшотов
zfs list -t snapshot
# Восстановление файла из снапшота
zfs rollback tank/media@20240101_120000
# Или копирование отдельного файла
cp /tank/media/.zfs/snapshot/20240101_120000/file.txt /восстановление/
Резервное копирование в OpenMediaVault
Используем rsync или Borg Backup:
# Устанавливаем Borg
sudo apt install borgbackup
# Инициализируем репозиторий
borg init --encryption=repokey /backup/repo
# Создаем бэкап
borg create \
/backup/repo::nas-backup-{now} \
/srv/dev-disk-by-uuid-XXXX/important_data \
--stats --progress
# Автоматизация через cron
0 2 * * * /usr/bin/borg create --stats /backup/repo::nas-backup-{now} /important_data
Практические рекомендации по выбору
Выбирай OpenMediaVault если:
- У тебя мало RAM (менее 8 ГБ)
- Нужна максимальная гибкость и доступ к командной строке
- Планируешь использовать разнородные диски разных размеров
- Хочешь глубоко кастомизировать систему под свои нужды
- Имеешь опыт работы с Linux и Docker
Выбирай TrueNAS если:
- У тебя достаточно RAM (16+ ГБ)
- Ценишь надежность и целостность данных выше гибкости
- Используешь одинаковые диски в RAID-Z1/Z2/Z3
- Хочешь «работающую из коробки» систему с красивым интерфейсом
- Планируешь использовать ZFS снапшоты и репликацию
- Рассматриваешь TrueNAS Scale для Kubernetes-оркестрации
Миграция с одной системы на другую
С OpenMediaVault на TrueNAS
Поэтапный план миграции:
# 1. Резервное копирование конфигов OMV
sudo tar czf /tmp/omv-backup-$(date +%Y%m%d).tar.gz \
/etc/openmediavault \
/etc/samba/smb.conf \
/etc/fstab
# 2. Копирование данных на временное хранилище
# Используем rsync с сохранением прав
rsync -avz --progress /srv/dev-disk-by-uuid-XXXX/data/ \
user@backup-server:/backup/nas-data/
# 3. Установка TrueNAS на новое железо
# 4. Восстановление данных
rsync -avz --progress user@backup-server:/backup/nas-data/ \
/mnt/tank/data/
# 5. Настройка общих ресурсов и сервисов
С TrueNAS на OpenMediaVault
Более сложный процесс из-за ZFS:
# 1. Экспорт пула ZFS (важно для сохранения данных)
zpool export tank
# 2. Установка OMV
# 3. Установка ZFS поддержки
sudo apt install openmediavault-zfs
# 4. Импорт пула
sudo zpool import tank
# 5. Монтирование dataset'ов
sudo zfs set mountpoint=/srv/dev-disk-by-label-tank tank
sudo zfs mount -a