UPS 与电压保护:断电应急预案

一个停电夜晚的教训

很多自建玩家把预算花在 CPU、硬盘、机箱上,唯独漏掉那个方方的黑盒子——UPS(不间断电源)。直到某个夏夜雷雨交加,整栋楼跳闸,你的 NAS 正在跑阵列同步,文件系统元数据写到一半。运气好的话重启后自动恢复,运气不好就是一整夜的 fsck 或者更糟的数据损坏。这种故事的结局通常都一样:第二天一早就下单了 UPS。

停电对 NAS 的伤害分三个层次。最轻的是直接断电,正巧没在写数据,重启了事;中等的是写操作中断,造成文件系统不一致,Btrfs/ZFS 有校验能自救一部分,ext4 就得跑 fsck;最惨的是频繁跳闸,硬盘磁头反复紧急复位(就是那种让人牙酸的咔哒声),机械盘的寿命按次扣。所以 UPS 的作用不是让你在停电时继续看片,而是给 NAS 一个优雅关机的机会。

家用 UPS 怎么选:三个指标就够

市面上 UPS 参数一大堆,家用其实只看三点。第一是容量(VA/W),NAS 功耗低(整机 30~80W 的居多),所以最小的 600VA/360W 后备式 UPS 都足够撑十几分钟关机。第二是接口,关键不是插孔数量而是有没有 USB 口——有了它,NAS 才知道市电断了,才能在电池耗尽前自动关机,否则 UPS 只是个会滴滴响的延长线,停电时它的全部工作就是陪你一起把 NAS 烧坏。买之前务必翻一下商品详情页的接口特写,很多便宜型号外观一样、插孔也够,唯独少了这颗 USB,这是新手最容易踩的规格陷阱。第三是波形,后备式 UPS 切到电池时输出是模拟正弦波,多数电源能接受,但如果你用的是带主动 PFC 的电源(小体积高功率的型号常见),稳妥起见选在线互动式甚至在线式,轻则电源啸叫,重则 UPS 与电源互相伤害。

别在容量上过度消费,这是家用 UPS 选购的第一条原则,记住一句话:买小点没关系,没通讯口才是大问题。算一下你的 NAS 加上路由器的总功率,乘以二就是合适的 UPS 容量,这个余量既考虑到电池老化,也给以后加硬盘留出了空间。连续跑十几年不换电池的理想主义不适合家用,耗材就是耗材。撑 10 分钟远比撑 2 小时便宜,毕竟目标是「正常关机」而不是「停电继续用」。多出来的预算不如买带 AVR(自动稳压)功能的型号,农村或老旧小区电压波动大,AVR 比电池更常救场。

指标 家用建议 说明
容量 600~1000VA 按 NAS+路由器功率的两倍选
接口 必须有 USB 用于 NAS 感知断电并自动关机
波形 后备式够用 主动 PFC 电源选在线互动式更稳

软件联动:让 NAS 自己关机

买回来插上是第一步,第二步是配置断电自动关机。通用标准是 Network UPS Tools(nut),几乎所有 NAS 系统都有插件或内置支持。OMV 里装 nut 插件,把 USB 线连好,配置里选 driver(常见 usbhid-ups)、填 UPS 名字,启动服务后用 upsc ups@localhost 能读到电压和电池电量就说明通了。TrueNAS 在「Services → UPS」里一步到位,飞牛和 unRAID 也都有对应开关。

品牌方面,APC 自家软件生态好但贵,山特(SANTAK)、雷迪司等国产型号 nut 兼容性也不错,买之前搜一下「型号 + nut 驱动」最稳妥。一个常见坑是某些「不中断电源」其实是小容量充电宝式产品,根本没有 USB 通讯,买的时候认准规格表里的通讯接口。远程配置这些服务时,SSH 操作见 ssh,nut 的配置文件都在 /etc/nut 下,改完跑一遍 systemctl restart nut-monitor 验证。

断电后的标准流程

那个延时参数:比你想的重要

nut 配置里有个 ondelay 和 offdelay 参数值得单独说说。offdelay 是断电后多久开始关机(比如 30 秒),防止电压抖动误触发;ondelay 是来电后多久允许开机。家用场景建议别把流程设计得太激进:断电立刻关机,可能 30 秒后电就来了,NAS 却已经关了;等太久又费电池。实践上 offdelay 设 60 秒上下是稳妥的折中。

一次断电事件的时间轴

如果你希望来电后 NAS 自动开机,需要主板支持 ACPI 唤醒并在 BIOS 里打开「AC Power Recovery」选项,配合 nut 的关机命令设计成「关机前给开机任务发信号」。这属于进阶玩法,家用一般来电后手动按一下更可控,毕竟没人希望半夜三点 NAS 自己嗡嗡转起来。

分层保护:UPS 之外的几道防线

UPS 只解决停电,电网还有别的毛病。浪涌(打雷、大功率电器启停)靠 UPS 自带的浪涌插座是不够的,贵的东西(NAS、交换机)值得单独配一个带 EMI 滤波的防雷插排。老旧小区零地混接或接地不好的房子,别省这个钱。第二道防线是硬盘自身的保护机制:现代机械盘断电时利用主轴剩余转速把磁头紧急归位,厂家宣传得很好听,但这掩盖不了频繁断电的累积伤害——每次紧急泊头都是一次没有缓冲的机械动作,一年遇上十几回,硬盘的故障率曲线会悄悄提前。第三道是文件系统层面,Btrfs/ZFS 的校验和快照让「断电后数据对不对」变成可验证的问题,而不是拼运气。

所以真正的应急预案是组合拳:UPS 兜底断电、防雷插排挡浪涌、带校验的文件系统保数据完整性、定期快照给一个后悔药。四层里缺任何一层,都有一类故障能打穿你的防线——这是家用最容易忽视的系统性问题。

一个极简的应急预案模板

说完硬件与系统,给一份可以贴在 NAS 上的两分钟预案。停电发生时不用慌,按这个顺序处理即可,步骤简单到家人也能照着做,把「关键时刻靠感觉」变成「关键时刻靠流程」。

步骤 动作 目的
1 别按任何电源键 UPS 会自动处理,乱按反而打断关机
2 打开手机查 UPS App 或听报警声 确认是断电不是 NAS 死机
3 等待 NAS 自动关机(约 2~5 分钟) 硬盘停转后再断电也安全
4 长时间停电(超 2 小时)关掉 UPS 开关 省电池,避免 UPS 过放
5 来电后开机,观察指示灯与阵列状态 确认阵列、共享、应用逐个上线

预案之外,每半年做一次「拔电演习」很有必要:故意拔掉 UPS 输入,观察 NAS 是否在预期时间内自动关机。演习能发现线松了、驱动更新失效、电池老化这些平时藏起来的问题。我建议把演习日期定在某个固定日子(比如每年换季那天),否则「找时间做」永远等于「永远不会做」。演习完顺手把这次的电池续航记在 NAS 的备忘录里,几年下来就是一份清晰的电池健康档案。电池一般三到五年衰退明显,看到原本能撑 15 分钟现在 5 分钟就报警,就是该换电池的信号。

给已有 NAS 的补丁方案

如果你的 NAS 已经裸奔了一年,现在补 UPS 也来得及,而且往往比新装更有体会——你已经知道家里多久停一次电、断电时 NAS 在干什么。补装分三步:先买 UPS 插上(这一步当天就完成,哪怕不配置也立刻消除了最坏情况);再装 nut 插件、连 USB 线、验证 upsc 能读到数据;最后把 offdelay 这类参数调到适合你家电环境的值。全部弄完花不了一个周末。

补装时最容易卡在第二步,因为 USB 通讯需要驱动匹配。 nut 官方支持的型号清单很长,国产品牌里山特的兼容性口碑最好,其次是雷迪司、克雷德这些。实在不支持的型号也有土办法:有些 NAS 系统支持轮询 UPS 的网络状态或用 SNMP,不过到了这一步,换一个支持的型号比折腾土办法更省时间。折腾精神要用在对地方,别在「让 UPS 说话」这件事上耗尽耐心。

维护习惯

UPS 的日常维护极低成本但低到容易被忘。一年做一次电池自检(多数 UPS 有按钮或软件命令),定期擦一下散热孔的灰,别把 UPS 塞进密闭柜子里——它自己也要散热。把 UPS 的采购日期和上次自检日期写在标签上贴在机器侧面,这是「维护比维修便宜」最典型的例子。另外提一句:UPS 的电池是耗材不是耐用品,算上三五年一次的换电池成本,整机的持有成本并不低,买家里那些花哨的高容量型号之前先想清楚自己是否用得上。

电力保护之外,整套服务器的网络基础(网段、端口预留、远程登录)同样值得花一个周末梳理,jsjwlmst 里覆盖了这些前提知识;断电预案的执行细节都靠远程登录查看,SSH 熟练度见 ssh。

延伸阅读

  • 下一章《Docker 部署常用服务:相册与影音》:基础设施稳了,开始往上面放应用
  • ssh:断电演习与远程查看都离不开的远程登录
  • jsjwlmst:网段与基础网络知识,给服务器一个可靠的网络环境