Собрал NAS на TrueNAS: самодельное файловое хранилище на мини-ПК
Собрал домашнее NAS на мини-ПК с TrueNAS: безопасное питание от одного блока, сеть на 5 Гбит/с, тесты скорости и обзор ZFS-пулов и настроек.
Исходная задача и неудачная попытка
В марте 2024 года для проекта был приобретён один из недорогих мини-компьютеров с AliExpress. Процессор — Intel N100.
Изначальная цель заключалась в подключении внешней видеокарты через докстанцию USB-C и проверке игровых сценариев. Выяснилось следующее:
- компьютер имеет единственный порт USB-C, через который подаётся питание;
- монитор, способный получать питание по USB, не выводил изображение через этот кабель;
- DisplayPort через USB в связке с докстанцией не работал;
- контроллер Thunderbolt в бюджетной модели отсутствовал;
- порт USB-C оказался только разъёмом питания без передачи данных.
Подключение внешней видеокарты стало невозможным. Однако тот же мини-компьютер впоследствии был использован как основа файлового хранилища.
Проблемы, из-за которых проект задержался
В октябре вышел из строя диск с исходными материалами, включая свежие несмонтированные записи. За месяц удалось выпустить только два ролика. Часть файлов восстановили из резервных копий, остальные пришлось переснимать.
Этот случай стал причиной вернуться к проекту и завершить его.
Схема питания
Основная сложность проекта заключалась не в корпусе, а в организации питания. Схему питания переделывали три раза.
Расчёт нагрузки
- Шесть дисков при напряжении 5 В требуют суммарно около 6 А.
- Файловое хранилище работает круглосуточно, поэтому требуется запас мощности. Для расчёта выбран источник 5 В и 10 А.
- Штатный адаптер мини-компьютера рассчитан на 12 В и ток 3 А.
Отвергнутые варианты
- Установка штатного адаптера внутри корпуса. Требовалось отдельное место под его плату.
- Два встроенных блока питания для накопителей. От этого варианта отказались. Ввод сети 220 В внутрь компактного корпуса вместе с низковольтной электроникой признан небезопасным. Пробой одного из блоков мог вывести из строя файлы, все шесть дисков и мини-компьютер.
Итоговая схема
Все устройства питаются по одному кабелю от адаптера. Понижающие преобразователи заказаны, но на момент записи ещё не получены. Переделку корпуса решено отложить до получения их размеров.
Временная конфигурация
- Винты подходящего размера для крепления дисков отсутствовали. Их заказали, а до получения использовали имеющиеся.
- Временным источником питания служит адаптер с мощностью, достаточной для всей системы.
- В корпусе предусмотрен 12-вольтовый вентилятор. Его подключили к линии 5 В, поэтому он вращается медленно и почти бесшумно. Такой циркуляции воздуха достаточно для охлаждения дисков.
- При открытой конструкции и без вентилятора температура дисков не превышает 40 °C. Автор относит этот показатель к нормальному рабочему диапазону.
Подключение дисков
Встроенные порты USB не обеспечивают достаточный ток для работы даже четырёх SATA-дисков. При питании 5 В от отдельного источника система запускается и работает стабильно.
Для подключения шести SATA-дисков использован адаптер, который подключается через разъём M.2 к линиям PCI Express и предоставляет шесть портов SATA.
Сетевая конфигурация
Скорость сети
Встроенный сетевой адаптер мини-компьютера работает на скорости 1 Гбит/с. Для файлового хранилища этого недостаточно. Порты USB 3.2 первого поколения обеспечивают передачу до 5 Гбит/с.
Сетевые адаптера на 5 Гбит/с стоят примерно так же, как адаптеры на 2,5 Гбит/с. Для сравнения:
| Параметр | Значение |
|---|---|
| Пропускная способность сетевого адаптера 5 Гбит/с | около 625 МБ/с |
| Скорость самого быстрого диска в хранилище (Samsung 870 EVO, 4 ТБ) | 560 МБ/с |
Пропускная способность адаптера на пике немного выше скорости самого быстрого диска в системе. Это соответствует выбранному балансу между сетью и накопителями.
Закуплено два адаптера 5 Гбит/с:
- первый подключён к файловому хранилищу;
- второй подключён к ноутбуку, на котором выполняется монтаж видео, через USB-хаб.
Сетевой мост
- Встроенный гигабитный порт мини-компьютера получает интернет от роутера.
- Оба сетевых интерфейса файлового хранилища объединяются в сетевой мост (bridge).
- Роутер выдаёт IP-адреса и файловому хранилищу, и устройству с адаптером на 5 Гбит/с.
Все устройства находятся в одной домашней сети. Ноутбук получает доступ к дискам с теоретической скоростью 5 Гбит/с.
Измерение скорости
Для измерения реальной пропускной способности использована утилита iPerf.
- Результат: 3,4 Гбит/с, что соответствует примерно 425 МБ/с при копировании.
- Автор оценивает результат как хороший с учётом того, что порты мини-компьютера относятся к USB 3.2 первого поколения.
- Результат ниже скорости дисков, однако бюджет системы ограничен.
Тест копирования
Тестовый файл размером 11 ГБ скопирован без ускорения.
- Оценка по интерфейсу копирования: меньше минуты.
- По данным таймлайна монтажной программы, файл скопирован за 30 секунд.
Видеоматериалы монтируются напрямую с файлового хранилища, без локального копирования.
Дополнительные устройства
Тестер SATA-дисков
Устройство подключает SATA-диск к компьютеру и отображает данные S.M.A.R.T. Для работы компьютер не требуется: достаточно питания от внешнего аккумулятора.
Отображаемые параметры:
- ёмкость;
- общее время работы;
- количество включений;
- оставшийся ресурс в процентах;
- температура;
- напряжение.
Для проверки актуальности данных диск отключали и подключали заново. Счётчик включений обновлялся: с 202 до 203. Устройство работает с обычными жёсткими дисками, а не только с SSD.
Серверный накопитель U.2 через USB-адаптер
Диск U.2 внешне похож на SATA, но относится к серверному стандарту NVMe. Адаптер с блоком питания и кабелем USB позволяет подключить такой диск к компьютеру по USB.
- Продавец заявляет скорость до 10 Гбит/с по USB.
- Производительность диска через адаптер ограничена. Скорость работы с Windows-компьютером и MacBook оказалась примерно одинаковой.
- Тест на порту 10 Гбит/с показал скорость около 10 Гбит/с, однако скорость чтения оказалась ниже ожидаемой.
На диске хранятся видеоматериалы прошлых лет и большой объём исходников. Их планируется перенести на файловое хранилище.
Операционная система TrueNAS
TrueNAS — операционная система для серверов и сетевых накопителей. Установка выполняется с загрузочной флешки, после чего система предоставляет веб-интерфейс для управления дисками и сетевым доступом.
Раздел Dashboard
Позволяет выбрать параметры системы, отображаемые на главной странице, и изменить их расположение.
Раздел Storage
- Disks — список подключённых накопителей с именами (sda, sdb и т. д.), серийными номерами, объёмом и пулом, к которому относится диск.
- Pools — созданные массивы.
Примеры конфигураций в системе автора:
- Пул 4 ТБ из одного диска без резервирования.
- Зеркальный пул с именем «мир». Название образовано от первых трёх букв английского слова mirror («зеркало»). На нём хранятся исходники. Данные записываются одновременно на два диска. При отказе одного диска система отправляет уведомление по электронной почте. После замены неисправного диска массив восстанавливается автоматически.
Два диска оставлены неразмеченными.
Создание пула
- Задаётся имя пула.
- Выбирается тип пула. Основные варианты — stripe и mirror.
- Stripe аналогичен RAID 0. Данные распределяются по нескольким дискам для повышения скорости, резервирования нет.
- Mirror аналогичен RAID 1. Данные записываются на два диска одновременно для надёжности.
- Раздел Log позволяет подключить дополнительный SSD для ускорения синхронной записи. Структура массива при этом не меняется.
- Раздел Spare позволяет назначить резервный диск. Он автоматически подключается при отказе одного из основных дисков.
Дополнительные функции Log и Spare являются опциональными.
В примере создан один пул из двух дисков в зеркальной конфигурации. После создания TrueNAS форматирует диски в файловую систему ZFS.
Файловая система ZFS
ZFS (Zettabyte File System) разработана для надёжных хранилищ. Она:
- контролирует целостность данных;
- автоматически исправляет ошибки;
- поддерживает моментальные снимки (снапшоты);
- поддерживает репликацию;
- сжимает данные в реальном времени.
Датасеты и общий доступ
После создания пула в нём создаются датасеты. Датасет — логический раздел внутри пула, аналогичный папке. Для каждого датасета можно задать:
- собственные настройки;
- права доступа;
- квоты;
- параметры сжатия;
- параметры резервного копирования.
Датасеты управляются независимо друг от друга.
Общий доступ настраивается в разделе Shares:
- SMB — для Windows;
- NFS — для Linux.
После настройки датасет отображается в сети как обычная сетевая папка.
Остальные разделы
- Data Protection — автоматические снапшоты. Настройка в описании не рассматривалась.
- Network — создание сетевого моста. Выбираются два адаптера, которые объединяются в bridge.
- Credentials — создание пользователей и паролей для доступа к хранилищу.
- Containers (экспериментальный раздел) — аналог Docker. Позволяет запускать контейнеры с приложениями прямо на хранилище без установки дополнительной системы.
- Virtual Machines — запуск и установка полноценных виртуальных машин. Автор использует Home Assistant, Debian и OpenVPN. USB-порт можно передать виртуальной машине. Так Zigbee-адаптер подключён к Home Assistant.
- Apps — установка дополнительных приложений. Автор установил утилиту для загрузки компьютеров по сети с помощью технологии PXE.
Итоги
После отказа диска автор планировал переснимать видео, однако несколько дней изучал TrueNAS. Система оценена как функциональная и подходящая для домашнего хранилища с резервированием данных. Автор рекомендует изучать её самостоятельно.
Неудачная попытка подключить внешнюю видеокарту
Автор пытался подключить внешнюю видеокарту к мини-ПК через USB-C, но порт оказался только разъёмом питания без передачи данных. Это привело к идее использовать компьютер как основу для NAS.
- Мини-ПК с AliExpress на процессоре Intel N100 (Intel Alder Lake-N)
- Цель: подключить внешнюю видеокарту через USB-C докстанцию и тестировать в играх
- USB-C порт передавал только питание, Thunderbolt контроллера не было
- DisplayPort по USB и монитор через этот кабель не заработали
- Порт оказался обычным разъёмом питания в формате USB-C
Идея хранилища и проблемы с питанием
Для хранилища используется SATA-адаптер через M.2 с шестью SATA-портами. Встроенные USB-порты не способны питать четыре и более дисков, поэтому нужно отдельное питание 5 В. Автор также рассказывает о потере диска с исходниками, после которого проект вернулся на первый план.
- SATA-адаптер подключается через M.2 к линиям PCI Express и даёт шесть SATA-портов
- Встроенные USB-порты не выдают достаточно тока даже для четырёх SATA-дисков
- Для питания дисков от отдельного источника 5 В всё работает стабильно
- В октябре вышел из строя диск с исходниками, часть файлов восстановили из копий
- Из-за поломки за месяц вышло только два ролика
Схема питания
Автор переделал схему питания три раза и выбрал вариант с одним USB-C входом 28 В, двумя понижающими преобразователями на 12 В и 5 В (10 А). Это безопаснее, чем заводить 220 В внутрь корпуса.
- Шесть дисков потребляют примерно 6 А при 5 В, поэтому нужен блок 5 В 10 А с запасом
- Компьютер работает от 12 В, штатный адаптер рассчитан на 3 А
- Отказ от встроенных блоков 220 В из-за риска пробоя, который может повредить диски и ПК
- Финальная схема: USB-C с триггером 28 В, преобразователь 28→12 В для ПК, преобразователь 28→5 В на 10 А для дисков
- Все хранилище питается от одного кабеля мощного GaN-адаптера
- Преобразователи уже заказаны, но ещё не пришли, поэтому корпус пока не переделан
Временное питание и охлаждение
Временно используется мощный GaN-адаптер. Вентилятор 12 В подключён к линии 5 В и работает медленно и тихо. Диски нагреваются не выше 40°C, что считается нормальной рабочей температурой.
- Вентилятор на 12 В подключён к 5 В, поэтому вращается медленно и почти не шумит
- Конструкция открыта, без вентилятора диски нагреваются не выше 40°C
- Винты для крепления дисков подходящего размера не нашлись, заказаны новые
Сеть и тесты скорости
Встроенная сеть мини-ПК гигабитная, что ограничивает хранилище. Автор использует порты USB 3.2 Gen 1 (до 5 Гбит/с) и сетевые адаптеры на 5 Гбит/с, а также создаёт сетевой мост. Измеренная скорость составила 3,4 Гбит/с (около 425 МБ/с).
- Встроенная сеть гигабитная, для хранилища этого недостаточно
- USB 3.2 Gen 1 передаёт данные до 5 Гбит/с
- Адаптеры на 5 Гбит/с стоят почти как адаптеры на 2,5 Гбит/с
- 5 Гбит/с примерно равно 625 МБ/с; Samsung 870 EVO 4 ТБ даёт до 560 МБ/с
- Два адаптера: один к хранилищу, второй к ноутбуку через USB-хаб
- Гигабитный порт мини-ПК используется для подключения к роутеру и объединения интерфейсов в сетевой мост (bridge)
- Роутер выдаёт IP-адреса всем устройствам, включая ноутбук на 5 Гбит/с
- Утилита Iperf (Internet performance) показала 3,4 Гбит/с, или 425 МБ/с
Тест копирования в реальном сценарии
Автор копирует видеофайл 11 ГБ и монтирует видео с файлового хранилища по сети. Копирование заняло около 30 секунд, работа с сетевыми исходниками не тормозит.
- Тест: копирование видеофайла 11 ГБ
- Оценочное время сначала было меньше минуты, по факту заняло около 30 секунд
- Видео монтируется напрямую с файлового хранилища по сети без задержек
Об ОС и вспомогательных устройствах
TrueNAS устанавливается как обычная Windows: образ записывается на флешку, система получает веб-интерфейс для управления дисками и доступом по сети. Автор также показывает SATA-адаптер с отображением S.M.A.R.T.-данных без включения компьютера и диск U.2, подключённый через USB-адаптер.
- TrueNAS - специализированная ОС для серверов и сетевых накопителей с веб-интерфейсом
- Установка: запись образа на флешку, запуск установки, готовая система через несколько минут
- SATA-адаптер показывает ёмкость, время работы, число включений, процент износа, температуру и напряжение
- Пример: диск включался 202 раза, после переподключения счётчик стал 203
- Адаптер работает с обычными HDD и SSD
- Диск U.2 (серверный NVMe) подключён через USB-адаптер с блоком питания и кабелем USB
- Продавец обещает 10 Гбит/с по USB, на практике около 10 Гбит/с, но скорость чтения ниже ожидаемой
Обзор веб-интерфейса TrueNAS
Обзор основных разделов веб-интерфейса TrueNAS: Dashboard, Storage, пулы, зеркалирование, типы массивов, ZFS, датасеты, Shares, Network, Credentials, контейнеры, виртуальные машины и Apps.
- Dashboard позволяет выбрать и расположить параметры системы на главной странице
- Storage/Disks показывает имена дисков (sda, sdb), серийные номера, объём и пул
- Пул на 4 ТБ из одного диска без зеркалирования
- Зеркальный пул «мир» хранит исходники: данные пишутся одновременно на два диска
- При отказе диска TrueNAS отправляет уведомление по электронной почте, после замены массив восстанавливается сам
- Для нового пула: страйп (аналог RAID 0) и зеркало (аналог RAID 1); LOG (SLOG) для ускорения синхронной записи, SPARE для горячего резерва - необязательные функции
- Пул форматируется в ZFS: контроль целостности, исправление ошибок, снапшоты, репликация, сжатие в реальном времени
- Датасеты - логические разделы внутри пула с индивидуальными настройками прав, квот, сжатия и резервного копирования
- Shares: открытие доступа по SMB (Windows) или NFS (Linux), после чего папка видна в сети
- Network: создание сетевого моста из двух адаптеров
- Credentials: создание пользователей и паролей для доступа к хранилищу
- Containers (экспериментально): аналог Docker для запуска приложений на TrueNAS
- Виртуальные машины: Home Assistant, Debian, Open VRT; USB-устройство (Zigbee-стик) можно пробросить в виртуалку
- Apps: дополнительные приложения, например утилита загрузки компьютера по сети через PXE
