Содержание статьи
- TrueNAS Scale, TrueNAS Core и openmediavault
- Разработчик
- Базовая ОС и внешний вид
- Установка, настройка и особенности организации хранилища
- Куда устанавливается
- Совместимость и системные требования
- Поддержка файловых систем
- Шифрование данных
- Снапшоты, шифрование и репликация
- Обновления и патчи безопасности
- Стабильность работы
- Производительность
- Виртуализация и расширения
- Подводя итоги
При всем богатстве выбора готовых сетевых хранилищ от крупных производителей энтузиазм желающих собрать и настроить свой собственный 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 постольку‑поскольку, например для импорта данных с отформатированного в такой файловой системе накопителя.
В openmediavault по умолчанию поддерживаются те файловые системы, которые поддерживаются в Debian Linux. По умолчанию для хранения данных будет использована ext4. Полный список поддерживаемых файловых систем.
В число поддерживаемых OMV файловых систем формально входят BTRFS и ZFS, однако не жди от них многого: для управления дисками BTRFS используется командная строка, а для ZFS поддерживаются далеко не все возможности. В частности, ни для одной файловой системы не поддерживаются снапшоты и их репликация. Ты можешь создавать снапшоты вручную из командной строки (в конце концов, OMV работает поверх полноценного дистрибутива Debian) или даже через веб‑интерфейс в качестве Scheduled Tasks, но это все равно будет сложнее, чем готовое решение. Так что, если тебе нужны возможности файловой системы, связанные с созданием и репликацией снапшотов, смотри в сторону TrueNAS.
ШИФРОВАНИЕ ДАННЫХ
В openmediavault встроенного шифрования нет, но есть плагин openmediavault-luksencryption.
В TrueNAS поддерживается сразу несколько стандартов шифрования.
Во‑первых, это SED (Self Encrypting Drive), аппаратное шифрование, доступное в некоторых моделях дисков. Подробно описано здесь.
Во‑вторых, это шифрование GELI, принятое за стандарт в FreeBSD. В TrueNAS 12 (обоих видов) этот тип шифрования заменен на другой, но ранее созданные зашифрованные тома по‑прежнему монтируются и работают.
Наконец, новый стандарт шифрования в TrueNAS — Native ZFS encryption, подробно описанный в статье Ars Technica A quick-start guide to OpenZFS native encryption.
Если не вдаваться в технические подробности (а они вполне доступны), native ZFS encryption обладает целым рядом преимуществ по сравнению как с LUKS, так и с GELI, позволяя выполнять большинство, если не все команды zfs и zpool на зашифрованных дисках, даже если ключ шифрования не указан или неизвестен. Сюда входят сервисные операции по верификации целостности данных, моментальные снимки (снапшоты) и их репликация (о том, что это такое и зачем нужно, я писал здесь), и многие другие команды. Если же диск зашифрован LUKS, то для выполнения подобных операций потребуется сначала ввести ключ шифрования.
У этого вида шифрования есть и свои отрицательные стороны, причем именно в области безопасности. Во‑первых, без ввода ключа шифрования будут доступны имена и размеры файловых систем (и другие данные, доступные с помощью команд zfs и zpool). Впрочем, имена и размеры зашифрованных файлов видны не будут, равно как и прочие метаданные, которые нельзя получить с помощью команд zfs и zpool.
Еще один тип данных, который не защищен native ZFS encryption, — таблицы дедупликации. Точнее, отдельные блоки данных по‑прежнему зашифрованы, но анализ таблиц дедупликации может показать, какие именно блоки на диске дублируются. Ценность этой информации для злоумышленника сомнительна, поэтому данный аспект native ZFS encryption не считается критическим с точки зрения безопасности. Тем не менее в случае шифрования критически важных данных онлайн‑дедупликацию рекомендуется отключать.
Наконец, существует скорее теоретическая, чем практическая уязвимость CRIME (Compression Ratio Info-leak Made Easy), которая может быть реализована в сценарии, когда данные сжимаются перед тем, как быть зашифрованными.
СНАПШОТЫ, ШИФРОВАНИЕ И РЕПЛИКАЦИЯ
О снимках (снапшотах) и их репликации я подробно писал в статье «NAS на Ryzen. На что способен Synology DS1621+ и зачем ему мощный процессор». В двух словах, снапшоты — это практически идеальный способ резервного копирования, позволяющий как защитить данные от разнообразных шифровальщиков, так и реплицировать только изменившиеся данные (даже если данные зашифрованы, а ключ шифрования не введен). Более того, массовые переименования файлов или папок приведут к синхронизации только узлов файловой системы; к примеру, rsync начнет удалять и копировать переименованные файлы.
ZFS поддерживает снапшоты, а TrueNAS предоставляет удобный механизм для их создания и репликации.
В openmediavault снапшоты на уровне веб‑интерфейса не поддерживаются. Ты можешь создавать их вручную из командной строки или использовать для этого раздел веб‑интерфейса Scheduled Tasks. С репликацией сложнее. Если же ты зашифровал данные плагином LUKS, то для создания снапшота тебе придется смонтировать зашифрованный раздел. В любом случае, если тебе нужны снапшоты и репликация, рекомендую смотреть в сторону TrueNAS. А вот если резервные копии планируется хранить на внешних дисках с USB, то openmediavault предлагает встроенное управление такими резервными копиями — а TrueNAS нет.
Кстати, rsync в TrueNAS тоже есть.
ОБНОВЛЕНИЯ И ПАТЧИ БЕЗОПАСНОСТИ
Зачем нужны и почему важны регулярные обновления NAS? Хотя бы для того, чтобы не повторилась ситуация с WD MyBook Live, с которых злоумышленники массово удаляли данные. Известны и другие случаи — например, многочисленные уязвимости QNAP.
Обновлениями TrueNAS занимается производитель, компания iXSystems. Обновления системные (монолитные), выходят достаточно регулярно; есть штатная поддержка крупных обновлений (например, переход с FreeNAS 11 на TrueNAS Core 12).
Переход с TrueNAS Core на TrueNAS Scale возможен; при этом сохраняются данные, но теряются настройки системы. С переходом в обратную сторону могут возникнуть сложности. На тот момент, когда я тестировал эту возможность, в TrueNAS Scale использовалась более свежая версия OpenZFS. После обновления версии метаданных ZFS (делать это было необязательно) использовать тот же dataset в TrueNAS Core уже не удалось. Так что, если захочешь попробовать TrueNAS Scale с возможностью откатиться на TrueNAS Core, просто не обновляй метаданные ZFS.
Обновлением openmediavault занимается… много кто. Обновления собственно OMV поставляет разработчик. А вот обновления пакетов Debian, под управлением которого работает система, модульные и ведутся силами сообщества разработчиков: если в каком‑то пакете будет обнаружена уязвимость, то с большой вероятностью ее устранят до того, как руки злоумышленников дотянутся до твоего устройства.
При этом версия Debian обновляться не будет: OMV 4.x может работать только на Debian 9, а OMV 5.x — только на Debian 10. Впрочем, с точки зрения безопасности большой разницы нет: и Debian 9, и тем более Debian 10 будут получать модульные обновления еще очень долго. Кстати, для установки (или при обновлении) некоторых пакетов может потребоваться установить более свежие сборки зависимостей из альтернативных репозиториев.
Серьезный недостаток OMV — отсутствие штатного способа установки крупных обновлений. Перейти с OMV 4 на OMV 5 штатным образом нельзя (при этом сборки OMV 4 обновляться не будут). Существуют инструкции, составленные пользователями, и они могут сработать или не сработать (у меня не сработали). Соответственно, если ты заинтересован в использовании свежих сборок OMV, то готовься к ежегодной сложной и рискованной работе.
Вот как пользователи описывают свои впечатления от обновления OMV с версии 4 на 5 (оригинал на немецком):
«Основная проблема и самый большой недостаток OMV заключается в том, что он не создает „общий файл конфигурации“, с помощью которого можно просто обновить ОС. Это означает, что с каждым обновлением OMV нужно:
- проверить плагины: проверьте, доступны ли по‑прежнему используемые плагины после обновления (при переходе с v4 на v5 многих плагинов не стало из‑за наличия соответствующих образов Docker);
- сохранить настройки: сделайте скриншоты или сохраните каталог «/etc» Clonezilla или аналогичный образ системного диска (и скопируйте в место, где у вас есть доступ даже без NAS).
А еще лучше — просто возьмите запасной диск и установите на нем новую версию ОС. Диски с данными, RAID и ZFS при таком обновлении обычно распознаются и монтируются автоматическими (внимание: SnapRAID и/или mergerfs автоматически не определяются)!»
Другой недостаток OMV — именно в модульности обновлений. За полгода использования NAS с OMV я дважды сталкивался с тем, что обновление какого‑то пакета сбивало настройки в определенных файлах конфигурации, и устройство начинало работать некорректно.
Отследить, какой именно файл и каким именно образом был изменен, удалось, а вот определить конкретный пакет — не вышло. Что приводит нас к следующему разделу: стабильности работы и сложности поддержки устройства в рабочем состоянии.
СТАБИЛЬНОСТЬ РАБОТЫ
В идеальном мире единожды настроенная система будет работать, не требуя вмешательств. Обновления будут устанавливаться автоматически и никогда не будут приводить к проблемам. К сожалению, реальность весьма далека от идеала: обновления периодически что‑нибудь ломают, да и без них устройство может со временем потребовать, как минимум, профилактического вмешательства.
В этом контексте наименее проблемным показал себя TrueNAS Core. Система давно отлажена, обновления (за возможным исключением крупных, 11–12) не приводят к проблемам. Раз запущенный, компьютер на TrueNAS может работать долгое время, не требуя вмешательства.
TrueNAS Scale — ранняя бета‑версия на новой для разработчиков платформе. Соответственно, стабильной работы никто не обещает (впрочем, заметных проблем пользователи системы не отмечают).
Для поддержания работоспособности NAS с openmediavault может потребоваться периодическое вмешательство квалифицированного администратора. Здесь и упомянутые выше проблемы после обновления некоторых пакетов, и такие простые вещи, как настройки ротации логов по умолчанию, которые могут приводить к переполнению раздела и невозможности доступа к NAS иначе, чем через SSH… Впрочем, последнее актуально, если запускать OMV с небольшого по объему накопителя, а первое… с этим придется жить.
Вывод: если нужна стабильная работа без вмешательства администратора — смотри в сторону TrueNAS Core.
ПРОИЗВОДИТЕЛЬНОСТЬ
Прямым сравнением производительности систем я не занимался, однако могу отметить, что TrueNAS — заметно более «тяжелая» система по сравнению с openmediavault. OMV загружается молниеносно даже на очень слабом железе (время загрузки на WD MyCloud Home — порядка 16 секунд после раскрутки жесткого диска), в то время как TrueNAS загружается заметно дольше даже на мощном железе.
При использовании TrueNAS на скорость чтения‑записи может повлиять множество вещей. К примеру, включение дедупликации в режиме реального времени резко снижает скорость записи данных, а включение сжатия на лету на современных форматах данных скорее вредит, чем приносит пользу. Помочь здесь в состоянии расширение объема оперативной памяти до 16 Гбайт и больше.
OMV — предельно нетребовательная система, работающая на том железе, которое в состоянии запустить Debian.
ВИРТУАЛИЗАЦИЯ И РАСШИРЕНИЯ
Все три системы поддерживают расширения в виде специально написанных для соответствующей системы плагинов. В openmediavault поддерживаются дополнительные репозитории (например, omv-extras).
В TrueNAS также присутствуют плагины — как официальные, так и от сообщества разработчиков.
В каждой системе есть поддержка «легкой» виртуализации. В TrueNAS Core это система jails, а TrueNAS Scale и OMV поддерживают Docker. Последний, пожалуй, более интересен с точки зрения разнообразия доступных образов.
Кроме того, в TrueNAS присутствует полноценная виртуализация в виде виртуальных машин, куда можно установить, например… Windows.
ПОДВОДЯ ИТОГИ
В итоге интерес представляют все три системы. В то же время выбор между ними может быть достаточно прост, основываясь в первую очередь на твоих запросах и имеющемся аппаратном обеспечении.
Хочешь собрать NAS на одноплатном компьютере Raspberry Pi или подобном? Openmediavault. Установить на WD MyCloud Home? Аналогично. Запустить на слабом компьютере с ограниченным объемом памяти? Тоже OMV. Собираешь NAS с единственным диском или используешь внешние диски через USB? Пожалуй, снова OMV.
Собираешься превратить в NAS старый компьютер с 8 Гбайт или большим объемом памяти? TrueNAS будет значительно интереснее: TrueNAS Core, если в приоритете стабильность работы, и TrueNAS Scale, если хочется экспериментов или нужна поддержка Docker.
Нужны шифрование, снапшоты, репликация? TrueNAS, без вариантов.
А что, если все, что тебе нужно, — это хранилище для медиатеки или видеотеки с редким пополнением, но частым доступом? Если в приоритете — надежность хранения данных и тишина, а не скорость? Возможно, тебе подойдет Unraid или SnapRAID, о которых мы поговорим в следующий раз.
Если тебе нужно управление через облако, то — TrueNAS с TrueCommand.