告别数据丢失!UPS为NAS保驾护航
前言
今年在经历了几次意外断电之后,痛下决心在双十一一定要买一个UPS,为硬盘上的数据加一层保障。
家庭使用场景下,我并不关心UPS能够为NAS提供多长时间的续航,我只需要UPS能够自动通知到NAS,让NAS停下手中的工作,保存好数据,安全的关机。价格上也不是太贵,使我能够接受的范围。所以我选择了以下这款UPS:
另外注意到一款更便宜一些的,但是这款不支持NAS自动关机,需要谨慎购买:
物理安装
到货之后,我们立刻把UPS开始接上:
接上UPS的电源,打开电源开关,开关上绿灯亮起。
连接电源线同时接上它与NAS的USB通讯线就搞定了,简单易用。
连接通讯线整体架构
我这里黑群晖是起在Esxi之上的:
UPS的USB通讯线接物理主机的USB口
DSM与Esxi的VM Kernel网卡可以通过网络互通
整体架构图NAS配置
我这里是一个黑群晖,自己组的机器,底层安装Esxi,再装了一个DSM的虚机,所以在NAS配置方面,要比白群晖多一些步骤。
物理连线完成后,来到Esxi的控制台,编辑DSM所在的虚机配置:
添加USB设备添加USB设备进虚机,我们已经可以看到UPS已经被识别到了
添加UPS打开虚机电源,等待群晖启动完毕,进入群晖的配置界面
进入不断电系统,启用UPS支持,选择USB UPS,正常情况下,已经可以识别到UPS的信息和电池电量的信息
检查UPS连接状态供电的模式可以选择群晖进入关机前的等待时间,这里我选择等待30s后进入关机状态。
等待30s是因为怕突然停电之后又来电,给了UPS一个等待判断的时间。
群晖部分的配置到此结束了,白群晖可以通过上述配置实现NAS的断电自动关机操作。
NUT(Network UPS Tools)
但是作为黑群晖,以上是完全不够的,它仅仅只能帮助你实现虚机层面的关机,别忘了我们底层还有一个虚拟化操作系统Esxi呢。
目前市面上家用的UPS应该都是不支持ESXI的断电的,毕竟ESXI本身也是企业级的虚拟化操作系统,那么我们就要动用民间的智慧了。
这里需要用到的就是Nut(Network UPS Tools),Network UPS Tools (NUT) 是一个开源软件包,用于管理和监控不间断电源(UPS)设备。它支持多种类型的UPS,并且可以在多个操作系统上运行,包括Linux、FreeBSD、NetBSD、OpenBSD、macOS等。
群晖本身可以配置为一个Nut Server,IP地址填入Esxi的IP,如下图所示:
配置Esxi地址ESXI的配置
然后在Esxi上安装一个NutClient,安装包可以到这个Github仓库下载https://github.com/rgc2000/NutClient-ESXi
安装方式也很简单,在Releases下载最新版本的安装包软件
下载安装包将文件上传到Esxi的存储
上传安装包配置ESXI安装包的接受级别为社区、
修改接受级别通过SSH登录NAS后台,找到安装包文件
检查文件将文件复制到/tmp下进行安装,或者使用绝对路径进行安装,等待安装完成
esxcli software vib install -d /tmp/NutClient-ESXi-2.8.2-2.6.2-offline_bundle.zip
安装nutclient安装完成后,通过命令行检查与群晖NUT服务器的连通性,能够正确输出UPS信息,则视为正常
/opt/nut/bin/upsc ups@
upsc连接状态NUTClient配置
安装完成之后,进入Esxi高级设置里,以nut为关键词搜索
NutClient配置必须修改的键值为:
UserVars.NutUpsName:ups@
UserVars.NutUser:monuser
UserVars.NutPassword:secret
注意修改为群晖对应的ip,上述的User和Password为群晖默认值
选择修改的键值为:
UserVars.NutFinalDelay
UserVars.NutOnBatteryDelay
FinalDelay为电量低的情况下等待关闭的时间
OnBatteryDelay为使用电池的情况下等待关闭的时间
这里建议稍微预留一些时间给群晖虚机一个关闭的时间
注意,每次配置修改都需要重启NutClient服务使配置生效
配置服务自启动
在Esxi服务自启动的位置找到NutClient,选择“随主机启动和停止”,确保NutClient能够自动启动
配置服务自启动检查服务的状态
通过Esxi命令行检查服务状态,看到Startup successful成功:
cat /var/log/syslog.log | grep upsmon
日志查询连接状态自此,整个NUT的联动配置完成了,可以进行断电测试了。
通讯告警
作为一个附加项目,我希望NAS感知断电后,第一时间通知到我。所以需要针对群晖做一些告警通知的选项。
防止消息渠道失败,我这里配置了2个渠道进行告警通知,一个是邮件渠道,一个是Webhook。
邮件通知渠道
企业微信Webhook邮件配置比较简单,Webhook需要自行创建企业微信,如果不想自建也可以采用Server酱的通知渠道。
企微webhook配置
文本推送断电测试
通过拔掉UPS的电源线,UPS电源灯开始绿灯闪烁,UPS侦测到市电断开,群晖立即发送通知
邮件告警
企业微信告警两个告警通知渠道都受到了告警,随后群晖虚机关闭,等待一段时间后,物理服务器关闭,整体UPS断电测试成功。
结语
自此,整体环境配置、测试成功,再也不用担心突然的断电丢失数据,损坏硬盘了。
这款UPS不仅支持白群晖,同时也支持黑群晖哦!
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

SADOUDONG
校验提示文案
SADOUDONG
校验提示文案