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

6jvns268d3fi-jkttzzzryzw0y0.jpegНесколько лет назад, при выборе первого хранилища для дома, я смотрел в сторону «коробочных решений» по причине не особой осведомлённости в построении системы хранения на базе открытого ПО и обычного ПК. В тот раз выбор пал на 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.

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

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


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

j1aczm6ubldqvkip5bc7xsntgew.jpeg

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

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

3cjdy0acnfy8kprb82jzqrvxd3a.jpeg

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

k1l4y6o2ovfcr53ijjmwl-q-e4m.jpeg

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

ejd6ocxplqomt6hhsb7tw61904a.jpeg

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

umqimlcovqo_ke-vz_aoa5khetu.jpeg

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


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

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

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

Запуск


При первом запуске ищем устройство при помощи 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 ядер в системе. Поэтому ставить DSM на многоядерные конфигурации бессмысленно.
С объёмом ОЗУ всё в порядке — определялся и использовался весь объем (на практике до 48ГБ).
Интегрированные сетевые контроллеры определяются без проблем, а вот WiFi у меня не нашёлся. Предполагаю, что эта проблема может решиться добавлением драйверов, но, к сожалению, мои познания в Linux не позволяют мне этого реализовать. Если из читателей этой статьи найдётся человек, который сможет описать инструкцию по добавлению в сборку драйверов на беспроводной контроллер — я буду признателен.

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

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

cfi7s6q8iboip0ztvep3f2gwmva.jpeg
xs41afntwmncsduod-bvrtukt5a.jpeg

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

xuxjambzt3zu3evgtznj6wy1a6o.jpeg

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

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

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

-z5oyp93dbnz_t0afspibfo9b-k.jpeg

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

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

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

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

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

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

fvbqmzgnijhwoiwnnyfp9qz4vki.jpeg

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


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

esi-yy-igvzo_f5xcf-370yve5c.jpeg

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

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

ikpyjzokj7n4opwbzugnlyxioie.jpeg

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

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

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

m0utbl1-akz9ybozhx0erhti8x8.jpeg

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

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

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

xk-iydosjbgdm4nhi1kl6_40tsg.jpeg

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

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

Synology High Availability Cluster


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

7rlk7zxq6cenu6x_2tbwvk1kvsy.jpeg

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

1bmwpnnv51h8e4knzb6xrsp_wxy.jpeg

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

vqkw2nxfhkgaxkeezslnnqdf0oc.jpeg

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

_ihxbyld-ph7ck19bltvabbtjvk.jpeg

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

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

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

ogts39scg148ioam3bs4jvx6-mw.jpeg

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

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

m28kf-tm8roldaxyvprxamqjjr0.jpeg

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

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

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

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

© Habrahabr.ru