Day 11375 使用群晖作为UPS服务器联动Windows服务器关机

单位之前买了一台群晖DS416作为资料存储器,并在其后追加购置了一台APC BK650-CH的UPS作为掉电保护措施。该型号为后备式,并具备通讯端口,主要用于在市电断开时通知与之相连的设备进行关机,对群晖的硬盘起到保护作用。

后来,在群晖的旁边放置了一台组装的小服务器,运行 Windows Server 2008 R2 处理一些额外的事务。然而,该型号UPS只有一个通讯口,无法由UPS自身同时通知群晖和小服务器进行紧急关机。幸而,群晖支持作为UPS服务器使用,可由其通知其它最多5个设备的UPS客户端进行关机操作,以下为具体的配置过程,及尝试过程中遇到的一些问题的附录。

一、群晖自身连接UPS

该步骤非常简单,建议选择在群晖官网兼容性列表中列出的UPS型号,以保证购买后可以正常使用。

以本例中的APC BK650-CH为例,将UPS中附带的联机线(一头为RJ45网线口,一头为USB)分别与群晖的USB口和UPS的“数据通信口”连接,然后将UPS接入市电,长按电源键开机即可。

接下来,在DSM的『控制面板——硬件和电源——不断电系统』中启用UPS支持:

勾选『启用UPS支持』『DiskStation进入“安全模式”之前的等待时间』指群晖在进入待机模式(停止所有系统服务、将硬盘卸载并停转)前等待的时间,『当系统进入安全模式时将不断电系统关机』指群晖在进入待机模式后,通知UPS切断电源,可以尽可能减少对UPS电池的消耗,如无连续在线需求,建议勾选。

在『设备信息』中,可以看到UPS的相应信息:

二、启用群晖UPS服务器

要使其它设备与群晖联动,在市电断开时得到通知关机,需要将群晖配置为UPS服务器,在DSM的『控制面板——硬件和电源——不断电系统』中,勾选『启用网络UPS服务器』,然后点击『允许的 DiskStation 设备』,弹出对话框如下:

此处最多可以录入5个接收UPS通知的设备的IP地址,请自行确保对应的IP地址的可用性及对应性,并且确保网络连接(如路由器/交换机)一并接入UPS(常见的家用路由器电源为两相,可购买两相转三相的转接头),以确保断电时群晖可以顺利下发通知,否则一切都是白给。

三、配置Windows下的UPS客户端

下载WinNUT(GitHub Repo本站镜像,自行搜索下载时请注意 WinNUT 和 WinNUT client 是两个不同的软件,后者用于查看网络UPS设备的信息,且无法用于群晖的UPS服务器)进行安装,安装完成后打开开始菜单中的WinNUT Configuration Tool,弹出以下界面:

点击『Configuration File Path』后面的『Edit』按钮,打开配置文件:

在图中所示位置新增如下内容:

MONITOR ups@群晖IP地址 monuser secret slave

其中,群晖IP地址按实际情况录入,monuser和secret为群晖内置的UPS服务器账号密码(附录中另行说明),请勿修改,slave代表本机作为从设备,接受UPS服务器下发的通知。

修改完成后,保存该文件。

勾选主界面上的『Install As Service』,并将『Automatic Startup』中的『Service Startup』选择『Automatic Startup』,将WinNUT安装为系统服务,即可在每次启动系统时自动启动本应用。

最后点击『Apply and start WinNUT』,如『Status』中变为『Running as Service』,说明服务启动成功,此时点击『Log File Path』后的『View』按钮查看实际启动情况,常见的几种错误信息如下:

1、Can’t login to UPS [upsx@192.168.0.2]: Unknown UPS

检查刚才在配置文件中录入的信息中,ups@群晖IP地址部分是否有错,@前的部分必须为『ups』不得更改;

2、Can’t login to UPS [ups@192.168.0.2]: Access denied

检查刚才在配置文件中录入的信息中,monuser secret部分是否有错字,必须与前述一致;

3、Fatal error: insufficient power configured!

检查刚才在配置文件中录入的信息,是否有多余的字符,或者省略了ups@的部分,必须与前述一致。

简单来说,请完全按照前述的信息对配置文件进行修改,且只需要修改群晖IP地址的部分,不要以为自己很聪明而随便修改任何字段。

另外,不要忘记在Windows防火墙(或其它本机安装的网络防火墙)上开放3493/tcp端口,否则群晖下发的通知无法到达本机,也是没有用的。

WinNUT的主界面中还有一个可选选项:勾选『Use Timed Shutdown』选项可在收到通知后延迟指定的秒数再执行关机动作,在『Shutdown Delay (in Seconds)』后输入要延迟的秒数即可。

注意:对主界面的设置进行修改后,(如果服务已经在运行)一定要点击『Stop WinNUT』然后点击『Apply and Start WinNUT』对服务进行重启,新的配置才会生效。

一切配置完成后,可以试着拔掉UPS的电源,使UPS转入电池供电模式,观察群晖及联动的Windows服务器是否按照预期执行了关机动作。

附录:查看群晖默认的UPS服务器配置信息

首先在DSM中启用SSH终端支持,在『控制面板——终端机和SNMP』中勾选『启用SSH功能』,并修改默认的端口:

然后用SSH客户端连接群晖,注意修改端口号为刚刚配置的端口,登录时需使用在群晖中配置的admin用户组的账号密码。

登录后,使用『sudo -i』指令,输入当前登录的用户密码,切换至root权限,然后进入『/usr/syno/etc/ups』目录,该目录下有2个文件对应前述WinNUT配置时录入的参数信息:

1、ups.conf

文件末尾内容如下:

[ups]
driver = usbhid-ups
port = auto

其中[ups]所指即为前述配置中『ups@群晖IP地址』中,@之前部分的『ups』。

2、upsd.users

文件末尾内容如下:

[monuser]
password = secret
upsmon master

其中[monuser]和password=secret即为签署配置中『monuser secret』之来源,此处还可以发现群晖工作在主设备(master)模式下,作为服务器向其它设备发送UPS电源信息。

不建议对该处配置文件进行修改,以避免发生问题。

参考资料:

1、https://asperti.com/en/synology-ups-and-other-machines

2、https://www.synology.com/zh-cn/knowledgebase/DSM/tutorial/General_Setup/How_to_login_to_DSM_with_root_permission_via_SSH_Telnet

3、https://diktiosolutions.eu/en/synology/synology-ups-nut-en/

Comments

  1. 半年前我家搞不好一两个月或者两三个月就断电一下(可能是线路问题),打算买个ups给家里服务器用,结果后来好了,就搁下了,先存下这篇文章,保不齐用得着。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

 剩余字数 ( Characters available )

Your comment will be available after auditing.
您的评论将在通过审核后显示。

Please DO NOT add any links in your comment, otherwise it would be identified as SPAM automatically and never be audited.
请不要在评论中插入任何链接,否则将被自动归类为垃圾评论,且永远不会被提交给博主进行复审。

*