Day 5050 使用群晖作为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地址 1 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 [[email protected]]: Unknown UPS

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

2、Can’t login to UPS [[email protected]]: 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/

注:所有评论将在审核通过后显示,请不要在评论内容的任何位置出现链接,否则您的评论将被自动移入回收站,且永远不会被复审。

All comments will be available after being manually reviewed, please do not include any links anywhere in your comment, otherwise your comment will be automatically deleted and are not eligible for review.

7 条评论

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

  2. 我想知道iMac(macOS)怎么联动关机,我有两个白群晖实现没问题 怎么联动macOS搞不好了

  3. 我觉得这是个不错的主意。。
    不过似乎没什么真正适合家用的 UPS,而且我这边电力比较稳定,就先这么将就了。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注