✍️ Статья Секреты Synology. Обходим ограничения и расширяем возможности популярных NAS

The 146X Project Dublikat Web Studio Avram Lincoln AL Service Navigator Knyaz

BlackPope

Команда форума
Модератор DeepWeb ✔️
PR-Group DeepWeb 🔷
Регистрация
27.04.2020
Сообщения
230
Synology — отличное решение для организации домашнего или корпоративного NAS. Местная операционная система, DSM, продуманна и отлично оптимизирована, но порой нелогична и слишком урезана. Но чем хорош DSM, так это тем, что многое можно исправить, отредактировав файлы конфигурации. А установка пакетов из стороннего репозитория от независимого сообщества разработчиков позволит заметно расширить возможности устройства в сторону, не предусмотренную разработчиками.

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

Агрегация портов: как на самом деле удвоить скорость сетевого интерфейса

Скорость современных жестких дисков часто превышает 200 Мбайт/с, а использование некоторых типов многодисковых массивов позволяет достичь и более высоких скоростей. Использование в сетевых хранилищах единственного гигабитного сетевого порта убивает удовольствие на корню: получить скорость, превышающую 125 Мбайт/с, с единственным гигабитным соединением невозможно. В статье «После гигабита. Выбираем и настраиваем оборудование для суперскоростной домашней сети» я уже успел пожаловаться на проблему, описав и вариант решения — купить и настроить мультигигабитный адаптер. Сейчас же я расскажу о том, как обойтись без него и удвоить скорость гигабитного соединения совершенно бесплатно.

Ряд моделей Synology — например, DS718+, DS220+, DS720+, DS420+ и более продвинутые — оснащены двумя или более гигабитными сетевыми портами. Пользователи QNAP или Asustor пожмут плечами: отлично, делаем агрегацию — скорость удваивается! Однако в NAS от Synology использовать лишний порт для того, чтобы просто удвоить полосу пропускания, у обычного пользователя не получится. Чтобы разобраться в причинах, нужно немного рассказать о том, как работает агрегация сетевых линков в принципе.

Использовать два и более сетевых интерфейса можно разными способами. Например, выделить один линк как резервный: он будет задействован, только если у основного линка возникнут проблемы. Также агрегацию можно применить для распределения нагрузки, пуская трафик, генерируемый разными клиентами, по разным линкам. В этом случае ширина полосы пропускания увеличивается пропорционально количеству линков — но только в том случае, если пользователей несколько и доступ к данным они получают с разных сетевых интерфейсов. Скорость доступа к данным для каждого конкретного пользователя не превысит максимальной скорости работы единственного гигабитного линка.

Единственное исключение из этого правила — агрегация на программном уровне (она не требует какого-то особого коммутатора или настроек) по алгоритму Round Robin (на русский язык иногда переводится как циклический режим). При работе по этому алгоритму сетевые интерфейсы используются строго по очереди, что и позволяет достичь эффекта, которого ожидает обычный домашний пользователь: скорость передачи данных между NAS и любым другим устройством (разумеется, также использующим скоростной линк) будет складываться из суммарной пропускной способности всех агрегированных линков. Таким образом, включение второго порта Ethernet у других производителей — это способ удвоить видимую пользователю скорость работы NAS, вплотную приблизив скорость обмена данными по сети к скорости самих дисков.

А вот в сетевых хранилищах от Synology от агрегации портов обычному пользователю будет мало толка. По какой-то причине разработчики DSM не стали выводить в графический интерфейс возможность использования циклического режима Round Robin. Другие алгоритмы? Пожалуйста! Вот только ни один из них не позволит удвоить скорость передачи данных между NAS и единственным клиентом. Подавляющее большинство покупателей NAS с двумя сетевыми портами не узнает об этой особенности, пока не попробует воспользоваться режимом агрегации.

В DSM доступен выбор одного из нескольких алгоритмов агрегации.

65uWKZk_TOg.jpg


При этом DSM работает поверх сборки Linux, в ядре которой агрегация Round Robin присутствует. Соответственно, можно попробовать ее включить. Для этого достаточно изменить единственный байт в единственном текстовом файле. Итак:
  1. Создаем сетевое соединение, используя агрегацию по методу Adaptive Load Balancing. Внимание: на момент создания соединения оба сетевых порта должны быть уже подключены к коммутатору, причем скорость портов должна совпадать. Кстати, рекомендую сразу же увеличить MTU до 9000.
  2. Заходим через SSH с правами root и открываем файл /etc/sysconfig/network-scripts/ifcfg-bond1 (или bond0, в зависимости от настроек) на редактирование.
  3. Находим строку BONDING_OPTS и меняем значение 6 на 0. Сохраняем файл.
  4. Перезапускаем сеть командой /etc/rc.network restart (если после этого открыть окно настроек агрегации в веб-интерфейсе DSM, в нем не будет выбран ни один из вариантов).
Если все сделано правильно, мы получим удвоенную скорость передачи данных между NAS и… собственно, между NAS и любым другим устройством, которое либо также использует агрегацию Round Robin (проверено на двух экземплярах Synology, подключенных к одному гигабитному коммутатору), либо подключено к тому же коммутатору по скоростному каналу на 2,5, 5 или 10 Гбит/с (проверено с собственным компьютером).

Думаю, очевидно, что в твоем компьютере при этом должен быть установлен либо один скоростной сетевой интерфейс (подключенный к скоростному порту мультигигабитного коммутатора), либо два гигабитных (можно подключить к тому же гигабитному коммутатору, к которому подключен NAS).

Еще более быстрый Ethernet

Агрегация сетевых портов — отличная вещь с одним маленьким ограничением: работает только в довольно дорогих моделях, в которых второй сетевой порт присутствует как класс. Большинство же доступных по цене моделей Synology (в том числе исключительно популярная модель DS218+, а также недорогие модели DS118j и DS220j), увы, оборудованы единственным сетевым портом. Как-либо увеличить скорость доступа штатными средствами невозможно — только переходить на более дорогую модель, оборудованную двумя портами Ethernet.

Попробуем очевидный вариант: подключаем гигабитный сетевой адаптер к порту USB в надежде настроить агрегацию. Промах, причем двойной: адаптер системой не опознан, пришлось искать драйвер; и даже после его установки возможности настроить агрегацию в системе так и не появилось. Дополнительный сетевой интерфейс не был пронумерован, оба порта (и встроенный, и USB) показаны в интерфейсе под названием LAN. Что ж, никто и не обещал, что в устройстве с одним портом разработчики DSM оставят настройки агрегации.

Остается другой вариант: использовать внешний сетевой адаптер со скоростью 2,5 или 5 Гбит/с. В продаже есть множество вариантов, все они основаны на одном из двух чипсетов: Marvell (Aquantia) AQtion AQC111U либо Realtek RTL8156 (на котором построен добрый десяток моделей, отличающихся в основном формой корпуса, а иногда и вовсе только названием производителя).

Вариант 1: 5 Гбит, адаптер QNA-UC5G1T на чипсете AQtion AQC111U

Пробуем подключить пятигигабитный адаптер от основного конкурента Synology — компании QNAP. Просто взять и подключить адаптер, разумеется, недостаточно: DSM корректно определит устройство, но без драйвера для AQC111U не увидит сетевого линка. На помощь приходит GitHub: драйверы для чипсета AQC111U в формате пакета для DSM можно скачать отсюда.

В список совместимых моделей входят DS918+, DS620slim, DS1019+, DS718+, DS418play, а также DS218+. Впрочем, сборки доступны и для более старых чипсетов, но — без гарантии. При этом поддерживаются в основном устройства с процессорами Intel; модели на чипах Realtek (архитектура ARMv8) не поддерживаются, так что использовать адаптер с DS218, DS218Play, DS220j или DS118j не удастся.

А что насчет современных устройств — DS220+, DS720+, DS420+ и так далее? Для них еще не выложены нужные библиотеки и фреймворки, которые необходимы для компиляции драйверов.

Устанавливается драйвер просто: достаточно использовать команду Manual Install из раздела Packages. После установки драйвер становится доступным в виде установленного пакета; его нужно будет запустить.

3e107-EE78w.jpg


Драйвер готов к работе, но рекомендуется его предварительно настроить, изменив в свойствах адаптера MTU = 9000. В настройках адаптер будет выглядеть примерно так:

SAhYVaHytJM.jpg


На этом не все. Пятигигабитный адаптер склонен к нагреву, а где нагрев — там и тротлинг. Соответственно, стоит отключить температурный тротлинг, а чтобы не возникал перегрев — включить EEE (Energy Efficient Ethernet). Это можно сделать двумя командами в терминале (предполагается, что идентификатор подключения — eth1, что верно для систем с единственным встроенным сетевым портом):

$ ethtool --set-priv-flags eth1 "Thermal throttling" off
$ ethtool --set-priv-flags eth1 "Low Power 5G" on


После этого линк полностью готов к работе. Естественное ограничение: через USB-адаптер не будет работать режим Wake on LAN; для работы WOL, если она требуется, следует оставить подключенным кабель к одному из встроенных сетевых портов. В такой конфигурации нужно будет убедиться в корректной адресации устройства, в явном виде подключаясь к IP-адресу именно пятигигабитного адаптера. Я решил этот вопрос, настроив локальное название устройства в виде my_nas.local (при этом просто my_nas обращается к устройству через встроенный LAN), но вариантов может быть масса, вплоть до редактирования файла hosts на компьютере.

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

Стоило ли оно того? Вот результаты тестирования.

Чтение показало устоявшуюся скорость 150 Мбайт/с.

HRnYkB3P6S8.jpg

Пиковая производительность — порядка 178 Мбайт/с.

i5h9_DiDuYU.jpg

Запись в зашифрованную папку (AES-256) прошла со средней скоростью порядка 140 Мбайт/с, при этом заметно нагрузив процессор.

kMbMMnFJhSM.jpg


Эксперимент считаю удавшимся: достигнута скорость передачи данных, почти в полтора раза превышающая возможности гигабитного линка. Впрочем, до скоростей DAS этому решению все же далеко: вероятно, играет роль весьма скромная вычислительная мощность старенького двухъядерного Celeron.

Вариант 2: 2,5 Гбит, адаптер на чипсете Realtek RTL8156

Я протестировал вот такой адаптер, продаваемый под маркой Digitus:

-0RYFPMTskI.jpg

На чипсете RTL8156 выпущено большое количество адаптеров, которые отличаются внешним видом корпуса и способами отвода тепла. Драйвер для всех этих адаптеров подходит один и тот же.

Протестированный адаптер оснащен разъемом USB Type-C. Для подключения к Synology потребовался переходник, у которого есть своя особенность: на полной скорости он работает только в одной ориентации симметричного порта Type-C. Если «воткнуть неправильно», скорость будет такой же, как у USB 2.0.

Разумеется, драйверов у Synology для этого адаптера не предусмотрено. На помощь вновь приходит GitHub: на сей раз нас интересует страница Synology DSM driver for Realtek RTL8152/RTL8153/RTL8156 based adapters.

Поколение устройств 2020 года на процессорах Intel пока не поддерживается. Драйвер на этих моделях можно установить, отредактировав манифест, но стабильная работа не гарантируется. Я протестировал установку на модели DS420+. Драйвер установился, мне удалось передать несколько гигабайт данных с максимальной скоростью, после чего все устройство просто зависло. Проблема все в том же отсутствии библиотек и фреймворков для свежего поколения железа; их должна опубликовать Synology в ближайшее время, так что корректно работающий драйвер вполне разумно ожидать.

Установка не отличается от установки предыдущего адаптера. Из дополнительных настроек имеет смысл активировать Jumbo Frames (MTU 9000), что помогает снизить загрузку процессора и нагрев самого адаптера. Тестирование подтвердило работоспособность комбинации.

Для недорогих моделей Synology я рекомендовал бы адаптер именно на этом чипсете (производитель самого адаптера не принципиален). Тому есть несколько причин.
  1. Цена. Стоимость такого адаптера — около 35 евро. Вполне бюджетным решением будет покупка сразу двух таких адаптеров. Такое решение позволяет настроить прямую связь между компьютером и сетевым хранилищем на максимальной скорости, используя при этом основной гигабитный линк для общения с внешним миром и другими устройствами в домашней сети.
  2. Совместимость. Для данного чипсета есть драйверы как для устройств на процессорах Intel, так и для NAS с архитектурой ARMv8 (модели DS118, DS218, DS218play, DS220j и подобные).
  3. Недорогая сетевая инфраструктура. Можно продолжать использовать «гигабитные» кабели категории Cat.5e, а в качестве коммутатора приобрести недорогой ZyXEL или QNAP. В качестве скоростной сетевой карты для компьютера можно использовать еще один такой же адаптер — и это вполне бюджетное решение. Более того, в некоторых материнских платах уже установлен один или два порта именно на 2,5 Гбит.
Бесшумный NAS

NAS без движущихся частей — очень тихий NAS, идеальный для домашнего использования. В ряде моделей Synology (речь идет о достаточно маломощных моделях DS118j, DS218j, DS220j и подобных) предусмотрен режим Low Power Mode, в котором вентилятор будет останавливаться, когда останавливаются диски. При этом по неизвестной причине в моделях DS218 и DS218play остановка вентилятора не предусмотрена — несмотря на то что процессор в них используется ровно тот же, что и в младших моделях. Разница между DS220j (вентилятор останавливается) и DS218play (нет) и вовсе в объеме оперативной памяти и цвете корпуса.

По моему опыту, не помешает настройка скорости вращения вентиляторов и таким моделям, как DS218+ и DS220+: даже при минимальной скорости вращения установленный производителем дешевый вентилятор заметно шумит. При «спящих» дисках в столь активном охлаждении необходимости просто нет.

К счастью, настроить профиль скорости вращения вентилятора в DSM достаточно просто. Открываем терминал и редактируем файл /usr/syno/etc.defaults/scemd.xml. Здесь можно указать желаемую скорость вращения вентилятора в любом режиме. В своей конфигурации я снизил обороты вентилятора с 20 до 15% лишь в самом «холодном» режиме:

<disk_temperature fan_speed="20%15hz" action="NONE">0</disk_temperature>

Новое значение:

<disk_temperature fan_speed="15%15hz" action="NONE">0</disk_temperature>


Обрати внимание: отредактировать придется не только эту строку, но и строки, отвечающие за скорость вращения вентилятора в зависимости от температуры процессора и системы.

Настроить остановку вентилятора при гибернации дисков можно, отредактировав следующую настройку:

<fan_config period="20" threshold="6" type="DUAL_MODE_LOW" hibernation_speed="UNKNOWN">

Новое значение:

<fan_config period="20" threshold="6" type="DUAL_MODE_LOW" hibernation_speed="STOP">

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

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

Репозиторий SynoCommunity

В предыдущих разделах мы несколько раз редактировали текстовые файлы, но при помощи какого редактора? Удобный редактор nano в состав DSM не входит, как не входит и файловый менеджер Midnight Commander, редактор которого еще более удобен. Эту проблему легко исправить.

У Synology есть довольно большой репозиторий приложений, из которого можно скачать как пакеты собственной разработки компании, так и многочисленные сторонние программы и расширения. Однако далеко не все приложения успешно проходят модерацию. Для использования пакета из файла можно временно отключить проверку цифровой подписи, но гораздо удобнее будет подключить репозиторий, поддерживаемый сообществом пользователей Synology. Для этого достаточно добавить источник SynoCommunity.
  1. Запусти Package Center.
  2. Открой настройки (Settings) -> Package Sources.
  3. Добавь (кнопка Add) новый репозиторий. Название: SynoCommunity, URL: http://packages.synocommunity.com/.
Что полезного есть в этом репозитории? Например, уже упомянутый редактор текстов nano, файловый менеджер Midnight Commander и другие утилиты командной строки, привычные пользователям Linux, — в пакете SynoCLI.

Еще можно упомянуть Entware, инструкция по установке которого есть на GitHub.

Любой скрипт по расписанию

Возможность выполнять задачи по расписанию — одна из ключевых особенностей сетевых хранилищ. В Synology по расписанию можно создавать резервные копии, выполнять сборку мусора (trim) твердотельных накопителей и дисков с SMR, реплицировать данные, да и вообще создавать любые мыслимые задачи, которые будут запускаться хоть по расписанию, хоть по одному из определенных триггеров. Запуск по расписанию выглядит так.

Y6jdIwnl8rQ.jpg

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

dSlWPAmubuk.jpg

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

Почему эта возможность достойна отдельного упоминания? Да просто потому, что в других готовых решениях (QNAP, Asustor) ничего подобного нет и близко. Да, в хранилищах, собранных самостоятельно с использованием, к примеру, OpenMediaVault, такая возможность есть — но мы-то говорим об устройствах, которые продают в магазинах самым обычным пользователям!

Это не означает, что, например, в сетевом хранилище Asustor или QNAP пользователь не сможет создавать резервные копии по расписанию — сможет, если расписание поддерживается непосредственно в приложении или той части системных настроек, которые относятся к резервному копированию. Но, к примеру, простая задача разбудить удаленное устройство через Wake On Lan, после чего создать на нем резервную копию и отключить его удаленным запуском скрипта через SSH не получится без использования терминала и умения вручную настроить cron. А в Synology — получится. Кстати, разработчикам QNAP было настолько лень возиться с полноценным диспетчером задач, что они даже создали подробную статью о том, как пользователю самому настроить crontab через командную строку.

Резервное копирование: один большой или несколько маленьких?

Иногда встречается ситуация, когда в сетевом хранилище настроен единственный большой том. Как известно, RAID, даже зеркальный, не замена резервным копиям. Проще всего резервные копии создавать на внешних накопителях — например, WD My Book или Seagate Backup Plus. Но сделать так, чтобы резервная копия большого тома сама по себе «порезалась» на небольшие кусочки, — задача не всегда тривиальная, особенно если внешние диски подключать не одновременно, а по одному.

Вариант решения, удобно работающий с Synology благодаря возможности запускать произвольные скрипты по расписанию, — это команда rsync, в которой данные с большого тома копируются на небольшие диски порциями. Проще всего этого достичь, исключая для каждого из дисков часть каталогов верхнего уровня по алфавиту. К примеру, у нас есть папки: Alfa, Bravo, Charlie, Delta, …, Yankee, Zulu.

Допустим, их общий объем составляет порядка 7 Тбайт, а резервную копию мы хотим создать на двух дисках по 4 Мбайт.

Первая команда сохранит на диск все папки, кроме тех, названия которых начинаются на буквы с U по Z (символ / показывает, что речь идет о папках первого уровня относительно начала пути резервного копирования, указанного в source. Так команда не влияет на вложенные папки):

$ rsync -av --exclude '/[u-zU-Z]*/' откуда куда1

Вторая сохранит оставшиеся папки на следующий диск:

$ rsync -av --exclude '/[0-9a-tA-T]*/' откуда куда2

Оформить эти команды можно в диспетчере задач, запуская таким образом резервное копирование либо по расписанию (внешние диски должны быть смонтированы), либо вручную, подключая их по одному. Разумеется, исключать можно любые буквы.

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

Любое приложение — на домашнем экране

Если подумать, то все-таки запускать скрипты через диспетчер задач как-то… неправильно. Есть более красивый способ: собрать при помощи опенсорсной утилиты (есть версия для Windows) собственный пакет, который можно вручную установить в NAS. Все, что будет делать такой пакет, — это отображать красивую иконку на домашнем экране, а при запуске выполнять скрипт по указанному пути.

Утилита называется просто — MODS (My Own DSM Shortcuts Packager for Synology). Скачать ее можно с GitHub.

NLFETKpHB5o.jpg


Заключение

Synology DSM — достаточно развитая и удобная платформа, которую можно сделать еще лучше. Разумеется, тем, кто собирает сетевое хранилище самостоятельно, все это не нужно — но готовое решение обладает целым рядом своих преимуществ.

4gfUbdtTsjA.jpg
 

📌 Золотая реклама

AnonPaste

Верх