1. 从一个深夜的断电电话说起:UPS到底在保什么
凌晨两点接到电话,说机房"全黑了",值班同事第一句话是"服务器不是有UPS吗"。赶到现场打开柜门,面板上红灯一片,负载还挂着,只是电池组已经鼓包三年没换——这种场面我遇到过不止一次。很多人对UPS的理解就是"停电了还能撑一会儿",但真正把它用对的人,关心的从来不是那"一会儿",而是这一会儿里系统有没有把该做的事做完。UPS也就是不间断电源,它的价值不在于电池,而在于它给你争取到的那段可控时间窗口。
这篇文章我想把它讲透:UPS到底铺在哪些领域、什么场景该用哪种、它和常被混为一谈的EPS差别在哪、以及最容易被忽略的一段——怎么把UPS接进你的系统里,让PVE 9.2上的虚拟机和TrueNAS SCALE上的存储池在电池见底前自动、有序地停下来。前半段讲选型和场景,后半段直接给配置和排错链路,家里一台NAS、公司一个机柜、厂里一条产线,都能对号入座。
先说一个反直觉的结论:大部分UPS事故不是UPS坏了,而是没人管它。电池是消耗品,三到五年一轮;监控是空白的,掉电了才知道;关机顺序没设计,结果存储比计算先死,数据比断电更受伤。所以这篇文章的重心,会放在"选对"之后的"用对"。
1.1 停电其实有三种形态,不是一种
很多人的认知里,停电就是"灯灭了"。实际在供电侧,扰动分三档,UPS要处理的也是三档不同的东西。
第一档是毫秒级到几百毫秒的电压暂降和闪断。负载端表现为设备的开关电源里那颗大电容还能不能扛住。典型ATX电源的保持时间(hold-up time)在额定负载下是12到20毫秒,所以10毫秒的切换窗口它是能顶住的,但如果电压只是掉到160V持续半秒,电源就会进入欠压保护直接重启。半导体产线最怕的就是这一档,一次几十毫秒的暂降,整批晶圆可能就报废了,损失远大于一台在线式UPS的价格。
第二档是分钟级到小时级的计划外停电。这是家庭NAS、办公机柜最常遇到的情况,也是NUT这类软件关机能派上用场的场景——UPS给的不是"继续工作",而是"体面收尾"。
第三档是长时间停电或者市电质量问题,比如偏远站点、山区基站、户外机柜,这时候UPS只是过渡,真正的主力是油机或者光伏储能。UPS的角色变成"在油机启动并稳定输出的这30到60秒里不断电"。
注意:把UPS当发电机用是新手最常见的误判。绝大多数UPS的电池只为十几分钟到一小时的后备设计,深循环放电会加速电池老化,循环寿命断崖式下跌。
1.2 UPS的三层目标:保设备、保服务、保数据
我习惯把UPS的作用拆成三层,因为三层对应三种完全不同的选型和配置思路。
最底层是保设备:防止硬件因为反复上下电而损伤。硬盘在掉电瞬间磁头归位靠的是自身旋转惯性,问题不大,但SSD的FTL映射表、RAID卡的写缓存、主板BIOS的掉电时序就不好说了。这一层只需要后备式UPS,撑5到10分钟足够。
中间层是保服务:比如收银台、门禁、监控录像、通信链路,这些设备不能中断,中断就意味着业务停摆或者合规问题。这一层需要在线互动式以上,并且后备时间通常要算到30分钟以上。
最上层是保数据:文件系统一致性、数据库事务完整、虚拟机磁盘不出现半写状态。这一层的实现方式不是靠电池撑,而是靠联动关机——UPS通过USB或者网络把"我在放电""电池快没了"这两个信号传给主机,主机按预设顺序停下来。
三层目标经常被混在一起谈,结果就是要么花了双变换在线式的钱买了个只撑5分钟的电池组,要么指望后备式UPS去保护一条不能停的产线。分开看,选型立刻清晰。
2. UPS真正铺开的场景:从书桌下的NAS到万吨产线
说"使用领域"容易说空,我按功率段和真实需求把它摊开讲。
2.1 家庭与个人工作室:NAS、软路由、监控主机
这是这几年增长最快的一块,因为家庭里自建存储和虚拟化的人多了。典型配置是一台四盘位NAS、一台跑PVE的迷你主机、一个软路由或者PoE交换机,总功率常在80到200W之间。
这个场景的诉求其实很朴素:别让ZFS池在写入时断电。ZFS本身是写时复制的,断电后大概率能回滚到最近一次事务组,但如果你开了同步写关闭(sync=disabled)或者跑着iSCSI、虚拟机磁盘,掉电就可能导致虚拟机磁盘损坏、iSCSI目标需要重新校验。所以家用场景我强烈建议把NAS和虚拟化主机都接到同一台UPS上,用NUT做联动关机,哪怕后备时间只有10分钟,也足够把十几台虚拟机干净地停下来。
家用选型上,600VA到1500VA的在线互动式是主流,价格适中、输出接近正弦波,对主动PFC电源友好。要避开的坑是那种标称"模拟正弦波"的廉价后备式——主动PFC电源接到阶梯波输出上,轻则发热异响,重则直接保护关机。
2.2 中小企业:机柜、工位、收银与门禁
中小企业机柜的特点是负载杂。一台塔式服务器、一台NAS、交换机、路由器、防火墙、可能还有一台小型的门禁控制器,功率可能在500W到2000W之间。这里的核心矛盾是预算和规范之间的拉扯。
我的经验做法是分两级:核心机柜用一台2到3kVA的在线式或者在线互动式,覆盖所有网络和存储设备;办公工位上的电脑用几百VA的后备式,只保证不因为闪断重启,不需要联动关机。这样预算集中在关键点,不至于全铺开。
零售和餐饮场景要注意一个细节:收银机、电子秤、打印机这类设备很多是外置电源适配器,输入范围窄、没有PFC,对波形不敏感但对切换时间敏感。收银台断电重启一次,当天流水可能要重录,所以这里的UPS优先看切换时间,其次才看容量。
2.3 工业与公共设施:产线、医疗、安防、交通
这块是UPS最能体现价值的地方,也是最容易被简化对待的地方。
工业产线上,PLC、伺服驱动器、工控机、视觉系统对电压暂降极其敏感。很多工厂的做法是在关键工位加装小容量在线式UPS,而不是全厂铺开,因为全厂铺开的成本会失控。我见过比较聪明的做法是按"控制回路"和"动力回路"分开,UPS只挂在控制回路上,动力回路由接触器在断电时直接释放,这样既保住了PLC的程序和状态,又不用为几百千瓦的电机买单。
医疗场景里,手术室、ICU、检验科设备对供电连续性有明确要求,通常需要在线式双变换UPS,并且要配旁路柜和定期带载测试。这里的选型不是IT人员决定的,而是和医疗设备厂商的供电要求挂钩,别自己拍脑袋。
安防监控是我见过最容易踩坑的场景。NVR加十几路PoE摄像机的总功率,经常被低估。PoE交换机的标称功率是满配端口的上限,实际每路摄像机可能只有5到8W,但加上NVR的硬盘阵列和交换机自身损耗,一台16路NVR加PoE交换机的实际功耗很容易超过300W。更麻烦的是,很多人在摄像机端单独加小UPS,以为更保险,实际上是增加了故障点和维护成本,正确做法是集中在一处做UPS,把供电线路的可靠性做扎实。
交通和通信,比如路口信号机、隧道照明控制、基站,这些点位分散、维护困难,选型时要优先考虑宽温、防尘、远程可监控。这类场景里SNMP网卡几乎是刚需,因为没人会为了看一块面板灯专门开车去山上的机柜。
2.4 数据中心与算力集群
数据中心里UPS的形态完全不同,它是整个供配电链路的一环:市电双路进线、ATS切换、UPS、列头柜、机柜PDU、最后到服务器双电源。UPS在这里通常用模块化或者大功率在线式,按N+1或者2N配置,后备时间不追求长,10到15分钟足够,因为背后还有柴发。
这块的关键词是冗余和可维护性。旁路要能在线投切,电池要能单组更换,模块要能热插拔。至于怎么把UPS状态接进DCIM或者监控平台,SNMP几乎是唯一选择,这也是后面我会重点讲的一段。
| 场景 | 典型功率 | 常用拓扑 | 后备时间 | 最关注的点 |
|---|---|---|---|---|
| 家庭NAS/虚拟化 | 80~300W | 在线互动式 | 10~30分钟 | 联动关机、正弦波输出 |
| 中小企业机柜 | 0.5~3kVA | 在线互动/在线式 | 20~60分钟 | 负载兼容性、扩展性 |
| 零售收银/门禁 | 0.3~1kVA | 后备/在线互动 | 15~30分钟 | 切换时间、体积噪音 |
| 工业控制回路 | 1~10kVA | 在线式 | 10~30分钟 | 宽输入范围、工业环境 |
| 医疗手术/ICU | 3~30kVA | 双变换在线式 | 30~120分钟 | 冗余、旁路、测试规范 |
| 数据中心 | 100kVA以上 | 模块化在线式 | 10~15分钟 | N+1/2N、可维护性 |
3. UPS和EPS不是一家人:切换时间、负载性质与标准的分水岭
热词里"ups与eps"出现频率很高,说明混淆的人很多。我用一句话概括差别:UPS保信息,EPS保逃生和保运转。这两个词看起来像兄弟,实际上从设计目标开始就分岔了。
3.1 切换时间:一个看毫秒,一个看秒
UPS的切换时间是毫秒级。后备式典型在4到10毫秒,在线互动式2到6毫秒,双变换在线式理论上0毫秒,因为逆变器一直在供电,市电只是给整流器供能。
EPS(应急电源)的切换时间通常在0.1到0.25秒,某些场合允许更长。这个时间差不是技术做不到,而是需求不同:消防应急照明、排烟风机、消防水泵这些负载,0.25秒的断电完全能接受,而为了达到毫秒级切换,需要付出的成本和损耗要高得多。
反过来说,把EPS用在IT负载上就是灾难。一台服务器在0.1秒的断电里会直接重启,重启过程中UPS的容量在启动冲击电流面前可能直接被拖垮。
3.2 负载性质决定归属:感性、容性还是开关电源
EPS的设计重心是带感性负载和电机负载。消防水泵、风机、电梯这类设备的启动电流是额定电流的5到7倍,EPS要能承受这种冲击,所以它的逆变器过载能力通常做到120%长期、150%短时甚至更高,输出波形为了驱动电机,通常是大功率正弦波或者准正弦。
UPS的设计重心是带开关电源类负载。服务器的输入级是整流加PFC,属于非线性负载,会产生谐波,功率因数接近1但波形是尖峰状的。UPS的逆变器要能承受这种峰值电流,同时对输出波形的THD(总谐波失真)要求更严,一般要求线性负载下低于3%。
这就解释了一个常见现象:一台标称6kVA的UPS带不动机器设备,或者一台EPS带服务器会莫名其妙的报错关机。不是容量不够,是负载匹配错了。
3.3 三个我见过的典型误用
第一个,把EPS当UPS买回家接NAS。结果电池是阀控式铅酸深循环设计,放电曲线陡,切换时NAS重启,来回几次硬盘就出坏道了。
第二个,给消防应急照明用UPS。虽然能亮,但UPS的消防联动接口、消防认证、耐高温要求都不满足,验收根本过不去。这类场合必须用符合消防标准的集中电源或者EPS。
第三个,用后备式UPS带一台带主动PFC的高功率服务器。空载测试一切正常,一带载就随机重启,最后查出来是阶梯波输出导致PFC电路工作异常。这类问题在低压小容量场景里非常隐蔽,很多人会把锅甩给服务器电源。
提示:选型前先看一眼负载铭牌上有没有"Active PFC"或者"功率因数≥0.9"的字样,有的话就必须选正弦波输出的UPS,别省这笔钱。
4. 三条拓扑路线:后备式、在线互动式、双变换在线式
按内部结构分,UPS就三类。搞清楚这三类的差别,选型基本不会走偏。
4.1 后备式:便宜、够用、但有明显天花板
后备式的结构最简单:市电正常时直接旁路给负载,同时用一个小充电器给电池充电;市电异常时切换到逆变器输出。切换靠继电器,所以有毫秒级的断点。
优点是效率高(市电模式下接近99%)、噪音小、价格便宜、体积小。缺点是输出波形差(多为阶梯波或方波)、切换有断点、输入电压范围窄、没有稳压能力、不适合长期带载。
我的定位很清楚:它只适合个人电脑、路由器、监控主机这类对波形不敏感、且不需要长时间运行的设备。一旦负载里有主动PFC电源、激光打印机、NAS,就直接跳过它。
4.2 在线互动式:家用和中小场景的主力
在线互动式在后备式的基础上加了一个**自动稳压(AVR)**的抽头变压器,市电偏高偏低时通过切换变压器抽头来稳定输出,只有超出范围才切到电池。输出波形大多是正弦波。
它的优势是:稳压范围宽、切换时间短、输出波形好、效率仍然很高。价格比后备式贵一些,但比双变换在线式便宜很多。对于家庭NAS、办公机柜,这是我认为性价比最高的路线。
要注意的是,在线互动式在面对频率漂移时表现一般,如果配发电机,需要选输入频率窗口宽的型号(有些能做到40到70Hz自动识别),否则发电机启动后UPS会一直在电池和市电之间来回切换。
4.3 双变换在线式:0毫秒切换,代价是效率和发热
双变换在线式的原理是把市电整流成直流,再用逆变器重新生成纯净的交流电。负载永远由逆变器供电,所以市电出问题的时候不需要切换,输出零中断。
代价是:市电到负载要经过整流和逆变两次变换,效率通常在90%到95%之间,损耗变成热量,所以要有风扇散热,噪音比前两类大;价格也明显更高。
它适合的场景是:工业控制、医疗设备、数据中心、以及对电压质量和切换时间有硬要求的场合。还有一类容易被忽略的用户:电网质量差、电压经常在170V到250V之间晃的地区,在线式能把这部分问题全部吃掉。
4.4 一张表说清怎么选
| 维度 | 后备式 | 在线互动式 | 双变换在线式 |
|---|---|---|---|
| 切换时间 | 4~10ms | 2~6ms | 0ms |
| 输出波形 | 阶梯波/方波 | 正弦波 | 纯净正弦波 |
| 稳压能力 | 无 | 有(抽头式) | 全程稳压 |
| 效率 | 最高 | 高 | 中(90~95%) |
| 噪音发热 | 低 | 低 | 中高 |
| 价格 | 低 | 中 | 高 |
| 适合负载 | PC、路由器 | NAS、办公机柜 | 工控、医疗、机房 |
选型决策我想给一个简单的三步法:先看负载能不能接受毫秒级断点,再看负载对波形有没有要求,最后看市电质量好不好。三问下来,答案基本就锁定在某一类了,不需要纠结参数表。
5. 把UPS接进系统:PVE 9.2、TrueNAS SCALE 与 SNMP 网卡
前面都是选型,这一段开始是实操。很多人UPS买回来插上USB线就完事了,以为装个厂商软件就行,结果是软件只保护本机、关机顺序也不对。我用得最顺手的是NUT(Network UPS Tools),它是跨平台的,Linux、BSD、部分NAS系统都自带或者可以装,而且天生支持"一台UPS,多台主机"的主从架构。
5.1 先把NUT的架构讲清楚,后面配起来就不迷路
NUT由几个组件构成,理解了它们的分工,配置文件就不会配错。
- 驱动(driver):直接跟UPS通信的进程,比如
usbhid-ups走USB、snmp-ups走网络、blazer_usb走一些国产机型。它负责把硬件协议翻译成NUT的统一变量。 - upsd:数据服务,监听3493端口,把所有UPS的状态变量对外发布。
- upsc / upsrw / upscmd:客户端工具,分别用来读状态、读写参数、下发命令(比如电池自检)。
- upsmon:守护进程,负责监控电源状态、触发关机。它分master和slave两种角色。
一台直连UPS的机器同时跑驱动、upsd和upsmon,叫standalone模式;只读远端数据、自己触发关机的机器只跑upsmon,叫netclient模式。家里和公司的小型场景,我建议把那台7×24小时常开的NAS设成master,其他机器设为slave,因为NAS通常最先开机最后关机。
5.2 在PVE 9.2上把NUT客户端配起来
PVE 9.x 基于 Debian 13,软件源里直接就有NUT,不需要额外加源。假设我们有一台NAS(IP 192.168.10.20)已经直连UPS并且跑着upsd,现在要把PVE主机接进来做从机。
第一步装包:
apt update apt install -y nut-client第二步,修改/etc/nut/nut.conf,声明这台机器是网络客户端:
MODE=netclient第三步,配置/etc/nut/upsmon.conf:
MONITOR nasups@192.168.10.20 1 nutuser yourpassword slave MINSUPPLIES 1 POLLFREQ 5 POLLFREQALERT 5 HOSTSYNC 15 DEADTIME 15 POWERDOWNFLAG /etc/killpower SHUTDOWNCMD "/sbin/shutdown -h +0" NOTIFYCMD /usr/sbin/upssched NOTIFYFLAG ONBATT SYSLOG+WALL+EXEC NOTIFYFLAG LOWBATT SYSLOG+WALL+EXEC NOTIFYFLAG ONLINE SYSLOG+WALL这里有几个参数值得解释,因为配错了会出大问题。
MONITOR那一行的第一个数字是供电路数,老老实实写1;最后的master/slave必须和UPS服务端的upsd.users里定义的权限一致,写反了会被拒绝连接。POLLFREQALERT表示进入电池模式后的轮询间隔,我把它设成5秒,因为低电量告警来得很快,采样太慢可能来不及关机。HOSTSYNC是等待从机断开的时间,多机场景下这个值要给足,否则主机会在从机还没关完的时候就切断了。
第四步,如果这台PVE是直连UPS的主机,还需要在/etc/nut/upsd.users里给从机开账号:
[nutuser] password = yourpassword upsmon slave第五步,启动并设为开机自启:
systemctl enable --now nut-client systemctl restart nut-monitor # 直连主机还要 restart nut-server upsc nasups@192.168.10.20 # 验证能读到变量upsc能输出一堆变量就说明链路通了。重点看ups.status,正常情况下是OL(Online),切到电池时变成OB,低电量时是OB LB,LB就是触发关机的那一位。可以用upsc nasups@192.168.10.20 ups.status单独看这一项。
PVE特有的一个坑:主机执行shutdown的时候,PVE的pve-guests.service会先把所有虚拟机按ACPI方式优雅关机,再关主机。所以你要关注的是虚拟机的关机超时时间,如果某台虚拟机卡在关机流程里,主机会等它超时然后强制断电,等于白配。我的做法是给关键虚拟机设置合理的onboot和关机超时,或者在guest内部也装一个NUT客户端,收到ONBATT就开始自己收尾。
提示:从机上的
SHUTDOWNCMD不要写成重启,写-h关机。断电场景下重启没有意义,反而可能在市电还没稳定时二次掉电。
5.3 TrueNAS SCALE 自带的UPS服务怎么用
TrueNAS SCALE内置了UPS服务,界面在"系统设置 → 服务 → UPS"里(不同版本位置略有差别,核心参数是一致的)。它内部就是NUT,所以配好之后,PVE那台机器可以直接把它当服务端。
本机直连UPS的情况下,配置项大致是这些:
- 驱动(Driver):USB连接选
usbhid-ups,网卡连接选snmp-ups,老式串口型号可能是blazer_ser或者厂商专用驱动。 - 端口(Port):USB选
auto,SNMP填UPS网卡的IP,串口填/dev/ttyS0之类。 - 标识符(Identifier):给这台UPS起个名字,比如
nasups。这个名字就是远程主机MONITOR那行里@后面的部分,必须一致。 - 监控用户 / 密码:用于本机upsmon,随便设一个强密码,写进界面里就好。
- 远程监控(Remote Monitor):如果要让TrueNAS作为从机去监控另一台NUT服务端,就勾上它,然后填远程主机IP、远程端口(默认3493)、远程UPS名称、以及远程端的用户名密码。
- 关机模式:一般选"电池电量低时关机"(UPS reaches low battery),因为"进入电池模式就关机"太激进了,闪断一下就把NAS关了,得不偿失。
- 关机计时器:可以额外设一个固定秒数,比如300秒,作为低电量信号的兜底。
这里的重点是互补关机(Complementary Shutdown)。在一个既有虚拟化主机又有存储的AIO环境里,正确的次序是:计算节点先关,存储节点后关。如果两者都监听同一台UPS,可以通过给不同的FINALDELAY和不同的关机触发条件来实现——计算节点在OB LB时立刻关,存储节点额外加一个延迟,或者在TrueNAS端把"关机计时器"设得比计算节点长几十秒。这个几十秒的差值,就是让iSCSI和NFS的写入彻底落盘的时间。
我自己踩过的一次坑是:PVE主机和TrueNAS同时收到LB信号,一起关机,结果TrueNAS的iSCSI target在PVE的虚拟机还没完全停掉的时候先下线了,虚拟机报了IO错误,重启后有两块虚拟磁盘需要fsck。后来把TrueNAS的关机计时器调到比PVE晚60秒,问题再没出现过。
5.4 SNMP网卡:远程UPS接入的正确姿势
如果你的UPS装了网络管理卡(主流品牌都有选配件),那就走SNMP路线。好处很明显:不受USB线长限制,一台UPS可以让十几台主机同时监控,而且能直接接进现有的监控系统。
NUT侧配置长这样:
[snmpups] driver = snmp-ups port = 192.168.10.50 mibs = apcc community = public pollfreq = 30 desc = "Rack UPS via NMC"mibs这个参数是SNMP路线里最关键也最容易配错的一项。不同品牌的UPS用的是不同的MIB结构:
| MIB取值 | 对应品牌/标准 | 说明 |
|---|---|---|
apcc | 主流美系品牌网卡 | 私有MIB,变量最全 |
mge | 部分欧系品牌 | 私有MIB |
eaton | 部分工业品牌 | 私有MIB |
ietf | RFC 1628标准UPS MIB | 通用但变量较少 |
netvision | 特定网卡系列 | 老型号常用 |
配错了mibs的典型表现不是连不上,而是连上了但读到的值是错的,比如剩余电量永远是0、输入电压显示成输出电流。排查方法是用调试模式跑一遍驱动:
/usr/lib/nut/snmp-ups -DD -a snmpups看它实际抓到的OID和映射结果,一眼就能看出哪个变量对不上。如果标准MIB能读到基本状态(ups.status、battery.charge)但读不到详细参数,说明该型号只支持标准MIB,这时候接受现实,能用状态做联动关机就够了。
另外,安全上别用public团体字跑在公网上。现代网卡基本都支持SNMPv3,NUT侧可以这样写:
[snmpups] driver = snmp-ups port = 192.168.10.50 mibs = apcc secLevel = authPriv secName = nutmon authPassword = authpass privPassword = privpass pollfreq = 30SNMPv3配置里有两个坑:一是secLevel必须是authPriv、authNoPriv、noAuthNoPriv之一,写别的直接报错;二是密码长度有下限(通常认证密码至少8位),太短会被静默拒绝。
5.5 关机编排:谁先死、谁后死
这一段是我认为整篇文章最值钱的部分,因为大多数教程讲到"能监控了"就结束了。
正确的关机顺序取决于依赖关系,不取决于设备大小:
- 应用层:数据库、虚拟机、容器。它们上面的数据最脏,必须最先收尾。
- 虚拟化层:PVE、其他Hypervisor。等Guest停完再停自己。
- 存储层:NAS、SAN、共享存储。等所有写入方下线后再停。
- 网络层:交换机、路由器,可以最后停,因为前面几层停止的过程中还要通信。
实现方式有三种,我按推荐度排序:
第一种,全用NUT,靠延迟错开。所有机器都监听同一台UPS,计算节点用默认的LB触发,存储节点通过TrueNAS的"关机计时器"延后60秒,网络设备如果支持NUT也接入并延后更久。优点是简单、没有额外组件。
第二种,用upssched做事件脚本。NUT自带upssched,可以按事件触发自定义脚本。比如在/etc/nut/upssched.conf里给不同事件配不同命令,收到ONBATT时先给管理员发通知、把非关键虚拟机迁移或停掉,收到LOWBATT时执行关机。这种方式适合逻辑复杂的场景。
第三种,上层编排工具统一调度。如果你有Ansible之类的工具,可以让UPS主机收到告警后调用一个清单任务,按依赖顺序逐台关机。复杂度最高,但可控性最好。
6. 容量与后备时间怎么算:VA、W和电池组的那点事
选型的时候最常见的两个问题是:"我这些设备要买多大的"和"这电池能撑多久"。这两个问题都不难,但需要知道几个概念。
6.1 VA和W不是一回事,功率因数要先算清
UPS标称容量有两个数:VA(视在功率)和W(有功功率)。两者的比值就是功率因数。老式UPS的输出功率因数常常只有0.6到0.7,也就是说一台1000VA的UPS实际只能带600到700W。现在的机型大多标0.9甚至1.0。
计算方法是把负载的有功功率加起来,再留30%的裕量给启动冲击和后期扩展:
所需UPS有功功率(W) = 负载总功率 × 1.3 所需UPS容量(VA) = 所需有功功率 / UPS标称功率因数举个实际的例子:一台NAS约80W,一台迷你主机约60W,一个8口PoE交换机带4路摄像机约120W,光猫加软路由约30W,合计290W。乘1.3是377W。如果选的UPS功率因数是0.9,那么VA数需要419VA,向上取一款600VA/360W的就不太够(360W < 377W),应该选800VA或1000VA的型号。
注意:激光打印机、带压缩机的设备、大功率音箱这类有冲击电流的负载,启动瞬间功率可能是标称的3到7倍。这类设备我建议不接UPS,或者单独接一台并留足裕量。
6.2 后备时间的估算,以及为什么厂商表格更靠谱
理论估算的公式是这样的:
可用能量(Wh) = 电池组容量(Ah) × 电池组电压(V) × 逆变效率(约0.85~0.9) × 有效放电系数(约0.6~0.7) 后备时间(分钟) = 可用能量(Wh) / 负载功率(W) × 60拿一组常见的双12V/9Ah电池举例:容量就是216Wh。乘0.9乘0.65,可用能量约126Wh。带200W负载,理论时间是38分钟。
但实测往往比这个短,原因是铅酸电池存在Peukert效应——放电电流越大,实际能放出的能量越少。所以真实的数字应该查厂商给出的"负载-时间"曲线表,一般在产品手册里。经验上,让负载控制在UPS额定有功功率的**30%到50%**之间,后备时间和电池寿命都会比较舒服。
还有一点:新电池的前几次放电容量会略低于标称,需要几次充放循环才能达到峰值,这不是故障。
6.3 电池是消耗品,温度决定它的寿命
蓄电池的寿命对温度极其敏感。以常见的阀控密封铅酸电池为例,设计浮充寿命通常是5年(25℃条件下),温度每升高10℃,寿命大约减半。放在机柜底部的UPS,夏天柜内温度到40℃的话,理论寿命就只剩两年多。
我一般建议这样管理:
- 每季度做一次自检(大部分UPS面板或者
upscmd -u user -p pass 设备 test.battery.start.quick可以触发)。 - 每年做一次带载放电测试,放电到50%左右就恢复市电,记录实际后备时间,和去年对比。掉到初始值的60%以下就该考虑换电池了。
- 电池组整组更换,不要只换坏的那一节。混用新旧电池会导致新电池被拖垮,这是我在现场见得最多的错误。
- 关注环境温度,机柜加装温控风扇的成本远低于三年换一次电池组。
7. 装完才是开始:验收、排错和几个反直觉的坑
7.1 上电验收该测哪几件事
新装或者换电池之后,我固定会做这四件事:
第一,空载和满载状态下的输出电压。用万用表量一下输出插座,市电模式应该在220V±5%以内,电池模式也要在这个范围。
第二,手动拔掉市电,掐表看切换。连接的设备如果有重启,说明切换时间不够,或者波形不兼容,这时候换UPS比换设备便宜。
第三,验证联动关机。别等真停电。可以用upsmon -c fsd模拟一次强制关机流程(这会真的关机,所以要在维护窗口做),或者临时把负载设备拔掉,观察监控和告警是否按预期触发。
第四,核对关机顺序。特别是存储和计算分离的架构,一定要实测一次,看存储是不是最后停的。
7.2 排错链路:从"没反应"到"关机顺序乱套"
我把常见现象、原因和排查顺序整理成一张表,遇到问题按这个路子走基本能定位:
| 现象 | 可能原因 | 排查动作 |
|---|---|---|
upsc无输出 | MODE配错、服务没起 | 看nut.conf的MODE,systemctl status nut-server |
| 认不到USB UPS | 驱动不匹配、被内核hid驱动占用 | 换usbhid-ups/blazer_usb试,看dmesg |
| 读到状态但电量恒为0 | mibs配错或者机型不支持该变量 | 调试模式跑驱动,核对OID |
| 从机连不上3493 | 防火墙、upsd.users权限 | ss -lntp看端口,核对master/slave |
| 收到LB但不关机 | SHUTDOWNCMD写错、权限不足 | 看/var/log/syslog里upsmon的输出 |
| 关机顺序乱 | 所有机器同一时刻触发 | 给存储节点加延迟,或改互补关机 |
| 频繁在OL/OB之间跳 | 输入电压临界、灵敏度设太高 | 调灵敏度档位,或检查线路压降 |
| 带载就重启 | 波形不兼容、容量不足、电池老化 | 换正弦波机型,重新算容量,测电池 |
7.3 几个反直觉的坑
第一个坑:UPS不是越"灵敏"越好。很多UPS有灵敏度档位,高档位对电压波动特别敏感,电网稍微一抖就切电池。结果市电质量一般的地方,UPS一年切几百次,电池两年就报废。我的做法是把灵敏度调到中低档,让UPS在小幅波动时用AVR扛过去,真掉电了再切电池。当然这个前提是你的输入电压范围够宽。
第二个坑:在线式UPS的漏电流可能让漏电保护器跳闸。在线式UPS内部的EMI滤波电路对地有漏电流,多台设备叠加上去,如果配的是30mA的漏电保护器,可能一合闸就跳。这种情况要用工业型漏电保护器(带延时或者更高阈值),或者单独给UPS回路。但这不是让你取消漏电保护,而是要做好回路划分。
第三个坑:多台UPS不能简单并联。想通过加一台UPS来扩容,如果两台UPS的输出直接并联,相位和电压的微小差异会产生环流,轻则报错,重则损坏。要扩容必须用支持并联的机型配并联套件,或者干脆换成一台更大容量的。
第四个坑:只监控不通知等于没监控。NUT配好了,日志里一堆事件,但没人看。我现在固定会把ONBATT和LOWBATT两个事件接到通知渠道,哪怕只是一封邮件。断电这种事,早三十秒知道和晚三十秒知道,处理方式完全不同。
再说个我自己的习惯:每台UPS都贴一张卡片,写清楚安装日期、电池更换日期、监控主机IP、UPS名称、以及上一次带载测试的实际后备时间。这东西看起来土,但真出事的时候,新接手的同事能在五分钟内搞清楚状况,比翻配置文件和文档快得多。
最后分享一个我用了很久的小技巧:在PVE或者TrueNAS上,把upsc的输出定期存一份到日志里,比如每个小时跑一次记录电池电压和负载率。这些数据攒上一年,你就能看出电池的衰减曲线,什么时候该换电池不再是"感觉不太行了",而是有数据支撑的判断。电池这东西,换早了浪费钱,换晚了可能就是一个凌晨两点的电话。