使用PVE虚拟化平台作为基层系统,为了数据安全,不可避免需要搭配UPS系统,实现断电自动关机等保护功能.也正好因为pve是基于Debian的平台系统,所以我们可以使用到Linux中管理UPS常用的工具软件apcupsd.

apcupsd 是个跨平台的开源 APC UPS 管理工具,其 Linux 版本被收录于各大 Linux 发行版的仓库中。它由社区爱好者维护开发,同时也收到各UPS厂商的强力支持.

这次就以我手上搭配的山特USP TG-BOX 600作为演示,其他UPS步骤差不多,可以参考一下

过程

1.安装apcupsd

apt install apcupsd -y

2.修改配置

配置文件存放在/etc/apcupsd/apcupsd.conf,使用顺手的编辑器打开(这里使用nano)

nano /etc/apcupsd/apcupsd.conf

以下是修改改动的配置参数:

# 将原本注释的#UPSNAME 改成
UPSNAME XXX #(随便起个名字)

# UPSCABLE是设置连接ups数据线的类型(我的是usb线连接,所以我设置为usb,各位根据自己ups酌情设置)
UPSCABLE usb

# UPSTYPE 设置ups的类型,一般为usb(如果为串口 请设置为apcsmart)
UPSTYPE usb

# DEVICE /dev/ttyS0 根据上面UPSTYPE类型选择是否注释(usb类型请注释该行,这样系统便会自动检测 USB 连接 UPS;串口类型请保留)
# DEVICE /dev/ttyS0

# POLLTIME 设置轮询ups状态时间,默认关闭,建议开启,一般为60即可
POLLTIME 60

# ONBATTERYDELAY 设置断电6s后才识别为正在使用电池,防止短时间断电导致错误
ONBATTERYDELAY 6

# --------------------------------------------------------------------
# 以下参数为自动关机参数,任意一个条件满足,即可开始运行自动关机

# BATTERYLEVEL 当断电后,ups电量低于或等于百分之多少,开始关闭虚拟机,然后关闭宿主机(建议设置为90,尽早关闭主机)
BATTERYLEVEL 90

# MINUTES 断电后ups剩余不超过多少分钟,开始关闭虚拟机,然后关闭宿主机(建议设置为60,断电就开始关机,尽早关闭主机)
MINUTES 5

# TIMEOUT设置是指电网断电后多久开始关闭虚拟机,然后关闭宿主机,平时可以设置成60秒 (默认为0,即禁用)
TIMEOUT 10

3..接下来,配置服务

#启动apcupsd
systemctl start apcupsd
​
#查看apcupsd进程状态
systemctl status apcupsd
​
#开机启动
systemctl enable apcupsd
​
#重启apcupsd,更改配置文件后使用
systemctl restart apcupsd
​
#查看ups状态
apcaccess

参考资料

使用 apcupsd 实现 UPS 断电自动关机

PVE安装配置UPS

【NAS】PVE设置UPS断电关机

在Linux下使用UPS电源与监控程序配置