Представь, что тебе нужно надёжное, масштабируемое и функциональное сетевое хранилище (NAS) для дома, малого офиса или даже для хранения бэкапов серверов. Ручная сборка на Linux — это долго и сложно. Готовое решение от QNAP/Synology — дорого и не так гибко. Идеальный компромисс — TrueNAS (ранее FreeNAS). Это операционная система на базе FreeBSD (или Linux, в случае TrueNAS SCALE) с фокусом на хранении данных, построенная вокруг файловой системы ZFS. Давай разберём, как установить и настроить её с нуля, шаг за шагом.
Шаг 1: Подготовка и установка TrueNAS
Что понадобится для установки
- Аппаратное обеспечение: Компьютер или сервер с 64-битным процессором (x86), минимум 8 ГБ ОЗУ (рекомендуется 16+ ГБ для ZFS), как минимум два диска для зеркалирования (рекомендуется).
- Носитель для установки: Флешка или SSD объёмом от 8 ГБ (TrueNAS устанавливается на отдельный накопитель, НЕ на диски с данными).
- Диски для данных: HDD или SSD, которые будут объединены в пул ZFS.
- Файл образа: Скачай последний стабильный релиз TrueNAS CORE с официального сайта (формат .iso).
Запись образа и начало установки
Запиши скачанный .iso образ на флешку с помощью утилит типа Rufus (Windows), balenaEtcher (кроссплатформенно) или dd (Linux/macOS).
# Пример для Linux/macOS. Будь осторожен, выбери КОРРЕКТНОЕ устройство (sdb, disk2)!
dd if=truenas.iso of=/dev/sdb bs=1M status=progress
- Загрузи компьютер с установочной флешки.
- В меню загрузки выбери "Install/Upgrade".
- Выбери диск для установки самой ОС TrueNAS. Этот диск будет полностью отформатирован. Все данные на нём будут потеряны.
- Задай пароль для пользователя
root. Запомни его — это твой главный ключ к системе. - Выбери схему загрузки (BIOS или UEFI). Для современного железа — UEFI.
- Дождись окончания установки, извлеки флешку и перезагрузись.
Шаг 2: Первичная настройка через Web-интерфейс
После загрузки система покажет IP-адрес, присвоенный через DHCP. Зайди с любого компьютера в той же сети по этому адресу в браузере (например, https://192.168.1.100). Используй логин root и пароль, заданный при установке.
Настройка сети (статический IP)
Для сервера предпочтительнее статический IP. Идём в Network → Interfaces.
- Нажми на существующий интерфейс (например,
igb0). - Сними галочку "DHCP".
- Введи статический IP-адрес, маску подсети, шлюз.
- В разделе "Nameservers" укажи DNS (например, 8.8.8.8 и 1.1.1.1).
- Сохрани. Система предложит применить настройки — подтверди. Соединение с веб-интерфейсом прервётся, зайди по новому адресу.
Создание пула данных (Pool) в ZFS
Пул (Pool) — это основа ZFS, абстракция над физическими дисками. Идём в Storage → Pools и нажимаем "ADD".
- Шаг 1: Создание пула. Назови пул (например,
tankилиdata). - Шаг 2: Добавление дисков (VDEVs). Это самый важный этап. Перетащи диски из списка доступных в секцию "Data VDEVs".
| Тип VDEV (уровень RAID) | Минимум дисков | Отказоустойчивость | Рекомендация |
|---|---|---|---|
| Stripe | 1 | Нет. Гибель одного диска = потеря всех данных. | Только для временных данных. |
| Mirror (Зеркало) | 2 | Высокая. Выживает при отказе одного диска в каждой паре. | Идеально для дома. Простота, скорость, надёжность. |
| RAIDZ1 (аналог RAID 5) | 3 | Один диск на массив. | Баланс места и надёжности. Риск при восстановлении больших дисков. |
| RAIDZ2 (аналог RAID 6) | 4 | Два диска на массив. | Для важных данных. Рекомендуется для массивов >6 дисков. |
3. Выбери тип VDEV. Для примера создадим зеркало из двух дисков: выбери "Mirror" в выпадающем списке и добавь два диска.
4. Настройки пула. Оставь настройки по умолчанию: Compression (lz4 — обязательно!), Checksum. Нажми "CREATE".
lz4. Оно почти не нагружает CPU, но может сэкономить до 30-50% места на текстовых файлах, логах, виртуальных машинах. Это одно из ключевых преимуществ ZFS.
Шаг 3: Создание наборов данных (Datasets) и общих ресурсов (Shares)
Создание Dataset
Dataset — это аналог раздела или папки внутри пула с собственными настройками (квоты, компрессия, права). В пуле нажми "Add Dataset".
- Имя:
media,backups,documents. - Compression:
lz4(наследуется от пула, можно оставить). - Share Type: Выбери
SMBдля доступа из Windows/macOS/Linux илиNFSдля Linux-систем. - Остальное можно оставить по умолчанию. Сохрани.
Настройка общего доступа по SMB (Samba)
- Иди в Sharing → Windows Shares (SMB) → "ADD".
- Выбери созданный Dataset (например,
/mnt/data/media). - Оставь имя ресурса как есть или измени.
- Включи опцию "Enable ACL Preset" и выбери "OPEN" (для простого домашнего использования) или "RESTRICTED".
- Сохрани. Включи службу SMB, если она не запущена.
Теперь в сетевом окружении Windows (или через \\IP-адрес-Truenas) ты увидишь общую папку.
Настройка пользователей и прав (ACL)
Для тонкой настройки прав создай пользователя. Credentials → Local Users → ADD.
# Пример: Создание пользователя через Shell (альтернатива GUI)
# Залогинься по SSH (Services → SSH) или через консоль на самом сервере.
# Добавить пользователя:
adduser
# Имя: alex
# Группа: users (или создай новую)
# Домашний каталог: /mnt/data/homes/alex (опционально)
# Пароль: задай надежный
Чтобы назначить права на Dataset, зайди в его свойства (Storage → Pools → три точки у Dataset → Edit Permissions). Используй вкладку "ACL" для детальной настройки (кто читает, пишет, исполняет).
Шаг 4: Установка плагинов и настройка служб
Установка плагина (например, для резервного копирования)
TrueNAS CORE использует Jail на базе FreeBSD. Идём в Plugins.
- Найди нужный плагин (например, "Syncthing" для синхронизации файлов).
- Нажми "INSTALL".
- Укажи Jail имя и сетевые настройки (лучше оставить DHCP).
- После установки плагин появится в списке. Запусти его и зайди в Web-интерфейс плагина по указанному IP:порту.
Настройка периодических задач (Cron)
Для автоматизации (очистка логов, проверка пула) используй Tasks → Cron Jobs.
# Пример задачи: Запуск скрипта проверки раз в неделю в воскресенье в 3 ночи.
# Command: /path/to/your/script.sh
# Schedule: 0 3 * * 0
# (минута, час, день месяца, месяц, день недели. 0 - воскресенье)
Шаг 5: Мониторинг и обслуживание
- Дашборд: Главный экран показывает состояние пулов, использование ЦП, ОЗУ, сети.
- Отчёты: Reporting — графики нагрузки за время.
- Проверка пула (Scrub): ZFS периодически сам проверяет целостность данных. Расписание можно посмотреть в Storage → Pools → Scrub Tasks. Рекомендуется раз в 1-2 недели.
- Снапшоты (Snapshots): Моментальные снимки данных. Иди в Storage → Snapshots. Можно создавать вручную или настроить периодические задачи (Periodic Snapshot Tasks). Это лучший способ защититься от случайного удаления или ransomware.
# Полезные команды через Shell (SSH или консоль):
# Проверить статус пулов:
zpool status
# Просмотреть список снапшотов для dataset 'media':
zfs list -t snapshot -r data/media
# Создать снапшот вручную:
zfs snapshot data/media@$(date +%Y%m%d_%H%M)
# Откатить dataset к снапшоту (ОПАСНО! Удалит все изменения после снапшота):
zfs rollback data/media@snapshot_name
Часто задаваемые вопросы (FAQ)
TrueNAS или обычный файловый сервер на Linux?
TrueNAS — это готовое, интегрированное решение "всё в одном" с удобным веб-интерфейсом. ZFS из коробки с её снапшотами, самовосстановлением (scrub) и компрессией. Идеально, если нужен NAS без глубокого погружения в администрирование ОС. Кастомный Linux-сервер даёт абсолютную гибкость, но требует больше времени и знаний для настройки ZFS (или другого ПО).
Можно ли расширить пул ZFS после создания?
Да, но с оговорками. Можно добавить новые VDEVs (группы дисков) в существующий пул, что увеличит его ёмкость и, возможно, производительность. Однако нельзя добавить одиночные диски в существующий VDEV типа RAIDZ. Например, чтобы расширить RAIDZ1 из 3 дисков, нужно добавить ещё один VDEV (например, ещё один RAIDZ1 из 3 дисков). Зеркала (Mirror) расширяются проще — добавлением новых пар дисков в пул.
Как организовать резервное копирование с TrueNAS?
Используй встроенные задачи репликации (Tasks → Replication Tasks). Они могут автоматически отправлять снапшоты datasets на другой пул TrueNAS (локальный или удалённый по SSH). Для бэкапа на облако (S3, Backblaze B2) установи плагин "Restic" или "Duplicati" через Community Plugins или создай свой Jail.
Почему система использует так много оперативной памяти?
Это нормально! ZFS использует свободную оперативную память в качестве кэша чтения (ARC) и кэша записи (в определённых настройках). Это резко ускоряет работу с часто используемыми данными. Неиспользуемая память — бесполезная память. Система отдаст её приложениям, если они потребуют.
Заключение
Поздравляю! Ты прошёл пошагово весь ключевой путь от голого железа до работающего сетевого хранилища TrueNAS. Мы разобрали установку, создание отказоустойчивого пула ZFS, настройку общих ресурсов и базовых служб. Главные преимущества, которые ты теперь получил: надёжность данных благодаря ZFS, простота управления через веб-интерфейс и масштабируемость на будущее.
Следующие шаги для углубления: изучение репликации снапшотов для бэкапов, настройка мониторинга через email-уведомления о проблемах с дисками, эксперименты с плагинами (Plex Media Server, Nextcloud). Помни золотое правило: "RAID — это не бэкап". Всегда имей копию критически важных данных на отдельном носителе или в облаке. Удачи в построении твоего надёжного хранилища!