PVE 通过群晖连接UPS实现停电关机(基于NUT)
我的PVE(Proxmox VE)宿主机下的爱快+LEDE+黑群晖已经稳定运行一年多了,最近因为打雷突然停电,开始担心硬盘数据安全问题,于是开始研究如何通过UPS实现群晖、PVE等设备停电自动关机。
经查相关资料,发现APC(型号:Back-UPS-650)的UPS有停电通讯功能,且与群晖完美支持,并可通过群晖的网络UPS服务器实现PVE等设备联动断电关机。
群晖实现断电关机的方法:
1、购买一台APC的 BK650 UPS电源,此电源带USB通讯口,插到PVE主机上,并给黑群晖虚拟机添加USB设备(记得关闭、重启群晖虚拟机)
2、登录群晖管理页面,打开 控制面板->硬件和电源->不断电系统,可以看到UPS电源已被正确识别。
这里可以自行设置断电后群晖进入安全模式的时间。
PVE连接群晖UPS服务器实现自动关机的方法:
1、进入群晖控制面板->硬件和电源->不断电系统,启用网络UPS服务器,并点击允许的DiskStation设备,填入你的PVE管理IP(我的是:192.168.100.4)。
2、打开PVE的Shell界面,依次输入以下命令操作
①下载NUT套件
apt install nut -y
②编辑NUT配置文件
vim /etc/nut/nut.conf
(如未安装vim工具可以用 vi 命令,VIM工具比较方便修改,安装方法自行百度)
移动光标找到MODE参数项
将“MODE=”后面修改成如下参数(按键盘上的“i”进入编辑模式)
MODE=netclient
输入“:wq”保存退出
vim /etc/nut/upsmon.conf
找到 MONITOR 在下方增加一行
MONITOR ups@nas的ip 1 upsmon pass slave
③启动nut-client服务,并设置自动启动
systemctl start nut-client && systemctl enable nut-client
④测试是否成功连接UPS服务器
upsc ups@NAS IP
如显示如下信息则表示配置成功(不同设备信息不同)
Init SSL without certificate database
battery.charge: 100
battery.charge.low: 10
battery.charge.warning: 50
battery.date: not set
battery.mfr.date: 2019/03/20
battery.runtime: 2272
battery.runtime.low: 120
battery.type: PbAc
battery.voltage: 13.6
battery.voltage.nominal: 12.0
device.mfr: APC
device.model: Back-UPS 650
device.serial: 3B1912X62195
device.type: ups
driver.name: usbhid-ups
driver.parameter.pollfreq: 30
driver.parameter.pollinterval: 5
driver.parameter.port: auto
driver.version: DSM6-2-23656-180331
driver.version.data: APC HID 0.95
driver.version.internal: 0.38
input.sensitivity: low
input.transfer.high: 266
input.transfer.low: 165
input.voltage: 234.0
input.voltage.nominal: 220
ups.beeper.status: enabled
ups.delay.shutdown: 20
ups.firmware: 822.A3.I
ups.firmware.aux: A3
ups.load: 14
ups.mfr: APC
ups.mfr.date: 2019/03/20
ups.model: Back-UPS 650
ups.productid: 0002
ups.serial: 3B1912X62195
ups.status: OL
ups.timer.reboot: 0
ups.timer.shutdown: -1
ups.vendorid: 051d
Init SSL without certificate database
battery.charge: 100
battery.charge.low: 10
battery.charge.warning: 50
battery.date: not set
battery.mfr.date: 2017/11/11
battery.runtime: 1650
battery.runtime.low: 120
battery.type: PbAc
battery.voltage: 13.5
battery.voltage.nominal: 12.0
device.mfr: APC
device.model: Back-UPS 650
device.serial: 3B1745X17495
device.type: ups
driver.name: usbhid-ups
driver.parameter.pollfreq: 30
driver.parameter.pollinterval: 5
driver.parameter.port: auto
driver.version: DSM6-2-25510-201118
driver.version.data: APC HID 0.95
driver.version.internal: 0.38
input.sensitivity: low
input.transfer.high: 266
input.transfer.low: 165
input.transfer.reason: input voltage out of range
input.voltage: 244.0
input.voltage.nominal: 220
ups.beeper.status: enabled
ups.delay.shutdown: 20
ups.firmware: 822.A3.I
ups.firmware.aux: A3
ups.load: 26
ups.mfr: APC
ups.mfr.date: 2017/11/11
ups.model: Back-UPS 650
ups.productid: 0002
ups.serial: 3B1745X17495
ups.status: OL
ups.timer.reboot: 0
ups.timer.shutdown: -1
ups.vendorid: 051d
常用资源:
配置说明:
1 | Start Network UPS Tools service:Yes #启动NUT服务,选择Yes |
群晖UPS-NUT目录
1 | /usr/syno/etc/ups/ |
upsmon.conf文件:
1 | MONITOR ups@IP地址 1 monuser secret slave |
/usr/syno/bin/synoups
我的群晖升级到了DSM7,断电后进入“安全模式”,硬盘挂起并不会自动关机。此时,需要先在“群晖控制面板”—“终端机和SNMP”—“启用SSH功能”上打勾,启用SSH功能,然后在Windows电脑上,使用SSH软件以root用户登录群晖,修改 /usr/syno/bin/synoups 文件,找到UPSSafeMode() ,在最后面加上一行poweroff。
WinNUT-Client
我的配置:
nut.conf
1 | # The values of MODE can be: |
ups.conf
1 | # Network UPS Tools: example ups.conf |
upsd.conf
1 | LISTEN 0.0.0.0 3493 |
upsd.users
1 | # -------------------------------------------------------------------------- |
upsmon.conf
1 | RUN_AS_USER root |
upssched.conf
1 | CMDSCRIPT /etc/nut/upssched-cmd |
upssched-cmd
1 | #!/bin/sh |
upsset.conf
1 | # Network UPS Tools - upsset.conf sample file |
host.conf
1 | # Network UPS Tools: example hosts.conf |