步骤/目录:
1.UPS简介
2.ViewPower的使用
    (1)单台UPS、单台电脑关机
    (2)单台UPS、多台电脑关机
    (3)短信/邮件报警
    (4)UPS定时开关机
    (5)网络唤醒设置
附录:使用一台主机关闭局域网中的其它电脑

本文首发于个人博客https://lisper517.top/index.php/archives/35/,转载请注明出处。
本文的目的是对UPS及ViewPower(管理UPS的软件)做一个简单介绍。
本文实验日期为2022年8月24日,使用的电脑是家用台式机,win10系统。

1.UPS简介

UPS(Uninterruptible Power Supply),即不间断电源,这是一种由电池、整流器等部分组成的装置,可以在突然断电时为用电设备继续提供电力。这里不介绍工业、企业级UPS,如果个人应用UPS最常见的就是用于连接台式机、防止突然断电对电脑造成损害。UPS的其他作用还有把市电(输入电流)过滤(比如过滤突然的高压、低压,有些UPS可以把输出电压固定到220V,便宜一点的可能固定到190~255V;稳定交流电频率等)、远程开关机(也常用于NAS;用于电脑需要主板支持远程唤醒、来电开机等功能)。当然,功能越多的UPS越贵,另外其价格还与蓄电量(影响断电后能供电的时间)、输出功率、切换时间有关。一般对于家用电脑的UPS,断电后能供电30min,电脑的功率可能在500~1000W(40系显卡功耗已经450W起步了),UPS的切换时间根据原理不同可能在0~10ms(比较重要的电脑可以上0ms的UPS,但一般4ms就够了)。

UPS的分类,可分为后备式与在线式。后备式UPS在输入电压正常时不工作,不经过UPS转换、直接将电压输出(无噪音),仅在输入电压过高、过低时开启变压器,将电压控制在合适范围内输出(此时有噪音);在线式UPS则一直开启变压器,将输入电压固定在某个电压(一般是220V)输出,因此一直会有噪音,价格也更贵。一般来说UPS工作时的噪音有60分贝,不能放在卧室。

淘宝京东上能找到很多牌子的UPS,目前比较大的国外品牌有施耐德APC、艾默生、伊顿EATON等,国内的则有山特、山克、雷迪司Ladis、华为等,可根据自己的需要选购,最推荐的是施耐德,缺点是稍微贵一点;不论品牌,建议买在线式或在线互动式UPS,电池3k(6/8电池)以上,最好是长机(外置电池)而非标机(内置电池)。另外UPS一般都有USB接口,可连接电脑、NAS等,通过厂家提供的软件管理UPS;下文就将介绍ViewPower的使用。

另外,UPS的使用上还有一些注意事项:
(1)UPS带有大容量电池,难免会发热,使用时注意放在通风的地方,一般建议周围20cm内和上方勿放其他东西;
(2)勿频繁开关机,关机后至少30s后才能重启UPS;
(3)UPS可以连插线板使用,但是它的负载不要太低或太高,比如1200W的UPS不要只连个15W的树莓派,或者连非常多台电脑。一般建议负载控制在50~60%最佳;
(4)定期检查UPS状态,及时更换电池(1~3年换一次),另外每3个月可以把电池放电一次(放到电池剩10%左右);
(5)负载尽量不要带感性负载(因为其功率有波动,大功率感性负载很容易超出UPS最大输出功率),简单来说就是带转动部件的,比如空调、风扇、电钻、冰箱都尽量别插到UPS上。

最后,这里说一下如何选择功率、计算供电时间。一般计算电脑功率可以把CPU、显卡等各个配件的功率加起来(如果电脑是自己购买组装的话应该比较清楚),或者看电脑电源的最大功率,或者根据自己家的电费估算;当然最可靠的办法还是看电脑电源,毕竟这是上限,比如自己的电源是800W的,那么就可以买一个900~1200W的UPS;然后算一下UPS的供电时间(这部分笔者不保证正确),比如一台UPS,它的电池是2个x12Vx9Ah,即216VAh,然后找UPS的转换系数(把VAh转换成Wh的系数,1千Wh/1kWh即1度电),比如UPS标注了容量是2000VA/1200W,那么转换系数=1200/2000即0.6,则实际容量是216VAhx0.6=129.6Wh。如果UPS最高负载是1200W,那么UPS在1200W下能坚持129.6Wh/1200W=0.108h即6.48min,如果电脑日常功率是300W,则能坚持6.48minx1200W/300W=25.92min。

2.ViewPower的使用

ViewPower大概是雷迪司(也可能是其他厂商)推出的一款UPS管理软件,当然有些其他品牌的UPS也能用,或者其他品牌也有自己的软件(比如施耐德就有自己的PowerChute)。ViewPower的下载地址为 http://www.ladis.com.cn/support/node_27.shtml (这里也有使用说明),支持windows、linux、mac。这里仅简单介绍一下ViewPower的使用(不涉及虚拟机),出现任何问题请参考官网的使用教程。
把UPS的USB插上电脑,下载ViewPower并进行安装,按照步骤即可,注意的是最好不要改安装路径。它的默认安装路径就是在C盘下,虽然有点丑陋,但如果更改后面就有可能无法正常运行。在系统托盘,会出现一个黄色插头,右下角带圈,右键单击它、选择 Open Monitor 即可打开一个浏览器网页(ViewPower也使用了Tomcat,部署了一个war包)查看UPS的信息。右上角看一下自己登录没有,如果没登录就是观察者。登录的默认密码是 administrator ,及时更换密码,把语言也可以换成简体中文。最后要注意,如果在linux上装 ViewPower 或者后面提到的 Shutdown Wizard 时,可以把它们加到自启动项里,详见 不同系统下的开机自动运行 。最后提醒一下,笔者在Ubuntu上安装ViewPower后,每次关机前都要到其安装文件夹里( LADIS 里)执行 StopMain 脚本,否则关机要卡很长时间。

(1)单台UPS、单台电脑关机

在左上角的 UPS MENU -> UPS设置 -> 负载关机参数设置 中,这里可以设置,停电后一段时间或者电池电量降低到一定程度就让电脑关机,这里还能设置电脑关机前运行一些脚本。设置完后,可以手动把UPS断电,测试一下(记得把所有重要的程序关闭)。

(2)单台UPS、多台电脑关机

这个需要一台电脑上装 ViewPower 、其他机器上装 Shutdown Wizard (也可以不装,见后面), Shutdown Wizard 可以在 雷迪司下载中心 找到windows、linux版的,linux版的后面带 _text 的估计就是用于没有装图形界面的linux。在装了 ViewPower 的机器上, Open Monitor 的左上角的 UPS MENU -> UPS设置 -> 远程负载关机设置 中,可以添加局域网中的其他电脑ip,其他电脑需要装上 Shutdown Wizard (这里注意 ViewPower 机器的关机等待时间要小于其他机器);或者如果其他电脑开启了SSH,并且SSH只需要用户名、密码即可登录,该用户有关机权限,则也可以不装 Shutdown Wizard 。当然,如果懂一点CS,也可以自己在装了 ViewPower 的机器上写一些关机前执行的脚本,来让其他机器也关机。

(3)短信/邮件报警

在 UPS MENU -> 配置 里面,这里以邮件为例。比如有一个qq邮箱,首先登录qq邮箱,在 设置-账户 里选择开启IMAP/SMTP服务,经过验证后可得到一个授权码;在 ViewPower 的配置中,SMTP服务器地址 为 smtp.qq.com ,下面选 SSL ,端口为 465 ,电子邮件地址 和 用户名 都填 自己的qq邮箱 , 密码 则是 授权码,最后添加一个接收邮件的地址(删除默认邮箱,添加一个自己的邮箱)。设置完成后可以测试一下发送。
短信报警笔者没有使用,不是太熟。
短信/邮件报警设置完成后,还需要再设置一下事件响应。在 UPS MENU -> 配置 -> 电力事件响应 里面,比如说在 UPS输入市电异常 、 UPS输入市电恢复 、 系统将被关闭 这三个(红色、黄色、蓝色的事件,严重程度递减,建议所有红色、黄色的都进行邮件报警),右边各自点击 接受邮件地址 、下面勾选并应用。
最后,邮件报警是需要网络的。一般停电时路由器的网络也会停(笔者使用一段时间后发现,有很大的概率停电后仍然有网络,前提是你的路由器也插到UPS上),但是手机的基站一般还能用。有条件的可以买一个插SIM卡开启热点的路由器,然后通过一些设置使得电脑在断电后会切换到这个备用路由器的wifi发送邮件。

(4)UPS定时开关机

在 UPS MENU -> 控制台 -> 开关机计划 里,可以设置单次、每日或每周的UPS定时开关机。现在市面上大部分主板的BIOS里都可以设置来电就开机(或者像树莓派这种来电即开机的机器),所以这种方式下可以通过UPS的定时开关机来让装了 ViewPower 的机器定时开关机,进一步唤醒其他机器(见下面);或者也可以把所有连了UPS的机器都设置成来电就开机。

(5)网络唤醒设置

在 UPS MENU -> 配置 -> 网络唤醒设置 里面,填写其他机器的MAC地址(网卡地址)即可,MAC地址可以通过路由器或其他方法查看。但是这里的意思是安装了 ViewPower 的机器在开机状态下,可以通过网卡地址让其他机器开机(需要其他机器通电,主板支持远程唤醒)。

附录:使用一台主机关闭局域网中的其它电脑

笔者连接UPS的主机运行Ubuntu-22.04,关闭其它主机的方法是执行一个关机脚本。脚本内容如下:

#/bin/bash
online=`ping IP地址1 -c 3 | grep "Unreachable" | wc -l`
if [ $online -eq 0 ]; then
    ssh -i 私钥文件1 用户名1@IP地址1 shutdown /t 30
fi
online=`ping IP地址2 -c 3 | grep "Unreachable" | wc -l`
if [ $online -eq 0 ]; then
    ssh -i 私钥文件2 用户名2@IP地址2 shutdown -t 30
fi
exit 0

先ping其它电脑,如果能ping通则通过ssh进行关机,其它电脑都可以在后面添加。如果要关闭linux电脑,把 shutdown /t 30 改成 shutdown -t 30 。如果不知道Windows 10电脑如何开启sshd,可查看 Windows系统开启SSH 。然后 chmod +x

按道理来说,在 关机前执行档案 里填 /bin/bash 脚本绝对路径 就可以了,但笔者试验了几次也不行( "/bin/bash 脚本绝对路径"脚本绝对路径 ),于是只能转而使用替代的方法。由于笔者连接UPS的电脑也是局域网内的主机中心、全天开机,而且这台主机关机后其它电脑也没有开机的意义,所以可以写一个关机前执行的服务:

nano /etc/systemd/system/BashBeforeShutdown.service

写入如下内容:

[Unit]
Description=Run bash at shutdown or halt
Requires=network.target

[Service]
Type=oneshot
RemainAfterExit=true
ExecStart=/bin/true
ExecStop=/bin/bash 脚本绝对路径

[Install]
WantedBy=shutdown.target halt.target

最后重新加载systemd并允许服务:

systemctl daemon-reload
systemctl enable BashBeforeShutdown.service

对应的脚本省略ping,改为如下内容:

#/bin/bash
ssh -i 密钥1 用户名1@IP地址1 shutdown /s /t 30
ssh -i 密钥2 用户名2@IP地址2 shutdown -t 30
exit 0

标签: UPS, ViewPower

添加新评论