На что можно заменить Synology в условиях санкций. Часть 1: выбираем устойчивую платформу.
После февральских событий 2022 года, компания Synology была одной из первых, кто подала на развод и покинула российский рынок. Конечно, у нас было время, чтобы пройти все стадии от отрицания до принятия, но время идёт, старые NAS-ы ломаются, новых не привозят, и особенно в бизнес-сегменте наметился вопрос: что делать с Synology, которая плотно интегрирована в инфраструктуру?
Вообще, для меня это было очень неприятным событием: я крепко подсел на Synology, и пользовался их продукцией без малого 13 лет. Но, раз любимая решила уйти, то мы не будем слоняться под окнами и вымаливать прощение: мы тоже уйдём, не потому, что она была дурна собой и не умела готовить, а просто так получилось, наш союз не спасти, а жить дальше как-то надо.
TL:DR - либо покупать QNAP, либо брать в руки хороший дистрибутив и настраивать всё самому через виртуалки и контейнеры.
Почему заменить Synology крайне сложно?
Вообще, бизнес компании Synology был построен на разработке операционной системы для NAS, которую она продавала в составе своих программно-аппаратных комплексов, DiskStation, Flashstation и т.д. По этой причине недоброжелатели всегда ругали компанию за необоснованно высокие цены, особенно сравнивая их с ценами на серверные платформы или на самосборные компьютеры.
За две декады Synology проделала путь, который можно сравнить с разработкой Windows или MacOS: огромный набор сервисов и функций с упором на графическую оболочку (WebUI) и простоту. Сисадмину при интеграции и обслуживании Synology никогда не нужно было лезть в командную строку, да и вообще думать: всё предельно просто, интуитивно понятно, не нужно читать никакой документации (к слову, эта документация и подавалась в таком виде, что не нужно её читать), но из коробки у вас есть поддержка High Availability, гипервизор с поддержкой HA, мощная платформа СХД с модифицированной BTRFS, из которой убраны все глюки, контейнеры с прямым доступом к СХД, снэпшоты с репликацией, видеонаблюдение с каскадированием, мощный сервер бэкапов и быстрое разворачивание с лёгким обслуживанием даже за «серым IP» через облако. У Synology даже есть 2-контроллерные NAS и iSCSI SAN решения для тех, кому нужна отказоустойчивость в одной коробке.
Конечно, есть и минусы: Synology так увлеклась допиливанием BTRFS, что упустила такие важные тренды в мире СХД, как объектное хранилище, не внедрила технологии работы с чётностью на уровне файлов (такие как Snapraid и Unraid), прошла мимо блочной виртуализации (как у HP 3PAR и Huawei OceanStor), так и не сделала полноценное облако для совместной работы с файлами, испортила механизм синхронизации данных со смартфонов, рассудив, что все недостающие программные функции можно установить через Docker или в виртуалке, а собственный RAID с BTRFS - это фишка, при наличии которой не стоит искать что-то ещё. И хотя в ранних релизах DSM 6 я нашёл возможность реализовать дедупликацию данных, полноценно эта функция так и не заработала.
Всё это в прошлом: мы говорим вам «До свиданья», а прощания не для NAS.
В поисках Drop-In замены… QNAP, Asustor, Qsan, Terramaster, Seagate
Если стоит цель просто поменять коробку с логотипом Synology на аналогичную, но под другим брендом, у меня для вас хорошие и плохие новости. Начнём с хороших: из всего спектра бизнес NAS-ов, максимально релевантный к Synology - это QNAP. Эти ребята шли с Synology ноздря в ноздрю, немного начали уступать по качеству софта в 2017-2020 годах, но потом резко подтянулись, исправили недочёты, и сегодня QNAP можно рассматривать и как Drop-In замену, и как равную альтернативу.
Здесь есть контейнерная и аппаратная виртуализация, есть встроенные инструменты для создания мгновенных снимков, есть даже отдельный форк ОС с поддержкой ZFS. Всё упаковано в такой же удобный WebUI, не требующий доступа к командной строке. Софт прекрасен, он развивается, он улучшается и допиливается, плюс, у QNAP есть RAID 50/60, многослойное хранение (Tiering), да и с точки зрения аппаратной части, компания QNAP может предложить больший спектр устройств для высоких нагрузок с масштабированием.
Плохие новости в том, что QNAP в любой момент может точно также «подать на развод», помахать ручкой вслед и покинуть наш рынок. И пусть мы верим в хорошее, но готовиться будем к худшему, к тому же в условиях ограничений никто не скажет, будут ли завтра в наличии запчасти, и сколько их придётся ждать.
Такие компании, как Asustor, Qsan, Terramaster присутствуют в продаже эпизодически, они в технологическом плане безнадёжно отстали от Synology и QNAP, и если для хранения бэкапов и файлообмена в видеостудии их ещё можно устанавливать, то как только вы начнёте предъявлять какие-то требования к слою хранения данных или файлообмену, вы поймёте, что на временной ленте вы застряли где-то в 2008-2009 годах, и пытаться приспособить устройство в современные процессы у вас не выходит.
И чтобы не перестраивать по 10 раз инфраструктуру, не бегать за контрабандистами и не искать, какую коробочку заменить взамен недоступной, единственным правильным выбором будут покупка нейтрального сервера и установка и настройка свободного ПО. В перспективе этот шаг защитит вас и на случай проблем с x86 архитектурой (подробно вопрос диверсификации процессора рассмотрен в этой статье), и в общем-то, купить обычный сервер всегда проще: тут вам и огромный рынок б.у., и десятки разных производителей: есть место для манёвра. В условиях, когда поставки запчастей нестабильны, я рекомендую по возможности выбирать сервер формата Tower или 4U/5U под стандартный ATX блок питания и с материнской платой стандартного формата ATX/E-ATX/MicroATX. Никакой проприетарщины: из б.у. моделей выбираем HPE Proliant (в крайнем случае - Dell), потому что их много, и на них всегда найдутся запчасти (читаем наше руководство по покупке б.у. серверов), из нового - Supermicro или сборку от местных вендоров. Даже отказ от SAS HDD в пользу SATA значительно облегчит поиск запчастей в дальнейшем.
Выбираем операционную платформу для будущей СХД
Итак, задача поставлена: максимально заместить Synology с помощью свободно распространяемого ПО с открытым исходным кодом, на выходе получить сервер с COW-файловой системой, оптимизированный для хранения больших данных и архивов, с контейнерной и аппаратной виртуализацией, с WebUI, наконец с торрентами и удобным файловым менеджером. Поехали.
Вариант 1. Поставить пиратку Synology
Чего греха таить, это кажется самым простым вариантом: в интернете вы легко найдёте пиратку Synology DSM и инструкции по её установке (гуглить по слову Xpenology). И раз уж любимая нас кинула, у нас есть все моральные основания поступить с ней точно так же. Но делать этого не надо по следующей причине.
Пиратка была хорошая на версии DSM 6.x - она стабильно работала годами (если её не обновлять), легко вставала как на чистое железо, так и в виртуалке под VMware ESX (в том числе тоже на пиратке) или Proxmox VE. Но время шло, и с переходом на DSM 7.1 эта идиллия рухнула.
- Во-первых, с ходу пиратка имеет проблемы с процессорами AMD: вы не получите аппаратную виртуализацию или поддержку декодирования видео на лету.
- Во-вторых, DSM 7.1 имеет более сложную нумерацию дисков, чем DSM 6, поэтому пиратка не работает с более чем 16 дисками, да и при их замене или подключении к другому контроллеру, может уйти в цикличный ребут и не вернуться.
- В-третьих, начиная с DSM 7, пользователи пиратки начали встречать ошибки контрольной суммы в BTRFS томах. Честно сказать, даже на форуме Synology владельцы лицензионных устройств обращали на это внимание, но с несоответствием контрольных сумм в DSM 7, установленной через пиратский загрузчик в виртуалку, я встречался сам, и приходилось восстанавливать файлы из бэкапа, что было неприятно. И это на серверном железе с проверенной ECC памятью и с дисками серверного класса.
- В-четвёртых, доступные сегодня пиратские версии DSM ограничены по числу ядер CPU и объёму RAM, то есть полноценного использования как с Windows 10 не получится.
Если пиратка Synology в своё время была успешна до такой степени, что сисадмины в сегменте SMB устанавливали её на серверы Supermicro и безбоязненно выводили в production, то с переходом на DSM 7.1 уже нет того ощущения всеядности и монолитности, нет уверенности в сохранности данных, нет нормальной работы с NVME. Проще говоря, овчинка выделки не стоит, тем более, что и сторонний-то софт все эти годы на месте не стоял.
Вариант 2. TrueNAS (ex-FreeNAS) Core или Scale
Чаще всего, когда мы говорим о бесплатном софте для СХД, мы вспоминаем продукт Truenas (бывший FreeNAS). Это хранилище с одной-единственной файловой системой ZFS, имеющее две ветки: Truenas Core - на базе FreeBSD и Truenas Scale - на базе Debian Linux. Начиная с версии 11, TrueNAS обзавёлся более-менее современным HTML5 интерфейсом, а версия под Linux получила контейнерную виртуализацию.
Я использую Truenas более 5 лет, и много раз пытался выстроить программный стек на его основе, но каждый раз натыкался на совершенно дикие проблемы, и в ужасе бросал эту затею. Позвольте пояснить.
Truenas core - это FreeBSD, под который никто никогда никакого софта не пишет. За десятилетия своего существования Truenas Core не вырос ни во что кроме хранилки, и даже такие тривиальные вещи, как снэпшот, репликация или резервирование, здесь реализованы неудобно, неинформативно и нелогично. Аппаратная виртуализация Bhyve не жизнеспособна, контейнеров Linux ни в каком виде здесь нет. Truenas Core можно использовать только как хранилку для файлообмена, в идеале - запустив её в виртуальной машине с пробросом HBA-контроллера внутрь.
Truenas Scale должна была исправить ситуацию, ведь под Debian Linux существует весь мир свободного ПО, плюс годами отточенная виртуализация и очень стабильное ядро. Но, разработчики сделали ставку на то, чтобы в Truenas Scale можно было поставлять их собственные плагины, представляющие собой docker-контейнеры, оптимизированные для данного релиза. В итоге всё пошло не так: нормального репозитория с софтом они сделать так и не смогли: truecharts (именно так он называется) временами вообще недоступен, часть программ не устанавливается вовсе. Ситуацию мог бы изменить хороший Docker, но разработчики замахнулись на Kubernetes, реализовав родную поддержку k3s, но меня не покидает ощущение, что они пошли пить пиво где-то в середине этого процесса. В итоге нет Docker-а, а это значит нет лёгкости установки сторонних сервисов, аппаратная виртуализация находится примерно на том же уровне, что и контейнерная, интерфейс - неинформативный и запутанный. По итогу, Truenas Scale - это ровно тот же слой СХД, что и Truenas Core, чуть более медленный из-за ZFS on Linux, без каких-то инноваций, которые могла бы предоставить операционная система Debian.
Функция High Availability реализована через сторонний сервис TrueCommand, что немного неудобно. Правда, по сравнению с другим софтом, здесь надо сказать спасибо за то, что отказоустойчивость вообще реализована, и к чести разработчиков, следует заметить, что поддерживаются несколько алгоритмов HA.
Можно установить Truenas core/scale в виртуалку, чтобы получить ZFS массив в сервере, а все сервисы и программную обвязку отдать сторонним виртуалкам. В этом случае возникнет проблема в том, что у вас не будет прямого доступа из ВМ и контейнеров к ZFS датасетам, вы не сможете построить на одном HBA разные слои хранения: RAID, ZFS, архивный слой, и не сможете нормально распоряжаться NVME слоем. Конечно, всё это в той или иной степени можно реализовать через проброску дисков с использованием RDM/Disk Passthrough, оставив HBA контроллер на откуп гипервизору, но всё это имеет смысл лишь в том случае, если Truenas даёт вам какие-то крайне нужные особые функции, например что-то такое в ZFS, чего нет в других дистрибутивах с поддержкой ZFS. Управляться с ZFS можно даже на Ubuntu, уставновив в качестве интерфейса Project Cockpit или Webmin.
Я считаю Truenas полумёртвым проектом, который рано или поздно уйдёт со сцены, вытесняясь другими, более динамично развивающимися платформами. Как хранилка с поддержкой SMB/NFS/iSCSI этот дистрибутив подойдёт, но не более того.
Вариант 3. Openmediavault (OMV)
OMV изначально рассматривался как альтернатива Freenas, построенная опять же на Debian Linux, не зацикленная на одной файловой системе ZFS, чуть более дружелюбная для домашних и SOHO пользователей. Чем приятна OMV - это плагинами: здесь есть поддержка Snapraid, и если вы используете RAID-контроллер, способный одновременно отдавать операционной системе логические диски (RAID-массивы) и сами диски (Raw-накопители), то вы легко настроите любые конфигурации хранения: RAID на XFS для быстрого доступа к большим объёмам данных, программный RAID на ZFS, BTRFS или EXT4 для NVME накопителей, Snapraid для медиатеки и больших архивов, - всё это ну в более-менее живом web-интерфейсе, пусть и старом, как динозавр, но более-менее рабочем.
Проблема OMV в том, что почти всё, что выходит за рамки «скачать фильм и раздать по сети», здесь делается через командную строку или через сторонние сервисы. То есть, если вы хотите запустить Openmediavault в production и получить ту же свободу действий, как в Synology, вам предстоит долго и нудно его допиливать, устанавливать сторонний софт на сам сервер, пользоваться сторонними оболочками для виртуализации и контейнеров, и в итоге, вы поймёте, что саму оболочку OMV вы-то и не используете, всё чаще прибегая к CLI и другим наработкам.
OMV мне запомнился тем, что это был первый дистрибутив, установив который, без доп.настроек и лишних пакетов, он начинал сыпать ошибками веб-интерфейса, так было в 2017 году… прошло 5 лет и…
Есть мнение, что OMV надо устанавливать поверх Proxmox VE для организации всего, что связано с общим доступом и хранением файлов, но это чушь, потому что самая простая задача отработки отказа на OMV (создание программного RAID с последующим отключением диска) приводит к тому, что либо у тебя ОС не загрузится, либо ты не сможешь создать RAID заново. В общем, все те грабли, на которые наступали программисты Synology, QNAP, Thecus и даже Truenas, разработчики OMV обошли стороной, и вообще не в курсе, как должна работать надёжная машина.
Я слышал, что OMV ставят на роутеры для управления торрентами, и думаю, что вот там ей и самое место. Я не рекомендую использовать её на дисковых устройствах никогда, ни при каких условиях, ни в каком состоянии.
Вариант 4. Unraid
Unraid - это первый и единственный проект операционной системы для NAS, который рассчитан на запуск сторонних приложений через Docker. Сразу скажу, что Unraid - коммерческий проект, но цена даже за самую топовую лицензию чисто символическая - меньше 150$. Вообще, я люблю коммерческие Linux-проекты, и считаю, что вдоволь наму…хавшись с OpenSource, ты в принципе лучше заплати, но получи вещь. К сожалению, это не про Unraid.
Unraid интересен всем: во-первых, своей технологией массива, в котором чётность рассчитывается не для блоков, а для файлов. Что это значит? То, что массив строится поверх файловых систем жёстких дисков, отформатированных в XFS, BTRFS или EXT4, и каждый диск сам по себе доступен как в составе, так и без массива: на него можно зайти и считать с него файлы. Можно выключить сервер, достать из него HDD, подключить к компьютеру и слить с него данные - они будут читаться.
Даже если всё рухнет, и из 20 жёстких дисков умрут 19, на 20-м останутся файлы, и это по-настоящему супер-технология для больших архивов, для медиатеки и «big data». Вы можете добавить до 2 дисков хранения чётности, и тогда сможете восстановить данные при поломке любых 2 накопителей в массиве. То есть, например, было у вас 20 дисков, 2 выделили под чётность, а из 18 заполненных умерли 2 HDD. Так вот в этот момент вся информация на работающих 16 дисках вам осталась доступна, вместо двух сдохших вы устанавливаете пару новых и восстанавливаете информацию с умерших накопителей уже на них. При использовании жёстких дисков объёмом более 16 Тб, для «холодных» данных это очень и очень полезная технология. Кстати, в массив можно объединять разнородные диски: SAS, SATA, SSD, HDD разного объёма, но под хранения чётности нужно непременно выбирать HDD самого большого объёма из всех доступных.
Поверх массива можно поставить SSD-кэш, объединив один или несколько SSD в LVM-пул. Можно сделать ещё и отдельный LVM пул для быстрого доступа из приложений, а можно поставить плагин для поддержки ZFS, получив LARC, дедупликацию, сжатие, снэпшоты и прочие прелести ZFS.
У Unraid бездонный репозиторий бесплатных программ, упакованных в Docker, с предустановками под данную платформу. Для развёртывания программных стеков есть поддержка Docker Compose, для виртуалок - QEMU KVM с возможностью проброса PCI Express устройств внутрь ВМ. Всё в этом плане сделано максимально удобно и комфортно для установки даже неподготовленным пользователем.
Интерфейс Unraid дружественный настолько, что вы даже можете выбрать иконку-схему своего сервера, а можете с помощью отдельного плагина создать план расположения дисков в корзине, чтобы легко найти, какой у вас вылетел. В целом, Unraid рекомендуют известные блоггеры, которые любят запускать на нём игровую станцию в виртуалке с пробросом видеокарты, и играть удалённо через KVM-удлинитель. Это, по их мнению, показатель крутизны платформы и готовности её к любым передрягам.
Казалось бы, вот оно, счастье, всего-то меньше чем за 150$, но нет. Unraid имеет несколько фундаментальных проблем, которые здесь не решаются годами, и вряд ли когда-либо будут решены.
Во-первых, в том что касается слоя хранения данных, Unraid работает не в реальном времени, а по запланированным скриптам. То есть, в момент когда вы пишете данные на его массив, чётность для файлов не рассчитывается, и они остаются беззащитными. Вылетит диск сразу после записи - и прощайте несинхронизированные файлы. А всё потому, что расчёты чётности для файлов довольно-таки ресурсоёмкие, и запускаются по расписанию, в ночное время, и с лёгкостью выжирают и 16 и 24 ядер серверного CPU. Вообще, даже в таких простых задачах, как копирование файла по SMB на диск, Unraid потребляет больше процессорных ресурсов, чем TrueNAS с включённой дедупликацией, поэтому вопрос скорости работы ОС здесь решается установкой более мощного CPU.
Во-вторых, SSD кэш здесь точно также работает по расписанию: по умолчанию все данные на массив пишутся в SSD пул, а потом ночью переносятся уже на магнитные диски, и если в какой-то момент при записи место на кеширующих SSD закончится, у вас вылетит ошибка «out of space». Подключиться к диску напрямую, минуя слой массива, то есть в обход настроенного SSD кэша, как в случае со Snapraid, здесь нельзя.
В-третьих, сам Unraid-массив имеет два состояния: включено и отключено, что для СХД вообще как бы нонсенс. Я как бы впервые за 16 лет упорного тестирования СХД встретил устройство, где можно приостановить сервис хранения данных, а здесь соответствующая кнопка вынесена на главный экран, и ей придётся постоянно пользоваться. А всё потому, что есть разные настройки, которые производятся только при отключенном массиве, и даже добавить диск в ZFS или LVM пул, которые не входят в основной массив, можно только когда он отключен. А в этом режиме у вас автоматически останавливается гипервизор и Docker, и все ваши приложения, которые были запущены на машине, превращаются в «тыкву». Если у вас был PFSense в виртуалке - поздравляю, вы остались без интернета. Это особенно цинично, если вы траблшутите какую-то проблему с массивом: самое время в такие моменты остаться без интернета. С виртуалками тут тоже всё на уровне «поиграться»: отсутствуют снэпшоты, ни о какой репликации и речи быть не может.
Сам Unraid запускается с USB флешки, и привязывает свою лицензию к её ID. При этом, постоянно происходят запросы на чтение с USB накопителя, и эта проблема не решается. Сдохла флешка - вас ждёт процесс восстановления лицензии. Отвалилась флешка во время работы сервера (USB накопители любят так делать) - качайте плагин для автоматического примонтирования её обратно. Правда, есть и хорошая сторона такого решения: как бы я ни мучил Unraid, я не смог добить его настолько, чтобы он не загружался. Массив не поднимался - было, и ни раз, сервисы не стартовали - было, но запускалась машина всегда.
Ну и самое неприятное, что технология, вокруг которой строится Unraid, а именно его дисковый массив - не стабильна. Если какой-то клиент не закрыл какой-то файл на сервере, то массив не отключится, а сервер не перегрузится. При вылете жёстких дисков или при замене их новыми, есть далеко не нулевой шанс, что массив просто не поднимется. Ваши данные останутся целыми, но доступ к ним получить уже будет непросто. Бывает состояние, когда массив вроде и поднялся, а вроде и нет: переконфигурировать его нельзя, ничего сделать с ним нельзя - лезь на форум техподдержки и ищи команду по остановке его через curl.. ах да, у вас же в этот момент нет интернета, ведь вы использовали программный шлюз для выхода в интернет…
Какие-то базовые вещи типа шифрования папок, здесь отсутствуют как класс, с настройками ACL беда. Встроенные плагины для ОС (не путать с Docker контейнерами отдельных приложений) здесь любят конфликтовать настолько, что в репозитории есть специальная утилита для траблшутинга совместимости модулей с операционкой.
Unraid очень интересен и дружелюбен, и если бы сегодня этому проекту было 2-3 года, я бы поставил на то, что он со временем вытеснит QNAP и Synology с рынка многодисковых NAS для SmB/SOHO сегмента, и не пожалел бы денег на лицензию, но проекту уже 17 лет, а «воз и ныне там». Массив в системе может быть только один, а всего 2 диска чётности на 20 дисков с данными - это катастрофически мало. Проблемы с блокировкой запуска и остановки массива не решаются уже несколько лет, как и работа сервисов при остановленном массиве. Unraid вряд ли вырастет во что-то большее, и если в случае с TrueNAS Scale или OpenMediaVault вы можете восполнить нехватку функций через сторонний софт, а глюки Debian оперативно выпиливаются, то с закрытым Unraid этого ничего нет и не предвидится.
Единственный сценарий использования Unraid, который я одобряю - это хранилище футажей в видеостудии.
Как жить дальше?
Итак, понятно одно: вам очень повезло, если вы использовали Synology только как файлохранилку, поскольку вы легко перейдёте на что угодно, но лучше конечно на TrueNAS Сore/Scale. С точки зрения своей основной функции (хранилки) эти дистрибутивы почти безупречны: они дубовые, надёжные и сравнительно простые, главное - не просить от них ничего большего, чем хранение данных. Вариант поставить TrueNAS в виртуалку, а софт запускать по соседству на том же хосте имеет место быть, но накладывает определённые ограничения, с которыми, в принципе, тоже можно жить.
Замена Synology на QNAP выглядит как попытка лечить симптомы, а не саму болезнь: да вы получите тот же уровень сервиса, но взвалите на себя те же риски. Всё остальное, включая продукцию A-брендов - это сильно нишевое решение, которое оправдано в высоких Enterprise-инсталляциях с неоптимизированным софтом, накладывающим повышенные требования к СХД. И уж если так вышло, что пришло время пересмотреть своё отношение к слою хранения данных, нет никакого смысла бегать от вендора А к вендору Б в надежде, что он прослужит чуть дольше. Правильнее будет раз и навсегда уйти от проприетарщины в мир свободно распространяемого ПО: пересмотреть политику поддержки решения, потратить время на обучение себя или персонала, но полностью исключить санкционные риски.
Поскольку готового программного full-stack решения, аналогичного Synology нет и не предвидется, придётся заморачиваться самому и строить собственный программный стек, заменяя основные сервисы Synology на то, что найдётся в обширных закромах GitHub, и если в любом случае нам предстоит настройка через командную строку, запуск сервисов через Docker и консолидация Web-интерфейсов разных контейнеров в одном месте, то давайте уж тогда возьмём популярный Linux-гипервизор, и вокруг него будем строить программную обвязку под наши нужды! По крайней мере, фундамент у нас будет Enterprise класса, с хорошей историей внедрения на предприятиях, с высоким качеством кода, с огромнейшим сообществом и самыми современными технологиями.
Мой вариант - Proxmox VE
Я выбираю Proxmox VE, и вот почему. Во-первых, это хоть и бесплатный продукт, но с платной техподдержкой для Enterprise-уровня, и это накладывает отпечаток на весь дистрибутив. По той причине, что он выпускается не сообществом, а фирмой, он как минимум, не собран на коленках, как OMV, лишён космических амбиций как Truenas Scale, в отличии от Unraid, он рассчитан на работу 24x7 в Enterprise-среде, где активно и применяется, и при этом распространяется бесплатно с открытым исходным кодом, который проходит аудит сообщества, что отличает его от QNAP QTS и Synology DSM. Ядром Proxmox VE является Debian Linux, что даёт доступ к любому софту и любому современному железу, устанавливаемому в сервер (в отличии от VMware ESXi).
В сообществе Proxmox VE часто подчёркивают, что данный дистрибутив - это не решение для NAS, но с моей точки зрения даже в базе Proxmox имеет достаточно, чтобы стать платформой для СХД, ведь это гипервизор с собственным слоем хранения, причём во главу угла здесь поставлена самая софременная файловая система ZFS, но при этом есть возможность создавать LVM тома, есть поддержка BTRFS RAID, EXT4 и XFS. Для мониторинга дисков есть SMART, для экспорта метрик - поддержка Graphite и InfluxDB, для отказоустойчивости - встроенный High Availability, распределённое хранилище - Ceph, а ещё двухфакторная аутентификация, API токены, собственный бэкап сервер и даже свой Firewall. То есть, в качестве платформы с Web-управлением, Proxmox выглядит зрело и функционально. Нет, скажем так: после 5 лет работы с VMware ESX, я не понимаю, почему я не перешёл на Proxmox VE раньше.
Чего нет в базе Proxmox VE - это всего, что касается шаринга файлов, и всё придётся настраивать самостоятельно. Нет никаких плагинов и магазинов приложений, так что здесь в ход пойдут контейнеры, но в базе и с ними беда: Proxmox VE не поддерживает Docker, то есть весь мир с миллионами программ, устанавливающихся в одну команду, остаётся за бортом. Вместо Docker разработчики сделали упор на LXC, контейнерную виртуализацию, которая с моей точки зрения, что называется, «не взлетела» нигде, кроме как у low-cost VPS хостингов: плюсов перед аппаратной виртуализацией не много, а стандартом де-факто для контейнеров стали Docker в SMB/SOHO и Kubernetes в Enterprise, оставив LXС за бортом.
Нормального бесплатного решения, аналогичного Proxmox с поддержкой Docker, в природе не существует, а без Docker пойди-ка настрой свой аналог Synology... Можно попытаться воссоздать программную платформу своими силами через Ubuntu с панелью управления Cockpit, но там нет такого уровня управления подсистемой сети и СХД, можно попробовать Webmin, но там нет такого управления виртуалками и контейнерами. И как бы я ни был против того, чтобы плодить сущности, но придётся устанавливать вручную Docker на Proxmox VE, и в качестве интерфейса управления - Portainer. Почему я ставлю Docker на сам хост, а не в виртуалку или LXC контейнер? Да потому, что инсталляция его в LXC не рекомендуется по причине падения производительности, а виртуалка даст лишний слой изоляции, который в моём случае будет просто мешать.
|
Synology DSM 7.1 |
TrueNAS Core 13.0 |
TrueNAS Scale 22.12-RC1 |
OMV 6.0.46 |
Unraid 6.11 |
Proxmox VE 7.2 |
Файловая система |
EXT4, BTRFS |
ZFS |
ZFS |
EXT3, EXT4, BTRFS, F2FS, JFS, XFS, через плагины: ZFS |
XFS, BTRFS, ReiserFS |
XFS, EXT4, BTRFS, ZFS |
Блочный RAID |
Да |
Да |
Да |
Да |
Только для LVM пулов Cache и VM |
Да |
Файловый RAID |
Нет |
Нет |
Нет |
Да, через плагин Snapraid |
Да |
Нет |
Шифрование |
На уровне тома |
На уровне тома |
На уровне тома |
Нет |
На уровне диска |
Через CLI, на уровне тома и диска |
Качество плагинов |
Отлично |
Неуд. |
Неуд. |
Средн. |
Хорошо |
N/A |
Качество виртуализации |
Отлично |
Ужасно |
Хорошо |
N/A |
Средне |
Отлично |
Нативная поддержка Docker |
Отлично |
N/A |
Kubernetes |
Никак |
Хорошо |
N/A |
Нативная поддержка SMB/NFS/iSCSI/Rsync |
Отлично |
Отлично |
Отлично |
Хорошо |
Средне |
N/A |
Поддержка High Avail. |
Отлично |
Хорошо |
Хорошо |
N/A |
N/A |
Отлично |
Поддержка распред. файловых систем |
Нет |
Нет |
Нет |
Нет |
Нет |
Ceph |
Возможность кастомизации самой ОС под свои нужды |
Нет |
Нет |
Хорошо |
Хорошо |
Плохо |
Отлично |
Широко используется в бизнес-среде для сервисов 24x7 |
Да |
Да |
Да |
Нет |
Нет |
Да |
В Synology вы не могли, да и не имело особого смысла заниматься планированием хранилища: настройте несколько пулов и нарежьте их на тома - делов-то… В случае с Proxmox VE у нас настоящая свобода выбора.
Планирование хранилища
На аппаратном уровне я не нашёл ничего лучше, чем установить Proxmox на RAID-1 (ZFS Mirror) из SSD объёмом 128 Гб. Это могут быть NVME или SAS/SATA диски, не обязательно высокого класса: на них будет находиться сама ОС и хранилище для ISO файлов виртуальных машин и образов контейнеров. В основном здесь будут производиться операции чтения, поэтому и TLC накопители, и QLC здесь можно использовать даже без дополнительного охлаждения.
Для высокопроизводительного слоя, используемого виртуалками и контейнерами, можно использовать U.2 PCI Express накопители, если в корпусе есть соответствующая корзина, или М.2 SSD, которые удобно устанавливать через платы бифуркации, позволяющие в 1 слот PCI Express 16x подключить 4 накопителя. Такие платы достаточно дёшевы, поскольку не имеют никаких чипов на борту, а RAID из NVME можно поднять через тот же ZFS, нативно для Proxmox. Здесь же можно создать зашифрованные тома с личными данными пользователей.
Proxmox совершенно не против RAID-контроллеров, и если есть современный адаптер уровня Adaptec начиная с 7-й или 8-й серии или более поздний, то можно включив режим RAID Expose RAW, часть накопителей объединить в аппаратный RAID 5 с кэшированием и горячей подменой, получив огромную скорость линейной записи буквально любых объёмов на HDD, а часть экспонировать операционной системе в голом виде (так называемый RAW режим), чтобы управлять ими на программном уровне. Для форматирования логических дисков аппаратного RAID можно использовать файловую систему XFS, как наиболее быструю при работе поверх многодисковых массивов, а для контроля работы - установить на хост arcconf, megacli или другую родную утилиту для RAID-контроллера. Я не являюсь адептом ZFS и считаю, что сегодня есть место и для программно-определяемых хранилищ, и для аппаратных, тем более что современные RAID-контроллеры дают гибкость в выборе и возможности расширения дисковой конфигурации.
Для слоя архивного хранения документов и медиа-файлов я выбираю решение Snapraid + MergerFS. Это достаточно распространённая связка для организации отказоустойчивости массива с файловым RAID за счёт создания выделенных накопителей чётности, подобно тому, как сделано в Unraid. Это решение подходит только для редко изменяемых данных, оно позволит работать с большим количеством дисков, как с единым томом, а на случай аварии выдерживать выпадение до 6 дисков с полным восстановлением данных, плюс к этому - восстанавливаться на меньшее число накопителей, то есть сжимать массив.
Итого, выбирая Proxmox VE в качестве платформы, я получаю:
- поддержку аппаратных RAID контроллеров,
- разные файловые системы для разных задач,
- отказоустойчивый загрузочный том
- NVME массив
- дедупликацию, снэпшоты и сжатие одним из многих алгоритмов на уровне файловой системы ZFS
- возможность создавать зашифрованные тома в пределах ZFS
- поддержку снэпшотов и репликации
- аппаратную виртуализацию enterprise-класса
- контейнерную виртуализацию Docker + LXC с прямым доступом к storage слою и железу
- поддержку большого стека современного и устаревшего (!) железа
- полную бесплатность программной части
- возможность практически бесконечно увеличивать подсистему хранения
- современный Web-интерфейс для управления платформой
Это несравнимо больше, чем я мог бы получить даже от тяжёлых серверов Synology бизнес-класса, но чего я не получаю на данном этапе - это SSD-кэширования для любых типов массивов, кроме ZFS, это поддержки облачного управления для доступа к серверу за NAT провайдера, красивого рабочего стола со сменными обоями и мобильных приложений на смартфон. Ничего, в следующей части всё исправим.
Михаил Дегтярёв (aka LIKE OFF)
02/12.2022