Установка и настройка операционной системы TrueNAS на NAS-сервере

TrueNAS – одна из оптимальных операционных систем для NAS, ранее известная как FreeNAS. Это бесплатная операционная система, которую можно использовать для работы NAS, собранных самостоятельно. Весомое преимущество TrueNAS – возможность работы с современной производительной файловой системой ZFS. Реализует уникальные конфигурации отказоустойчивых RAID-массивов RAID-Z и RAID-Z2. Как установить TrueNAS на хранилище NAS и как настроить систему для базовых потребностей, а так же как подключить NAS на Windows-компьютере расскажем далее.

Системные требования TrueNAS
TrueNAS – это операционная система для собранных самостоятельно NAS хранилищ.
Системные требования для операционной системы TrueNAS:
- 64-разрядный процессор Intel или AMD;
- 8 Гб оперативной памяти;
- отдельный SSD или HDD, как минимум на 16 Гб, для установки операционной системы TrueNAS;
- жесткие диски непосредственно для хранилища.
Для хранилища желательно как минимум 2 HDD, чтобы обеспечить отказоустойчивый RAID 1. И желательно, чтобы диски были одинакового объема, еще лучше – одной модели.
Подключать к NAS можно любой объем дисков. Но не забываем, что в режиме BIOS Legacy видимость каждого из дисков ограничена его максимальным размером 2,2 Тб. Чтобы этого ограничения не было, в BIOS должен быть активен режим UEFI.
Дистрибутив TrueNAS
Дистрибутив TrueNAS поставляется в обычном виде установки ISO. Скачать этот образ можно на официальном сайте операционной системы.
Далее ISO-образ необходимо записать на загрузочную флешку. Для записи существует множество программ и утилит. Одна из них проста и удобна — бесплатная Rufus. При создании загрузочной флешки с TrueNAS не забываем о режиме BIOS – Legacy или UEFI. Флешка должна быть адаптирована к BIOS.
Установка TrueNAS
Подключаем к NAS временно монитор и клавиатуру. Запускаем устройство с флешки установки TrueNAS. Процесс установки примитивен, работает только клавиатура. Выбирать пункты меню и разные варианты необходимо стрелками навигации. Подтверждать выбор, то есть нажать «Ok» – клавишей Enter.
На начальном этапе нажимаем Enter, чтобы запустить первый пункт меню «Boot TrueNAS Installer», то есть установку операционной системы.

Выбираем первый пункт «Install/Upgrade». Enter.

Перед нами появится список жестких дисков устройства. Выбираем выделенный под ОС диск, на котором будет установлена ОС TrueNAS. Отмечаем его клавишей пробела. Enter.

Дальше следует предупреждение о стирании данных на выбранном диске. Выбираем «Yes».

На этапе создания аккаунта администратора NAS необходимо задать пароль. Имя нам дается дефолтное – стандартное для UNIX-систем root. Оно неизменно. Вводим пароль и подтверждаем его.

Выбираем режим BIOS, под которым будет подстроен TrueNAS. «Boot via UEFI» — это UEFI, а «Boot via BI0S» — это Legacy. UEFI лучше, но если NAS создан на базе процессора и материнской платы менее 10 лет. Если больше, возможно, UEFI не поддерживается, и есть только старый BIOS Legacy. В этом случае выбираем, конечно, Legacy. Enter.

Этап создания файла подкачки размером 16 Гб. Жмем «Create swap».

Далее TrueNAS установится.

Необходимо перезапустить устройство. Выбираем пункт «Reboot System». Нажимаем Enter.

Вынимаем загрузочную флешку. После того, как TrueNAS полностью загрузится, увидим внутренний локальный IP-адрес устройства NAS. С помощью этого адреса можно удаленно подключиться к устройству для управления.
Выше можно обратить внимание на пункты сетевых настроек устройства. Но они потребуются в единичных случаях, если NAS не будет виден в сети. В большинстве случаев, когда локальная сеть обеспечивается роутером, все необходимые сетевые настройки NAS получит по умолчанию.

Все, после этого монитор и клавиатура NAS не требуются. Мы переходим к компьютеру для удаленного управления хранилищем.
Настройки TrueNAS
Далее на компьютере необходимо настроить TrueNAS, а соответственно настроить хранилище NAS. Удаленное управление им осуществляется через веб-интерфейс. И нам для этой задачи нужен только браузер. В адресной строчке браузера вводим IP-адрес NAS.
Появится форма удаленного подключения к TrueNAS. Авторизируемся – вводим логин root и тот пароль, который указали при создании аккаунта администратора NAS.

Локализация
По умолчанию, язык операционной системы TrueNAS будет на английский. И первым шагом решим вопрос с локализацией. Можно оставить английский или выбрать другой понятный язык.
В разделе «System → General» выбираем язык. Также есть возможность выбрать формат даты и часовой пояс.

Создание хранилища
Вторым шагом создадим хранилище NAS. В разделе «Хранилище → Пулы» выбираем «Добавить».

Создадим пул дисков. Пункт создания пула установлен по умолчанию. Нажимаем «Создать пул».

Даем название пула. Ставим галочку опции «Show disks with non-unique serial numbers». В блоке отображения дисков слева «Доступные диски» отмечаем галочками диски, которые будут использоваться для хранилища. В нашем случае это 2 одинаковых диска, на базе которых создадим программный отказоустойчивый RAID 1. Далее нажимаем стрелочку вправо.

Она переместит диски в блок справа «VDev данных», то есть в пул. Здесь снова ставим галочки на дисках. И ниже из выпадающего списка выбираем для них тип хранилища, то есть дисковый массив.
TrueNAS предлагает следующие варианты:
- Чередование (Stripe) – это RAID 0, массив без отказоустойчивости, с удвоенной скоростью обработки данных;
- Зеркало (Mirror) – это RAID 1, базовый отказоустойчивый массив с клонированием данных на втором диске;
- RAID-Z – присущий файловой системе ZFS отказоустойчивый массив, усовершенствованный аналог RAID 5;
- RAID-Z2 — присущий файловой системе ZFS отказоустойчивый массив, усовершенствованный аналог RAID 6.
В нашем случае есть только 2 диска, для них доступны массивы либо чередование, либо зеркало. И мы выбираем отказоустойчивое зеркало. Нажимаем «Создать».

Далее система предупредит о том, что все содержимое дисков будет стерто. Подтверждаем решение создать пул и создаем его. Далее увидим созданный пул и RAID в таблице свойств.
Добавление общей папки NAS
Теперь организуем общие ресурсы NAS – общую папку, которая будет доступна на компьютерных и мобильных устройствах локальной сети. В конце таблицы пула есть меню, нажимаем его. Выбираем «Добавить набор данных».

Даем папке название. Тип ресурса указываем SMB. Жмем «Отправить».

Создание пользователя NAS
Учетная запись пользователя NAS позволит подключаться к общей папке (или другим ресурсам в дальнейшем). Заходим в раздел «Учетные записи — Пользователи». Нажимаем «Добавить».

Вносим имя пользователя, пароль и подтверждаем его.

Ниже можно установить вспомогательные группы для этого пользователя. К примеру, ftp. Ставим галочку аккаунта Microsoft, это нужно для Windows. Нажимаем «Отправить».

Такие учетные записи должны быть созданы для каждого пользователя NAS. Чтобы каждый человек мог пользоваться ресурсами хранилища индивидуально со своего компьютера или другого устройства.
Общий доступ к NAS
И последний шаг в рамках базовой настройки TrueNAS – это открытие общего доступа к общей папке для Windows с помощью службы Samba (SMB). Это программное обеспечение для взаимодействия Windows и Unix-систем, ведь TrueNAS базируется на последней. В разделе «Общий доступ → Ресурсы Windows (SMB)» нажмите «Добавить».

Раскрываем путь к общей папке, выбираем ее. Подтверждаем кнопкой «Отправить».

Система запросит включение службы SMB. Нажимаем «Включить службу».

И эта папка появится в числе ресурсов Samba. Настраиваем контроля доступа ACL для этой папки. В ее меню выбираем «Edit Filesystem ACL».

Для пользователя-администратора NAS root даем все права для всех групп (права на чтение и запись данных). Нажимаем «Select an acl preset».

Далее указываем параметр ACL «Open». Нажимаем «Продолжить».

Подключение NAS в Windows
Чтобы работать с NAS в среде Windows, необходимо подключить хранилище. Вводим в адресную строку проводника IP-адрес NAS через двойной слэш.
Авторизуемся с использованием аккаунта пользователя NAS. Можно установить галочку запоминания авторизации. Нажимаем «Ок».
После этого NAS и его общие ресурсы будут доступны нам в блоке проводника «Сеть».
Можно подключить каждую папку NAS как отдельный диск со своей буквой. На объекте «Этот ПК» жмем контекстное меню. Выбираем «Подключить сетевой диск». Но в Windows 11 сначала нужно выбрать «Показать дополнительные параметры».
Выбираем букву диска для NAS. С помощью кнопки обзора указываем путь к папке. Нажимаем «Готово».
После этого папка будет доступна в проводнике как отдельный диск и как сетевое расположение.
Восстановление данных с TrueNAS
Важный нюанс в работе NAS – возможность восстановления удаленных данных. Потерянные из-за ошибочного удаления или выхода из строя дисков хранилища.
Часто задаваемые вопросы
Почему именно TrueNAS?
Это бесплатная специализированная операционная система NAS. Минималистичная и эффективная. С производительной файловой системой ZFS. С современным интерфейсом. Поддерживается и развивается. Есть сообщество поддержки.
Подходит ли мне TrueNAS?
Да, если не проблема, что для работы этой операционной системы нужен отдельный жесткий диск с минимальным объемом. И если аппаратное NAS базируется на процессоре Intel или AMD, а не, например, ARM.
Что нужно для настройки NAS на TrueNAS?
Необходимо скачать образ установки TrueNAS, записать его на флешку, установить систему с флешкой. Затем удаленно подключиться к TrueNAS с компьютера и пошагово настроить ее, как описано в этой статье.
Что необходимо для подключения NAS на базе TrueNAS в среде Windows?
Необходимо ввести в проводник Windows IP-адрес NAS, дописав впереди двойной слэш (\\). И авторизироваться пользователем NAS.
TrueNas: когда Nas реально ТРУ
Как то раз надо было быстро создать iSCSI диск для тестирования Fault Tolerance в ESXi. Быстрый гуглёж показал, что есть такая штука, как FreeNas, которая уже TrueNas. Установил по мануалу. Так и не смог понять, почему при создании пула съедался заметный процент объёма диска, но было не до этого. Тестирование провёл, виртуалки удалил. А через небольшой промежуток времени на работе стало не хватать скорости двух NAS от QNAP (один старый, другой изначально убогий). Вот тогда, глядя на недавно потушеный за ненадобностью Dell R710 с корзиной на 6 sata/sas 3.5” дисков и вспомнили, что есть же какой-то TrueNas, который почему-то хвалят.
По сути это рассказ о том, как от состояния “первый раз услышаю об этом” до внедрения прошло пару месяцев. Поэтому тут будут как технические детали, так и совсем очевидные моменты, с которыми мы столкнулись.
Задача:
Без больших трат, желательно используя то, что уже есть, получить адекватную скорость для хранилища бекапов (SQL, бекапы ESXi машин), сетевых дисков iSCSI и хорошую сетевую папку для ~50 пользователей с настройкой прав доступа на основе AD. В идеале, чтобы когда пользователь работает с поиском через проводник в сетевой папке, скорость не отличалась от поиска на локальном диске.
Что имеем:
Сервер с быстрыми в своё время процессорами, который сейчас оказался не у дел. Продавать его за гроши на барахолке смысла нет, а вот придумать ему разумное применение, почему бы и да!
- CPU 2x Intel Xeon X5650. 6 core up to 3,06 GHz
- RAM 48Gb DDR3 ECC
- SSD 256Gb SATA3 загрузочный, вместо DVD привода
- HDD 6x 3Tb Toshiba P300 SATA3
- RAID controller PERC H700
- Блоки питания 2 по 550W
Сейчас у кого-то начинает дёргаться глаз от этой солянки из серверного и откровенно домашнего железа. В разделе о файловой системе будет объяснение, почему такая конфигурация имеет право на жизнь. Ну и не забываем про задачу использовать то, что есть в наличии.
Что по деньгам:
Если собирать что-то подобное с нуля, то шасси сервера можно найти Б/У начиная от 14000 руб, процессоры с 6 ядрами около 600 рублей за штуку на Али (при этом в Б/У шасси уже часто стоят вполне нормальные CPU на 4-6 ядер). Память тоже на Али по цене около 1000 рублей за 8Gb. Мы много раз докупали память для серверов на Али и пока что брака не встречали. Но чтобы не терять время, всегда берём чуть больше планок, чем нам надо, чтобы в случае брака сразу иметь замену.
HDD мы покупали прям перед волной популярности Chia, когда цены на них ещё не превысили планку адекватности. Покупали диски SATA для QNAP хранилища (наши QNAP не умели в SAS). Но когда на первичную синхронизацию RAID5 массива из 4-х 3Tb дисков ушло больше суток, поняли, что надо искать альтернативу. Поэтому, что было куплено, то и решили использовать в TrueNas. Искать другие новые диски в мае 2021 года было бессмысленно.
Актуально на 4й квартал 2022:
- Шасси: 14000 рублей
- Процессоры: 0-1200 рублей
- RAM: 48Gb DDR3 ECC 6000 рублей
- Диски: 3Tb SATA 7200rpm 6*8000 рублей
- SSD для загрузки: 1500 рублей
Итого 70700 рублей.
В нашем случае докупили RAM и загрузочный SSD примерно на 3000 рублей, что соответствует ТЗ: потратить как можно меньше.
Да, итог в 70 килорублей это поболе, чем воткнуть внешний HDD за 2500р в Keenetic и включить галочку CIFS/SMB в Web интерфейсе. Но давайте посмотрим, что мы получаем.
Сначала минимум теории:
Она же “Zettabyte File System”. Это файловая система, которая работает по принципу Copy-On-Write. Тут повторять статью из Wiki нет смысла, поэтому вот она.
Пул из дисков, отформатированных в ZFS. Цифра после Z означает степень отказоустойчивости. Мы разметили диски в RAIDZ1, поэтому при умирании одного дисков из 6, пул остаётся работоспособным.
Итог применения ZFS №1: почему можно использовать SATA диски
В отличие от SATA, SAS поддерживает проверку контрольных сумм при записи данных, поэтому он является более предпочтительным для использования в корпоративном секторе, где сохранность данных намного важнее, чем дома (общий случай).
Так как ZFS поддерживает контрольные суммы на уровне файловой системы, то можно использовать более дешёвые SATA диски без глобальных проблем с надёжностью (конечно с оглядкой на более низкую скорость полудуплексного SATA и прочих упрощений этого интерфейса относительно SAS).
Коротко: SAS круче, но ZFS позволяет обходиться более дешёвыми SATA дисками.
Итог применения ZFS №2: нужно больше золота больше оперативки
Крайне желательно ECC. Минимумом по системным требованиям является 8Gb, но и на 4Gb стартует, на меньшем объёме не тестировал. Система всегда занимает всю свободную оперативку под кэш ZFS и чем её больше изначально, тем лучше (в пределах разумного).
Итог применения ZFS №3: нужно резервировать место на дисках
Из-за принципа работы, файловой системе всегда нужно свободное место на дисках для манёвра. Поэтому при создании пула резервируются минимум 20% свободного места. И это помимо того, что мы теряем объём одного диска из-за отказоустойчивости RAIDZ1! УЖАС! (на самом деле нет)
Как проводили тесты перед запуском:
Перед внедрением надо было провести тесты, чтобы изучить незнакомую технологию и знать, как она поведёт себя в бою. Особенно если учесть, что раньше мы с этим не работали. И хотя это не единая точка отказа всего бизнеса, и цена данных не такая, чтобы покупать многомилионные СХД, устраивать бета тестирование на пользователях не было желания.
Что мы проверили:
- Выдёргивание дисков из сервера на горячую, во время передачи данных (во время тестирования использовали RAIDZ2, поэтому пул выдерживал выдёргивание двух дисков, по итогу остановились на RAIDZ1 для увеличения доступного места). Этим тестируем физическое умирание дисков (в TrueNas используется термин пул, а не массив, как в случае с RAID).
- Подключение дисков назад в пул и их синхронизация.
- Восстановление конфигурации из бекапа в случае умирания загрузочного SSD.
- Отключение сервера из сети питания на разных этапах работы и загрузки, чтобы проверить и знать на будущее, с чем мы можем столкнуться, если ИБП подведёт.
- Введение и выведение из домена.
- Обновление версии TrueNas. То есть мы специально поставили более старую версию, а потом обновили до актуальной, чтобы не было сюрпризов.
Что получили по итогам тестирования (по пунктам):
- При выдёргивании дисков скорость не просела ни на 1 Mb/s, потому что и так упиралась в сетевой интерфейс (1Gbit/s).
- Подключение дисков назад в пул в нашем случае невозможно без перезапуска сервера. Это особенность RAID контроллера, который не умеет работать с дисками иначе, кроме RAID конфигураций. Поэтому пришлось размечать диски как 6 RAID0 массивов с 1 диском в массиве. Сам TrueNas подключение на горячую поддерживает. После пересоздания RAID0 массива из выдернутого диска, он появляется в системе и начинается синхронизация пула, которая в нашем случае не повлияла на скорость проводившихся тестов (у сервера получился большой запас по мощности). Не так, как хотелось бы, но терпимо. Если умер диск, мы можем дотянуть до ночи и поменять ночью. Если умрёт сразу 2, забираем дополнительные бекапы критических данных с QNAP, которые делаются по rsync, об этом дальше.
- Снесли систему с SSD, установили заново и подали файл конфигурации в нужное меню. Без сюрпризов.
- Никаких проблем с разваливанием пула или чем-то подобным. Выдёргивали питание при загрузке/работе/завершении работы. Проблем не возникло.
- Делается за пару минут. Проблема в том, что после перезагрузки TrueNas получается как бы в домене, а как бы и нет. Приходится выводить его и заводить заново. Починили в версии 12.0 U8 (последняя из 12 версии. Сейчас актуальная 13, но с пометкой “Community Release Only — Not Enterprise Supported.”)
- Ни разу не получали проблем с этим ни при тестировании, ни при обновлении в бою.
Дополнительные функции TrueNas
Виртуальные машины
На TrueNas можно запускать полноценные виртуальные машины. По сути это FreeBSD с оболочкой, так что тут всё не сильно отличается от запуска виртуалок на любом другом linux. Сфера применения в нашем случае сомнительна, так как рядом есть сервера на ESXi. Но если это единственный сервер, или домашний сервер, то можно запустить внутри, например, veeam backup на windows, который будет в привычном интерфейсе забирать бекапы с компов в сети внутрь TrueNas.
Jail контейнеры
Jail в FreeBSD это механизм виртуализации, при котором используется ядро хостовой ОС (аналог OpenVZ). Есть свой репозиторий, в котором куча удобных настроенных Jail’ов (Plex, Transmission, Zabbix Server, OpenVPN Server, и т.д.). Лично мне приглянулся NextCloud. Если совсем упороться, можно поднять свой «Google Photo» с распознованием лиц на фотографии. Но нужна карточка с CUDA.
UPD: как заметил @unC0Rr, CUDA не работает в FreeBSD, так что без дополнительных прослоек распознавать лица не получится именно из jail плагина.
Rsync с TrueNas на QNAP
По расписанию особо важные данные синхронизируются с простеньким QNAP. Из коробки настройка rsync между двумя TrueNas не должна вызвать вопросов, но в нашем случае (rsync TrueNas > QNAP) пришлось пользоваться велосипедом с подсовыванием в аргументах задания txt файла с паролем на учётку для синхронизации. Есть ещё способ с ключами, но нужна адекватная поддержка с принимающей стороны, а QNAP у нас самый простенький (D4 первой ревизии). Если что-то пошло не так, в почту прилетает уведомление.
Приятные бонусы, которые мы получили
Большое сжатие баз SQL
Так как ZFS всегда “пишет вперёд”, это позволяет на лету сжимать данные. Даже при использовании стандартных настроек (lz4 без дедупликации), мы получили замечательные результаты. Бекапы баз 1С (Microsoft SQL) сжимаются более чем в 3,5 раза! То есть те 20%, что резервируются для полноценной работы файловой системы тут же с лихвой отыгрываются при хранении баз данных. Понятно, что это не применимо к уже сжатым данным, например фото, видео, или бекапы Veeam, там выигрыш составляет 0-5%.

Примерный расчёт, сколько места мы получили бы при RAID5 в EXT4 и при RAIDZ1 в ZFS:
RAW space: 6*2,73Tb = 16,38Tb
RAID5: (6-1)*2,73Tb = 13,65Tb
RAIDZ1: (6-1)*2,73Tb — 20% = 10,92Tb
Сейчас у нас занято 6,07Tb с компрессией 2,01, или 12,2Tb без компрессии!
То есть в случае с RAID5 свободно осталось бы 1,45Tb, а в случае RAIDZ1 свободно 4,85Tb (Свободный объём на скриншоте указан без учёта -20%). А при нашем сценарии использования это почти 4,85*2!
Snapshot в ZFS
Создание snapshot происходит мгновенно. Потом мы можем увидеть эти снимки в разделе «предыдущие версии» прямо в проводнике windows, если речь о SMB, или создать новый том из снимка, если это том для iSCSI.
Предыдущие версии на основе снимков в проводнике

Плюсы и минусы
Начну с плюсов
- Это БЫСТРО! Если говорить о SMB, то скорость передачи всегда упирается в сетевой интерфейс, а переназначение прав на папки с тысячами файлов занимает секунды (а не десятки часов(!), привет QNAP’у D4). Поиск по папкам происходит достаточно быстро, чтобы пользователи не замечали разницы между локальной папкой и сетевой, проверено (но понятно, что на системном SSD на рабочих станциях ищет быстрее).
- Это достаточно быстро, чтобы держать тестовые базы 1С на 100+ Gb на iSCSI и не страдать. Да, это медленнее, чем SAS диски на 15000rpm, подключенные напрямую в основных серверах, но для тестов хватает.

- Удобная настройка расписания создания и удаления периодических snapshot. Теперь мы храним множество снимков: от ежедневных вплоть до полугодовых (с разной длительностью хранения).
- 2 блока питания в сервере позволяет подключить его к разным ИБП и свести проблемы с выключением по питанию практически к нулю.
- Это полноценный сервер и мы имеем управление через iDRAC, что даёт ещё больше контроля удалённо.
- Пока что ни один диск не отвалился, но на будущее неожиданным плюсом стало то, что купить запасные диски домашнего сегмента из-за проблем с доставкой в 2022 году оказалось намного реальнее, чем серверные SAS (по крайней мере в наших краях).
Минусы
- Сеть 1Gbit/s. Но можно установить другую сетевую карту, или объединить несколько карточек из 4х для суммирования скорости.
- Для настройки иногда приходится лезть в командную строку, что может быть проблемой для людей не знакомых с linux (да ещё и часть команд отличается от debian-based linux типа Ubuntu).
- Это сервер и он ШУМНЫЙ! У нас он и так был установлен в серверной, но если отдельного помещения нет, то использовать 2U сервер в тихом офисе не лучшая идея.
- QNAP D4 потребляет около 30Вт в работе. Тут же мы имеем среднее потребление порядка 180-200Вт судя по панели сервера при типичной для наших задач нагрузке. Мощность процессоров явно избыточна для простого, пусть и быстрого NAS и можно брать процессоры попроще, или с пониженным потреблением, если нет цели гонять кучу плагинов в Jail или виртуалок.
Итог
Не стоит воспринимать этот кейс пример как единственно правильный. Тут много условностей, которые в другом случае стали бы критичными. Но для себя мы нашли такую конфигурацию, пожалуй, лучшей на данный момент. Если у вас есть интересные случаи применения TrueNas, или советы по улучшению описанной конфигурации, будет интересно почитать.
Не могу не рассказать о великолепном канале о TrueNas: LawrenceSystems. Очень много полезной и просто интересной информации о FreeNas/Truenas
TrueNAS. Его установка и настройка
Статья также доступна на украинском (перейти к просмотру).

Оглавление
- Основные преимущества и применение
- Системные требования
- Установка TrueNAS
- Получение установочного файла
- Выбор и подготовка загрузчика системы
- Предварительные настройки локального устройства
- Запуск процесса инсталляции и его сопровождение
- Формирование сетевой конфигурации системы в режиме реального времени
- Вход в систему
- Настройка хранилища данных
Вопросы надежности сохранения массивов данных в сети, скорость доступа к ним и простота администрирования достаточно актуальны для многих субъектов бизнеса. Особенно они обостряются при увеличении объемов данных и количества пользователей для их совместного использования. И поэтому на смену «традиционным» хранилищам, построенным на базе дорогостоящих и тяжелых в администрировании серверов приходят более легкие, дешевые и удобные в использовании системы хранения данных. Одним из них является сервер TrueNAS, основным предназначением которого является обеспечение обмена и хранения больших массивов данных на более высоком, файловом уровне. Рассмотрим главные принципы использования TrueNAS на практике.
Основные преимущества и применение
TrueNAS (Network Attached Storage) является инструментом организации хранилища массивов данных, подключаемого к сети, как правило, локальной. Система построена на базе облегченной версии операционной системы FreeBSD и способна обеспечить обмен данными с помощью многих высокоуровневых протоколов – SMB, NFS, AFP и других.
В отличие от своего ближайшего «конкурента» – системы SAN (Storage Area Network), обеспечивающей работу с данными на уровне дисковых единиц хранения данных, TrueNAS «работает» на файловом уровне, что увеличивает качество работы с данными по многим направлениям. В частности, дисковый массив данных любой величины может быть представлен в виде единого логического блока, оптимизирующего работу с данными и повышающего надежность системы.
Одним из существенных преимуществ является возможность масштабирования и простота администрирования, сводимая к удаленному управлению программным инструментарием с помощью обычного веб-интерфейса.
Система может быть использована:
- Как замена традиционных серверов хранения информации;
- В кластерных системах;
- Как online backup для восстановления данных после сбоя;
- Мини-серверы, интегрированные со вспомогательными службами – почтовый сервер, медиа-центр, центр видеонаблюдения и многие другие варианты приложений.
Системные требования
Как и любое программное обеспечение, TrueNAS предъявляет определенный набор минимальных требований к значениям параметров и типам разрешенного аппаратного обеспечения серверного оборудования. Приведем эти требования в Таблице 1.
Таблица 1. Минимальные требования TrueNAS.
Ресурсы Значения Коментарии Процессор (CPU) 64 Bit Память (RAM) 8 GB Рекомендовано 16 GB Диск (Boot Drive) 16 GB Рекомендовано SSD Диск (Attached Disk) 1 шт Порты (Network Port) 1 шт Масивы данных (RAID) 1 — ∞ шт Аппаратная виртуализация не рекомендуется Тип браузера для доступа Edge, Chrome, Firefox Допускается любой из рекомендованных Установка TrueNAS
Процесс развертывания системы условно можно разбить на несколько этапов, каждый из которых предполагает выполнение определенных взаимосвязанных действий. Укажем эти этапы:
- Получение установочного файла;
- Выбор и подготовка загрузчика системы;
- Предварительные настройки локального устройства;
- Запуск и сопровождение процесса инсталляции;
- Формирование сетевой конфигурации системы в режиме реального времени.
Получение установочного файла
Файл программы в формате ISO можно получить на официальном сайте ее разработчиков по этому адресом. После регистрации на сайте становится доступной ссылка для его скачивания, как показано ниже (кнопка Download Now).

После сохранения файла с именем TrueNAS-12.0-U7.iso на нашем локальном устройстве переходим к выбору загрузчика.
Выбор и подготовка загрузчика системы
Загрузить полученный файл на локальном устройстве можно двумя путями – с помощью заранее подготовленного носителя – загрузчика или с помощью инструмента IPMI (Intelligent Platform Management Interface), позволяющего управлять загрузкой файла на локальном устройстве.
Выбираем первый путь, где в качестве загрузчика системы будет устройство USB. Для его подготовки и записи файла TrueNAS-12.0-U7.iso воспользуемся одной из известных служебных программ Rufus версии 3.17, как показано на изображении. В открывшемся окне программы выбираем тип устройства, метод загрузки, параметры форматирования и нажимаем кнопку Старт.

Через несколько минут устройство готово к использованию в качестве загрузчика. Но перед этим необходимо выставить некоторые параметры загрузки на нашей машине, выполняющей функции NAS-серверу.
Предварительные настройки локального устройства
Вставим USB-накопитель в один из разъемов нашего устройства и включим питание. Прежде всего, нам нужно войти в BIOS/UEFI материнской платы компьютера, чтобы сформировать необходимую среду для нашего загрузчика. Для этого могут использоваться клавиши Del, F2, F12 или другие в зависимости от типа материнской платы устройства.
После загрузки в BIOS/UEFI нужно выяснить, поддерживается ли параметр SecureBoot, и, если поддерживается, то необходимо установить для него значение «Другая ОС» или вообще отключить, иначе вы не сможете загрузиться.
После этого в меню нужно выбрать USB-накопитель в качестве загрузчика системы. Если же указанное устройство не отображается в списке возможных вариантов загрузки компьютера, то это может быть связано с тем, что выбранный слот не может использоваться для загрузки и поэтому необходимо его изменить, то есть подключить USB-накопитель к другому разъему.
Итак, сохраним внесенные изменения и продолжим процесс загрузки, но уже с нашего USB-накопителя.
Запуск процесса инсталляции и его сопровождение
После продолжения установки на экране появится окно установщика TrueNAS со списком возможных вариантов загрузки программы и действий. С помощью клавиши Enter выберем первый вариант – Boot TrueNAS Installer,


В результате после нескольких экранов с информацией о настройке параметров появится окно со списком возможных действий. Выберите команду Install/Upgrade и нажмем кнопку ОК.

В следующем окне выбираем диск для развертывания программы (ada0) и подтверждаем свой выбор с помощью кнопки ОК.

После этого появится предупреждение об удалении данных из всех разделов выбранного носителя в случае продолжения процесса инсталляции. Кроме того, сообщается, что мы не сможем использовать выбранный носитель для обмена данными. Соглашаемся нажатием кнопки Yes и идём дальше.

Далее нам будет предложено ввести пароль для root юзера системы, что мы и делаем.

На следующем этапе нам будет предложено выбрать режим загрузки ОС TrueNAS, которых может быть два – UEFI или BIOS. Для нашей машины подходит режим BIOS, поэтому выбираем его с помощью щелчка соответствующей кнопки в правой части окна.

После этого в автоматическом режиме запускается сам процесс развертывания системы на диске, что продемонстрировано ниже.


После завершения появляется сообщение об успешном завершении установки программы на диске ada0 и предлагается перезагрузиться и удалить носитель, выполнявший функции загрузчика системы из слота локального устройства.

Удаляем устройство USB и нажимаем ОК. В появившемся окне выбираем команду Reboot System и нажимаем ОК.

После этого процесс перезагрузки системы последовал.
Формирование сетевой конфигурации системы в режиме реального времени
При первой загрузке появляется окно приглашения в TrueNAS и несколько экранов с отображением процесса загрузки системы, как показано ниже.


В конечном счете мы получаем постоянный экран консоли управления со списком команд для настроек конфигураций различных служб системы, в частности, сетевого интерфейса, роутеров, DNS и других. В конце экрана выводится IP-адрес сервера, который в автоматическом режиме формируется службой DHCP для действующего сетевого интерфейса. При необходимости ее можно легко изменить с помощью первой команды из списка консоли управления.

Например, изменим настройки сетевого интерфейса, введя в командной строчке номер соответствующей команды из списка, то есть единицу. Последовательно отвечая на запросы программы, мы, таким образом, будем формировать новую конфигурацию. Пример сформированного интерфейса приведен ниже на двух экранах.


В результате мы получили новый IP-адрес сервера, который в дальнейшем будет использован для удаленного доступа к управлению системой.
Удаленное управление ОС TrueNAS
Система ориентирована на ее использование в качестве надежного хранилища данных в пределах сетей разного уровня – от локальной до глобальной. И, поэтому, актуален вопрос организации удаленного доступа к ней с любой точки сети, к которой подключено устройство с ОС TrueNAS.
Вход в систему
Подключиться к панели инструментов TrueNAS мы можем с помощью веб-интерфейса с использованием протокола http или его защищенного варианта. Для подключения к веб-интерфейсу можно вводить имя хоста и домена, установленные в настройках конфигурации или IP-адрес сервера. По умолчанию, TrueNAS настроен на использование имени хоста и домена truenas.local, то есть именно это имя можно вводить в браузере вместо IP-адреса.
Итак, попытаемся подключиться. Для этого введем в адресной строчке браузера настроенный нами IP-адрес сервера и подтвердим свой выбор. В результате откроется окно входа, как показано ниже.
Для входа нам нужно будет заполнить два поля – имя пользователя и пароль. Именем по умолчанию является администраторское root. Пароль мы создали при установке системы на локальном устройстве. Вводим эти значения и подтверждаем их нижней кнопкой.

В результате попадаем в системную Панель инструментов TrueNAS или Dashboard.

Здесь предоставляется информация о версии программы, использовании компонентов программы и объеме сетевого трафика. В правой части окна, информация о системе и ее настройках разбита на блоки. Например, присутствует блок с общей информацией о системе, блоках для процессора и памяти. Отдельно выделенные сегменты посвящены настроенным пулам данных и интерфейсам.
В левой части главного окна Панели инструментов расположено меню с набором команд для конфигурации системы и ее режимов работы. Так, для того чтобы изменить установленные по умолчанию значения имени хоста и домена, можно воспользоваться командой левого меню: Network >Global Configuration, где и задать нужные значения.

Настройка хранилища данных
Для возможности организации хранилища достаточно иметь на сервере хотя бы один дополнительный дисковый накопитель, кроме системного, то есть, технически это можно реализовать. Однако такой вариант конфигурации не рекомендуется разработчиками, поскольку он не является достаточно надежным. И, поэтому, настроим конфигурацию хранилища для использования двух дисков – один для сохранения данных, а другой для их защиты. Такая конфигурация получила название «зеркальний пул»
Для этого случая требуется наличие у NAS-сервера минимум двух дисков одинаковой емкости.
Создадим пул данных с помощью пул-менеджера программы (Pool Manager). Для этого выберите команду левого меню Storage > Pools (см. изображение выше) и нажмем кнопку ADD. Установим опцию Create a new pool и кликнем по кнопке CREATE POOL.
В открывшемся окне Pool Manager заполним поля необходимыми значениями (см. изображение).

Для поля Name подойдет любое имя. Мы выбираем имя tank.
В разделе со списком доступных дисков (Available Disks) необходимо выбрать два одинаковых диска и с помощью мыши переместить их в область данных Data VDevs. Следует отметить, что если любой из подключенных дисков имеет не уникальный серийный номер, то для того чтобы он отображался в разделе, необходимо включить опцию Show disk with non-unique serial numbers. Выбираем диски ada2 и ada3 с емкостью 2,73 тэбибайта и перемещаем их в область Data VDevs (см. изображение ниже).

Обращаем внимание, что система автоматически предлагает конфигурацию Mirror (зеркальная) в качестве надежной и рекомендуемой. То есть мы не ошиблись с выбором.
После ознакомления с расчетной емкостью для данных в поле Estimated total raw data capacity, кликаем мышью по кнопке CREATE, то есть создаем наш пул. В результате добавленные нами диски очищаются и пул с именем tank автоматически добавляется в список Storage > Pools (см. изображение ниже).

Все пулы, создаваемые Администратором, имеют корневую файловую систему, которая в дальнейшем позволяет создавать на ее базе новые пулы с новыми файловыми системами. Такие новые пулы, по сути, представляют собой виртуальные блочные устройства с заранее заданным объемом хранилища. Они получили название Zvol.
Перед тем как использовать любой вновь пул в качестве хранилища, необходимо подготовить его путем создания новых блоков Zvol. Это бывает необходимым для реализации некоторых функций управления, например для возможности организации совместного использования данных пула пользователями или открытия общего доступа к блочным iSCSI устройствам.
То есть, такие Zvol-блоки сопоставимы с дополнительными плагинами, реализующими ту или иную функцию обмена данными в системе.
К примеру, создадим Zvol на базе нашего пула. Для этого перейдем в раздел Pools со списком пулов с помощью команды Storage > Pools. Сделаем клик мышью по трем точкам в правой части окна и в появившемся меню выбираем команду Add Dataset (см. изображение).

Также можно было использовать команду Add Zvol.
Выводы
Итак, хранилище нами создано и с ним уже можно начинать работу. Но для возможности организации совместного использования данных хранилища необходимо настроить общий доступ к нему. Также важно настроить параметры безопасности под наши потребности и многое другое. Но все это выходит за рамки нашей статьи и, возможно, будет рассмотрено в дальнейших работах.
Если вам нужен сервер для использования TrueNas, дата-центр FREEhost.UA может предложить вам подходящую конфигурацию сервера для аренды. Размещение сервера в дата-центре имеет множество преимуществ по сравнению с размещением сервера в офисе. Основные из них: гарантированное электропитание с резервированием, качественный Интернет с резервированием каналов связи, постоянная температура и влажность, круглосуточная поддержка, гарантия замены оборудования в случае выхода из строя. Посмотреть конфигурации серверов для бекапа Вы можете по ссылке.
Подписывайтесь на наш телеграм-канал https://t.me/freehostua, чтобы быть в курсе новых полезных материалов.
Мы в чем-то ошиблись, или что-то пропустили?
Напишите об этом в комментариях на сайте и в телеграм-канале. Мы с удовольствием ответим и обсудим Ваши замечания и предложения.
TrueNAS, TrueNAS или OMV? Выбираем софт для сетевого хранилища

При всем богатстве выбора готовых сетевых хранилищ от крупных производителей энтузиазм желающих собрать и настроить свой собственный NAS не иссякает. Сегодня, пожалуй, лучшее время для того, чтобы это сделать. От возможностей буквально разбегаются глаза: TrueNAS Core, TrueNAS Scale, openmediavault, а также варианты для специфических сценариев использования Unraid и SnapRAID. Все варианты по‑своему хороши и обладают при этом своими специфическими особенностями. Что из этого подойдет тебе? Попробуем разобраться.
TrueNAS Scale, TrueNAS Core и openmediavault
Еще недавно при настройке нового сетевого хранилища у пользователей самосборных NAS было две основные возможности: FreeNAS и openmediavault. Интересна история этих проектов. FreeNAS был выпущен в 2005 году разработчиком Оливье Кошар‑Лаббе (Olivier Cochard-Labbé), который со временем потерял интерес к проекту. К 2009 году единственным активным разработчиком FreeNAS остался Фолькер Тайле (Volker Theile), предложивший перевести проект на основу Linux вместо использовавшейся на тот момент m0n0wall, основанной, в свою очередь, на embedded FreeBSD. Оливье переводить проект на новые рельсы отказался, и Фолькер покинул FreeNAS, создав новую систему openmediavault на основе Debian Linux. Оливье же передал права на FreeNAS американской компании iXSystems, которая и занимается разработкой и продвижением проекта.
info
Мир тесен: openmediavault разрабатывается и поддерживается бывшим ключевым разработчиком FreeNAS.
Со временем под управлением iXSystems вышла коммерческая версия — TrueNAS. Еще чуть позже ветки бесплатного FreeNAS и коммерческого TrueNAS были объединены, а совсем недавно уже объединенный TrueNAS вновь разделился на два проекта: основанный на FreeBSD TrueNAS Core и TrueNAS Scale, работающий на Debian 11 (Bullseye).
Таким образом, на сегодняшний день выбор стоит между тремя похожими, но очень разными системами: TrueNAS Core, TrueNAS Scale и openmediavault. Для начала приведу таблицу, в которой сравниваются выбранные мной ключевые параметры трех систем.

(* Миграция зашифрованных GELI томов описана в документации)
А теперь — расшифровка таблицы.
Разработчик
Обе системы доступны как в виде готовых дистрибутивов, так и в виде открытого исходного кода. Обе версии TrueNAS разрабатываются и поддерживаются компанией iXSystems, которая зарабатывает на лицензировании коммерческой версии системы (в том числе достаточно крупным компаниям), продаже готовых NAS с предустановленной системой TrueNAS и оказании услуг поддержки и сопровождения.
Openmediavault разрабатывается единственным разработчиком Фолькером Тайле, а поддержка осуществляется через форум. К слову, мне довелось пообщаться с Фолькером; отмечу дружелюбие и профессионализм разработчика, который не получает за работу ни цента.
Базовая ОС и внешний вид
Все три системы являются надстройками над UNIX-подобными системами. TrueNAS Core работает на FreeBSD со всеми ее особенностями (отмечу монолитные обновления и собственный, отличный от Linux стек драйверов), преимуществами и недостатками (наиболее значимы среди них, пожалуй, отсутствие поддержки Docker и несовместимость с некоторыми популярными и недорогими 10-гигабитными сетевыми картами и картами HBA).
TrueNAS Scale, напротив, основана на актуальной версии Debian 11, что позволило добиться как поддержки несовместимых с TrueNAS Core карт расширения, так и контейнеров Docker.
По умолчанию в TrueNAS установлена темная тема интерфейса.

При желании можно переключиться на светлую или создать собственную.

OMV тесно интегрируется с Debian Linux. OMV 4.x работает поверх Debian 9, актуальная OMV 5.x использует Debian 10, а OMV 6 (на сегодня имеет статус тестовой сборки) — Debian 11.
В OMV 4 и 5 доступна единственная светлая тема.

В OMV 6.0 интерфейс был изменен.

Установка, настройка и особенности организации хранилища
Установка всех описанных вариантов довольно проста: достаточно скачать дистрибутив для нужной платформы, создать загрузочный накопитель и загрузиться с него. Однако для openmediavault доступен и альтернативный способ установки — поверх уже настроенной версии Debian (на Debian 9 можно установить OMV 4.x, а на Debian 10 — 5.x).

А вот с созданием многодискового массива у неопытного пользователя TrueNAS могут возникнуть сложности. Если OMV использует стандартный для Linux и всем привычный mdadm для создания и управления RAID, то ZFS в TrueNAS — это не только файловая система, но и низкоуровневый менеджер многодисковых конфигураций. Стандартные уровни RAID в ZFS отсутствуют; вместо них используются функциональные аналоги. Так, аналогом RAID 5 будет RAID-Z1, а аналогом RAID 6 — RAID-Z2. Z1 и Z2 указывают на уровень избыточности и означают количество дисков в массиве, которые могут выйти из строя без потери данных: в массиве RAID-Z1 без потери данных может выйти из строя любой один диск, а в RAID-Z2 — любые два.

Однако на этом сложности только начинаются. Дисковый массив формирует один vdev (virtual device); один или несколько vdev формируют пул (zpool), на котором, в свою очередь, можно создать один или несколько логических разделов (dataset в терминах ZFS). (О топологии ZFS почитать можно, например, здесь.)
В сравнении со стандартным mdadm такая организация сложнее для понимания, однако она обеспечивает отличную гибкость. Так, можно создать пул из трех дисков, сформированных в массив RAID-Z1, а потом расширить его еще тремя дисками, также сформированными в RAID-Z1, причем размеры изначального и добавленного позднее vdev могут не совпадать. Это, безусловно, удобно и создает иллюзию бесконечных возможностей расширения. Увы, именно иллюзию.
На сегодняшний день в TrueNAS не поддерживается расширение объема хранилища на уровне vdev. Ты можешь расширить пул (zpool), добавив к нему еще один vdev, сформированный из любого количества дисков в любой поддерживаемой конфигурации, но расширить доступный объем vdev добавлением еще одного диска в уже существующий vdev или установкой в vdev диски большего объема у тебя не получится. Может быть, через несколько лет эта возможность и появится в TrueNAS, но в скором времени я бы ее не ожидал. Подробно о сложностях расширения vdev — в статье ZFS fans, rejoice — RAIDz expansion will be a thing very soon.
Куда устанавливается
Все три системы требуют для установки отдельный накопитель — жесткий диск или SSD, соглашаясь, впрочем, и на флеш‑накопитель или карту памяти (если ты собираешься использовать флешку или карту памяти для установки OMV — не поленись установить плагин flashmemory из репозитория omv-extras; он перенесет в оперативную память части файловой системы, в которые идут частые операции записи, и будет синхронизировать эти данные при загрузке и выключении устройства). У этого подхода есть как достоинства (диски с данными смогут корректно «засыпать», и система не будет раскручивать их каждый раз, когда ей придет в голову добавить запись в журнал), так и недостатки (все настройки системы пропадут, если выделенный накопитель выйдет из строя, а резервной копии настроек под рукой нет).
Кстати, приложив определенные усилия, OMV можно установить и на тот же диск, на котором будут храниться данные. Так было сделано, например, в сборках для однодисковых NAS WD MyCloud Home. Подводных камней здесь тоже хватает; в первую очередь — трудно добиться качественного «засыпания» такого диска.
Совместимость и системные требования
Здесь все просто: TrueNAS требует процессор с архитектурой Intel и как минимум 8 Гбайт оперативной памяти. Openmediavault, напротив, предельно нетребователен; его можно установить даже на Raspberry Pi. По личному опыту, он отлично (и очень быстро!) работает даже на устройствах ARM с четырьмя ядрами Cortex A53 и 512 Мбайт оперативной памяти. OMV можно установить даже на такие устройства, как WD MyCloud Home (как одно-, так и двухдисковые модели)!
Для чего TrueNAS столько оперативной памяти? Разгадка кроется в возможности дедупликации записываемых данных в реальном времени. Если эта возможность включена, то таблицы дедупликации хранятся в оперативной памяти. ZFS будет считать контрольные суммы записываемых блоков данных, и если найдется совпадение, то блок не будет записан на диск; вместо него добавится указатель. Отмечу, что дедупликация в режиме реального времени работает довольно медленно: скорость записи может упасть в 3–5 раз, если мы говорим о достаточно быстром массиве и 10-гигабитной сети. Впрочем, при гигабитном соединении падение скорости можно и не заметить.
Очень часто можно встретить рекомендацию использовать TrueNAS совместно с памятью с коррекцией ошибок (ECC RAM). Здесь нужно понимать, что это именно рекомендация; TrueNAS будет работать и с обычной памятью, не отличаясь в этом от любых других систем. В то же время ZFS действительно жадная до памяти файловая система, и повреждения данных в RAM вполне могут привести к повреждению данных на дисках, в ряде случаев фатальным. Впрочем, то же самое справедливо и для других систем. Если есть возможность использовать ECC RAM — используй, нет — пользуйся тем, что есть под рукой.
Поддержка файловых систем
TrueNAS в обоих вариантах выделяется полноценной поддержкой всех возможностей ZFS — как собственно файловой системы, так и системы управления дисками. Сюда входит создание всех уровней хранилищ (vdev, zpool, dataset) и управление ими, шифрование, снапшоты и их репликация, а также дедупликация данных в режиме реального времени. Другие файловые системы поддерживаются TrueNAS постольку‑поскольку, например для импорта данных с отформатированного в такой файловой системе накопителя.
Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Вариант 2. Открой один материал
Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.

Олег Афонин
Эксперт по мобильной криминалистике компании «Элкомсофт»