Настройка Synology DSM для работы с UPS Hikvision
Недавно перевез в Ташкент свой довольно уже немолодой Synology NAS DS918+. Летом здесь довольно часто отключают электричество из-за большой нагрузки на сети, создаваемой кондиционерами. Поэтом для защиты NAS и дисков от внезапного отключения электроэнергии занялся выбором источника бесперебойного питания (он же ИБП, он же UPS).
На локальном рынке не то чтобы большой выбор ИБП, особенно тех, которые заведомо совместимы с Synology. Покрутив доступные варианты выбор пал на Hikvision DS-UPS2000, который предлагает достаточный запас автономной работы для NAS и роутера при адекватной цене. Важным моментом в выборе было наличие USB интерфейса у UPS для того, чтобы подключив его к NAS тот мог оповещать операционку об отключении электричества, и NAS, в свою очередь, аккуратно бы выключался спустя заданный период после перехода на питание от батарей.
И вот все участники мероприятия дома, распакованы и включены. Подключаю UPS по USB кабелю к NAS и вижу всплывающее уведомление "BounzDS has connected to the UPS". Хороший знак. Однако на следующем шаге меня ждало разочарование: DSM отказывалась видеть (и показывать) его в настройках электропитания (No USB UPS connected).
Что ж, пошел обсуждать возможные причины и решения этой проблемы с Gemini. Сошлись на том, что в DSM по умолчанию пытается использовать драйвер tripplite_usb, который не узнает в чипе Richcomm (0925:1234) своего «родственника». Как дальше выяснилось и не должен: Hikvision использует более свежий протокол (Megatec 0.07), который не поддерживается ни в tripplite_usb, ни в blazer_usb, о котором Gemini прожужжал мне все уши, но использование которого так и не помогло.
В итоге по счастливой случайности нашел на Github упоминание о рабочих настройках драйвера для этого UPS. Дальше была попытка настройить работу с нужным драйвером через /usr/syno/etc/ups/ups.conf, но DSM упорно продолжал использовать Tripp Lite OMNIVS / SMARTPRO driver 0.29. В итоге я сдался и запустил в контейнере nut, который предоставляет Synology данные о "сетевом" UPS. Вот настройки для docker compose или Portainer stack:
version: '3.8'
services:
nut-server:
image: instantlinux/nut-upsd:latest
container_name: nut-server
restart: always
privileged: true
# Пробрасываем всю USB шину, чтобы не зависеть от смены ID порта
volumes:
- /dev/bus/usb:/dev/bus/usb
environment:
- DRIVER=nutdrv_qx
- SUBDRIVER=armac
- PORT=auto
- VENDORID=0925
- PRODUCTID=1234
- DESCRIPTION=Hikvision_DS-UPS2000
- API_USER=upsmon
- API_PASSWORD=your_strong_password
После этого в настройках самого Synology DSM (Control Panel) переходим в раздел Hardware & Power → UPS, включаем галочку Enable UPS Support, в выпадашке UPS Type выбираем Synology UPS Server и в поле Network UPS server IP указываем IP адрес нашего контейнера. Жмем Apply — и все готово!