跳转到内容

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 方案前,确认能回答:

  1. 这台 UPS 的额定容量是否明显高于实际负载(不是刚好卡满)。
  2. 断电后触发自动关机的软件(如 NUT)选择的驱动是否在该 UPS 厂商的兼容列表里。
  3. 如果一台 UPS 要保护多台机器,关机顺序是否已经规划好,不会出现互相依赖的死锁(比如存储机比计算机先关,导致计算机来不及正常关闭)。
  4. 用强制关机测试验证过流程真的会触发,而不是只在断电那一刻才第一次尝试。

常见问题 ​

UPS 能不能只用来防止跳闸这类短暂波动? 可以,很多离线式 UPS 对短暂的电压跌落和瞬断已经很有效,不一定每次都真的进入电池供电,这也是它们比想象中更常"救场"的原因。

没有 UPS,只靠 ZFS/RAID 冗余够不够? 不够。冗余解决的是"某块硬盘坏了",断电导致的写入中断是另一类风险,即使是有冗余的存储池,不正常关机也可能带来文件系统或数据库层面的不一致。

UPS 电池能用多久,需要监控吗? 电池会随时间老化,容量逐渐下降。UPS 自身通常有自检功能,也可以通过 NUT 这类工具定期读取电池状态,作为更换计划的依据。

延伸阅读 ​

Proxmox VE 非官方中文使用指南,与 Proxmox Server Solutions GmbH 无隶属关系。