外观
UPS 与断电保护
不间断电源(Uninterruptible Power Supply,UPS)解决的是虚拟化场景里一个很实际的问题:意外断电时,正在写入的数据可能损坏,而不只是"这次没保存的东西丢了"。这篇讲清楚 UPS 保护的是什么、怎么选,以及它和 PVE 之间靠什么原理配合。本文只讲原理和选型要点,具体的软件配置步骤请参照 UPS 厂商文档或 Network UPS Tools 官方文档。
UPS 保护的是什么,不是什么
- 保护的是:断电瞬间到电池耗尽之间的这段时间,让宿主机有机会正常关机,而不是直接失去供电。正常关机意味着文件系统和数据库有机会把缓存中的数据落盘,减少损坏概率。
- 不保护的是:UPS 不能防止硬盘本身损坏,也不能替代数据备份——市电恢复正常后如果没有自动化的关机流程,UPS 电量耗尽时宿主机照样是一次"硬拔电源"式的断电。
UPS、PLP、备份是三件不同的事
UPS 保护的是"整台机器的持续供电";企业级 SSD 的掉电保护(PLP)保护的是"单块盘在断电瞬间的数据一致性";备份保护的是"删错了、坏了、需要恢复历史版本"。三者互不替代,缺哪个都有对应的风险敞口没被覆盖。
UPS 的三种常见类型
| 类型 | 工作方式 | 特点 | 适合谁 |
|---|---|---|---|
| 离线式 / 后备式(Offline / Standby) | 平时直接输出市电,断电后切换到电池,切换有短暂延迟 | 便宜,够用 | 家用场景,负载对毫秒级切换延迟不敏感 |
| 在线互动式(Line-Interactive) | 平时对市电做电压调节,断电切换更快,部分型号能处理轻微的电压波动而不切电池 | 价格适中,稳压能力更好 | 电网质量一般、想要更好保护的家庭/小型机房场景 |
| 在线式 / 双变换(Online / Double-Conversion) | 持续把市电转换成直流再逆变成交流输出,理论上零切换时间 | 价格高、有额外能量转换损耗 | 对供电质量要求极高的生产环境 |
家庭实验室和小团队场景,离线式或在线互动式基本够用,双变换在线式的价格和维护成本通常超出实际需要。
选购时看这几项
- 容量(VA / W):算清楚要保护的设备总功率(宿主机 + 交换机等关键设备),选一台额定容量有余量的型号,不要卡着满载买。
- 续航时间只要够触发安全关机:不需要按"扛过整晚停电"来选型,只要够让自动化流程完成一次正常关机(通常几分钟)。真正在意长时间停电,应该考虑的是发电机之类的方案,而不是加大 UPS 电池。
- 通信接口:
- USB 直连:最常见,UPS 直接接到宿主机,宿主机上的软件读取状态并在低电量时触发关机。
- 网络卡 / SNMP 管理卡:部分中高端 UPS 支持网络管理卡,可以在局域网内被多台机器共享监控,适合有不止一台需要保护的设备的场景。
- 电池是否可更换、更换成本:UPS 电池是消耗品,通常两到五年需要更换,购买前了解好配套电池的可获得性和价格,这是长期使用成本的一部分。
UPS 和 PVE 之间靠什么原理配合
Proxmox VE 本身没有内置的 UPS 管理界面,UPS 的监控和自动关机是通过标准的 Debian 软件包实现的,最常用的是 Network UPS Tools(NUT)——这是一个和 Proxmox 无关、被广泛使用的开源工具,遵循下面的基本架构:
- 驱动层:
upsd服务通过 USB(usbhid-ups驱动)或网络 SNMP(snmp-ups驱动)读取 UPS 的实时状态(市电是否正常、剩余电量、预计续航)。 - 监控层:
upsmon根据状态判断什么时候触发关机流程。 - 主从(server/client)架构:一台机器直接连接 UPS 硬件作为"服务端",局域网内其他机器可以作为"客户端"订阅同一个断电事件,实现一台 UPS 保护多台机器——但这意味着这些机器要在断电后的有限时间窗口内依次完成关机,需要提前规划好谁先关、谁后关。
触发关机后,shutdown 命令本身会让 PVE 走正常关机流程,包括尝试正常关闭运行中的虚拟机和容器,而不需要额外脚本单独处理每台客户机。
测试的重点是"断电后能不能正常关机",不是"UPS 会不会亮灯"
UPS 买回来插上电、指示灯正常,只证明硬件通电。真正要验证的是软件层面能不能正确识别断电事件并触发关机流程。大多数 UPS 监控软件支持在不真的拔电源的情况下手动触发一次"强制关机"(Forced Shutdown)测试,用这个方式验证比真的拔电源更安全、更可重复。
和 BIOS 断电恢复设置的关系
UPS 解决的是"断电瞬间怎么安全关机",安装前的 BIOS/UEFI 设置里提到的"断电恢复行为"(Restore on AC Power Loss)解决的是"来电之后机器要不要自动开机"。两者配合起来才是完整的一套:UPS 电量耗尽前安全关机,市电恢复后主板自动开机,减少人工介入。
检查结果
规划一套 UPS 方案前,确认能回答:
- 这台 UPS 的额定容量是否明显高于实际负载(不是刚好卡满)。
- 断电后触发自动关机的软件(如 NUT)选择的驱动是否在该 UPS 厂商的兼容列表里。
- 如果一台 UPS 要保护多台机器,关机顺序是否已经规划好,不会出现互相依赖的死锁(比如存储机比计算机先关,导致计算机来不及正常关闭)。
- 用强制关机测试验证过流程真的会触发,而不是只在断电那一刻才第一次尝试。
常见问题
UPS 能不能只用来防止跳闸这类短暂波动? 可以,很多离线式 UPS 对短暂的电压跌落和瞬断已经很有效,不一定每次都真的进入电池供电,这也是它们比想象中更常"救场"的原因。
没有 UPS,只靠 ZFS/RAID 冗余够不够? 不够。冗余解决的是"某块硬盘坏了",断电导致的写入中断是另一类风险,即使是有冗余的存储池,不正常关机也可能带来文件系统或数据库层面的不一致。
UPS 电池能用多久,需要监控吗? 电池会随时间老化,容量逐渐下降。UPS 自身通常有自检功能,也可以通过 NUT 这类工具定期读取电池状态,作为更换计划的依据。