Хабрахабр

Гибридное хранилище для дома «из коробки» и возможности High Availability от Synology

Несколько лет назад, при выборе первого хранилища для дома, я смотрел в сторону «коробочных решений» по причине не особой осведомлённости в построении системы хранения на базе открытого ПО и обычного ПК. В тот раз выбор пал на 2-дисковую NAS — Shuttle KD20. Хранилище было компактным и тихим. RAID1 обеспечивал необходимую надёжность, а потребности в высокой производительности и расширенном функционале на тот момент не было. Этот NAS проработал почти 4 года, пока в один прекрасный момент не накрылась линия питания вентилятора. Диски раскалились до 60 градусов и чудом выжили. Я запаял вентилятор напрямую к материнке, но стал подбирать вариант на замену. В качестве второй NAS я выбрал 4-дисковую Synology. Задачи оставались те же, поэтому в функционал DiskStation Manager (DSM) я особо не вникал. Это продолжалось до тех пор, пока я не решил установить домашнее видеонаблюдение на несколько каналов. Не смотря на то, что Synology имеет собственный сервис видеонаблюдения, я остановился на Macroscop — была потребность в расширенном функционале и серьёзной аналитике. На своё счастье, я обнаружил в DSM новый пакет Virtual Machine Manager — гипервизор, с помощью которого я создал виртуальную машину и установил на неё Windows и Macroscop. На запись система работала нормально, встроенный Pentium 1,6 ГГц с трудом, но успевал отрабатывать задачи СХД и виртуальной машины. Но как только активировалась какая-либо аналитика — сервис отваливался по перегрузке процессора. В результате, я был вынужден начать поиски отдельного бюджетного Windows-девайcа с адекватной производительностью для реализации сервера видеонаблюдения, так как Synology необходимого уровня стоит недёшево. В тот самый момент я в очередной раз наткнулся в сети на статьи, посвящённые установке DSM на обычное железо и мой проект XPenology начался…
Стоимость необходимых комплектующих для новой хранилки была соизмерима со стоимостью Intel NUC, который я присматривал для сервера видеонаблюдения. Поэтому я решил отказаться от существующей Synology в пользу брата (и использовать её как удалённый бэкап), а себе собрать систему «всё в одном» на базе DSM.

Материнскую плату выбирал по кол-ву LAN и форм-фактору — из свежих нашёл только эту — Asrock Z370M-ITX/ac. В качестве платформы выбрал всем известный корпус Chenbro SR30169 на 4 корзины с горячей заменой. Процессор i3-8100 c 4 ядрами и память 16Гб (с запасом для виртуалок). Два сетевых интерфейса, поддержка 8-го поколения процессоров, а самое главное — 6 х SATA на борту, а это значит, что можно ещё подключить SSD под кэш на чтение. Диски оставил от прежней Synology — 4 x 6Tb.

Сборка платформы

При использовании на столе, этот корпус нормально охлаждает 4 диска в корзинах горячей замены. Но в шкафу под нагрузкой температура дисков доходила до 48-50 градусов. Поэтому я решил заменить штатный 120-ый вентилятор на более производительный.

После доработки вытяжки из шкафа, уверен, что температура еще существенно упадёт. 1,5А-вентилятор снизил температуру дисков до 36-40 градусов.

Его температура не превышала 30-32 градуса, и это при том, что он никак активно не охлаждается. Один SSD 2,5" под кэш я установил на стандартное крепление с одной стороны дисковой корзины.

2 SATA SSD в слот на материнской плате. В качестве диска под пакеты DSM и быстрого раздела я установил M. Я решил проблему установкой на него нескольких радиаторов — температура снизилась на 10 градусов. Накопитель нагревался до 50 градусов, не смотря на прямой обдув.

Чтобы не занимать внешние разъёмы я пристроил эти устройства внутри корпуса. У меня 2 постоянно активных USB-устройства: загрузчик XPenology и ключ Guardant от Macroscop.

Готовое хранилище с высокой производительностью процессора и максимально компактными размерами со скрипом, но вписалось в свободные 6 юнитов.

Подготовка загрузчика

Для того, чтобы установить DSM нужен загрузчик, который представит железо в качестве СХД Synology.

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

Можно использовать SATA DOM, но так как у меня SATA-порты на перечёт — я остановился на классическом варианте — USB флешке.
В BIOS необходимо удалить все загрузочные устройства кроме USB, а в параметрах SATA включить функцию HotPlug, чтобы новые диски определялись «на горячую», не дожидаясь перезагрузки. После установки валидной пары серийник/MAC и прочих параметров, образ для DS3615 заливается на любое устройство с которого можно грузиться.

Запуск

При первом запуске ищем устройство при помощи find.synology.com. Если этот вариант не работает, то скачиваем Synology Assistant с официального сайта и сканируем сеть с помощью него.
После подключения по адресу хранилища к веб-интерфейсу, система предлагает произвести установку DSM. Если на шаге подготовки загрузчика всё было сделано грамотно — установку можно произвести не из файла-образа, а сразу с официального сайта в автоматическом режиме.
Система форматирует все установленные носители и на каждом создаёт область для DSM. Таким образом, переставив диски в другое хранилище Synology или Xpenology можно произвести миграцию с сохранением всех данных и системных настроек.

Система без проблем мигрировала с компа на базе Celeron J1900 на сервер с 2 х E5-2680V4, а после на древний экспонат на базе 2 х E5645. Прежде чем реализовать всё дома, я долго тренировался на различных платформах. Вероятно это снижает производительность, т.к. Если есть виртуалки, то разумеется необходимо перед установкой ОС на виртуальную машину включать режим совместимости процессора. Но зато, миграция проходит без трудностей и BSOD. процессор в виртуалке становится не реальный, а универсальный.

Настройка

Работа через загрузчик Xpenology почти не имеет ограничений по сравнению с оригинальным устройством. Из отличий можно отметить отсутствие функции QuickConnect — нет удалённого доступа к хранилищу через учётную запись Synology. Но у меня внешний IP — это ограничение для моего случая не актуально.

Но зато, частота определяется актуальная. Также некорректно отображается модель процессора и кол-во ядер — информация зашита в загрузчике и всегда будет выглядеть как для DS3615xs: INTEL Core i3-4130 / 2 ядра. Но и тут есть ограничения — Virtual Machine Manager увидит не более 8 ядер в системе. Эта особенность не мешает определять и использовать гипервизору реальное кол-во ядер. Предполагаю, что эта проблема может решиться добавлением драйверов, но, к сожалению, мои познания в Linux не позволяют мне этого реализовать. Поэтому ставить DSM на многоядерные конфигурации бессмысленно.
С объёмом ОЗУ всё в порядке — определялся и использовался весь объем (на практике до 48ГБ).
Интегрированные сетевые контроллеры определяются без проблем, а вот WiFi у меня не нашёлся. Если из читателей этой статьи найдётся человек, который сможет описать инструкцию по добавлению в сборку драйверов на беспроводной контроллер — я буду признателен.

После перехода на первую Synology я оставил «зеркало», а 2 дополнительных диска пустил на Hot Spare. Перед началом использования системы хранения необходимо создать RAID-группы. Всё равно крутится и греется — пусть хоть с пользой. При переходе на Xpenology выбрал RAID5+HS, но потом добавил 4-ый диск в RAID6.

Так как DSM обеспечивает как файловый, так и блочный доступ — перед созданием RAID-массива необходимо определиться с требованиями к типу будущего хранилища.


Файловая шара — это хорошо, а диск с блочным доступом для установки программ — ещё лучше. Я сразу создал несколько LUN для использования на домашнем мини-ПК и ноуте.

Описывать всем известный функционал Synology нет смысла. Далее создаётся необходимое кол-во LUN и разделов на RAID-группах, папки общего доступа и прочее. Все доступные пакеты расширения с описанием функционала доступны на официальном сайте.

Под мои задачи актуальными были следующие пакеты:

Virtual Machine Manager — собственно из-за него вся затея с Xpenology.

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

Для кластера необходимо 3 ноды: активная, пассивная и хранилище. Но, вскоре был разочарован. Какой смысл на DSM поднимать кластер с виртуальными DSM я так и не понял…
В общем, более чем банальный гипервизор, я этот модуль не раскрыл для себя. Автоматическая миграция виртуальных машин при выходе из строя активной ноды поддерживается только на виртуальных машинах Synology Virtual DSM — с виндой и прочими ОС не прокатит.

VPN Server — поддерживает PPTP, OpenVPN и L2TP/IPSec
PPTP, как у меня получилось выяснить, поддерживает только одно подключение бесплатно — его я использую для связи с удалённой Synology для бэкапа.

OpenVPN использую для подключения с iPhone и рабочего компьютера, а также для удалённого подключения LUN по iSCSI.

Hyper Backup — удобный, функциональный и, в то же время, лаконичный сервис резервирования.

Файловый бэкап можно сливать на другую Synology, на другой NAS и в облака. Можно резервировать как папки так и LUN. Поэтому, если требуется бэкап луна в облако, как я понял, можно вначале его забэкапить в локальную папку, а уже её в облако.
Я использую 3 типа резервирования: LUN резервируется только локально или удалённо на устройство Synology.

  1. Резерв на удалённую Synology — туда копируется всё, кроме папки бэкапа (в ней полный бэкап удалённой Synology).
  2. Бэкап только самого важного на Yandex-диск (через WebDAV)
  3. Дубль на Google-диск (есть в списке доступных облачных сервисов)

Возможности файлового резервирования довольно широкие.

Выбрав метод и указав данные для авторизации на удалённом устройстве, помечаются папки для резервирования.

Далее настраивается расписание и параметры бэкапа.

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

Если с архивом Ваших фото Google может делать всё что угодно, то зашифрованный бэкап тех же фото будет мало кому полезен. Шифрование на стороне клиента, на мой взгляд, очень полезно при резервировании в публичное облако.

Далее включается/настраивается ротация резервных копий.

Я использую режим Smart Recycle, но можно установить график ротации копий инкрементного резервирования на свой лад.

Модуль Hyper Backup работает только в паре с обратной частью — модулем Hyper Backup Vault

Этот сервис принимает удалённые копии и отвечает за их хранение.

Для восстановления, при создании задачи резервного копирования, необходимо указать, что это не новая задача, а подключение к уже существующей. Восстановление данных, приложений и настроек возможно как на текущей системе (при повреждении массива, утере данных и пр.), так и на новой такой же или абсолютно другой Synology или Xpenology. Hyper Backup увидит на удалённой машине необходимый бэкап и предложит выбрать версию копии по дате и времени.

На данный момент, это пока весь функционал, который мне удалось освоить и использовать.
Домашняя Xpenology продолжает работать без проблем — периодически обновляется DSM и пакеты, вычислительных мощностей с запасом, а по деньгам она обошлась мне в 1,5 раза дешевле Synology DS916+.

Synology High Availability Cluster

У меня вызывал интерес сервис High Availability Manager, который оказался не совместим с сервисом Virtual Machine Manager, так как тоже делает кластер, но уже по другому.

Сервера для этого кластера должны быть идентичными, IP-адреса статическими, второй порт каждого сервера соединён друг с другом напрямую (можно и через коммутатор, но эффективней так). Для тестирования я поднял Xpenology на двух серверах на базе 2 x Xeon E5645.

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

В зависимости от объема существующих данных, полная синхронизация массивов может занять немало времени, но кластер доступен к работе без отказоустойчивости уже через 10 минут после начала слияния.

После того как вторая нода будет полной копией первой, активируется режим высокой доступности.

Для проверки работы отказоустойчивости я создал LUN, подключил его по iSCSI и запустил объёмную задачу чтения и записи со своего ПК, совместно с проигрыванием видеоролика.

LUN не отвалился, процесс копирования не прервался, но приостановился секунд на 10-15 — это время потребовалось пассивному серверу взять роль активного и запустить упавшие службы. В момент активности я обесточил главный сервер. После кратковременного простоя копирование данных и проигрывание видео продолжилось в штатном режиме без необходимости перезапускать процесс. Воспроизведение также приостановилось на несколько секунд. Такой «провал» в большинстве случаев будет не заметен пользователям, если только не ведется воспроизведение видео без буферизации или запущены какие-либо другие процессы, требующие непрерывного доступа к хранилищу.

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

Для замены ноды, в случае полного выхода из строя, необходимо освободить пассивный сервер.

Только при одном исключении — добавление происходит уже из интерфейса кластера, а не активного сервера. Процедура привязки пассивного сервера аналогична процедуре создания кластера, вначале синхронизация — затем High Availability.

Зазеркалировать две ноды с RAID5 или RAID6 — по дискам будет почти одно и то же. Из минусов такого решения — высокая избыточность, ну а плюс — честная отказоустойчивость.
Основные затраты выпадают на диски, но для любителей RAID10 самое оно! А вот отказоустойчивости прибавится кратно.

А, учитывая, что Xpenology работает на любом железе, получается весьма интересное, производительное и отказоустойчивое решение для личного использования. Понятное дело, что это не уникальный функционал, но зато «из коробки» и не требует особого опыта и знаний — только веб-интерфейс.

Спасибо за внимание!

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть