告别数据丢失!UPS为NAS保驾护航

2024-11-17 13:31:12 3点赞 10收藏 3评论

前言

今年在经历了几次意外断电之后,痛下决心在双十一一定要买一个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设备

添加USB设备进虚机,我们已经可以看到UPS已经被识别到了

添加UPS添加UPS

打开虚机电源,等待群晖启动完毕,进入群晖的配置界面

进入不断电系统,启用UPS支持,选择USB UPS,正常情况下,已经可以识别到UPS的信息和电池电量的信息

检查UPS连接状态检查UPS连接状态

供电的模式可以选择群晖进入关机前的等待时间,这里我选择等待30s后进入关机状态。

等待30s是因为怕突然停电之后又来电,给了UPS一个等待判断的时间。

群晖部分的配置到此结束了,白群晖可以通过上述配置实现NAS的断电自动关机操作。

NUT(Network UPS Tools)

但是作为黑群晖,以上是完全不够的,它仅仅只能帮助你实现虚机层面的关机,别忘了我们底层还有一个虚拟化操作系统Esxi呢。

目前市面上家用的UPS应该都是不支持ESXI的断电的,毕竟ESXI本身也是企业级的虚拟化操作系统,那么我们就要动用民间的智慧了。

这里需要用到的就是NutNetwork UPS Tools),Network UPS Tools (NUT) 是一个开源软件包,用于管理和监控不间断电源(UPS)设备。它支持多种类型的UPS,并且可以在多个操作系统上运行,包括Linux、FreeBSD、NetBSD、OpenBSD、macOS等。

群晖本身可以配置为一个Nut Server,IP地址填入Esxi的IP,如下图所示:

配置Esxi地址配置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安装nutclient

安装完成后,通过命令行检查与群晖NUT服务器的连通性,能够正确输出UPS信息,则视为正常

/opt/nut/bin/upsc ups@

upsc连接状态upsc连接状态

NUTClient配置

安装完成之后,进入Esxi高级设置里,以nut为关键词搜索

NutClient配置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

邮件配置比较简单,Webhook需要自行创建企业微信,如果不想自建也可以采用Server酱的通知渠道。

企微webhook配置企微webhook配置文本推送文本推送

断电测试

通过拔掉UPS的电源线,UPS电源灯开始绿灯闪烁,UPS侦测到市电断开,群晖立即发送通知

邮件告警邮件告警企业微信告警企业微信告警

两个告警通知渠道都受到了告警,随后群晖虚机关闭,等待一段时间后,物理服务器关闭,整体UPS断电测试成功。

结语

自此,整体环境配置、测试成功,再也不用担心突然的断电丢失数据,损坏硬盘了。

这款UPS不仅支持白群晖,同时也支持黑群晖哦!

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

展开 收起
3评论

  • 精彩
  • 最新
  • 大佬你好,我安装后命令/opt/nut/bin/upsc ups@ip,一直提示:Error: Access denied,重启esxi也不行,环境:esxi下安装群晖SA6400_7.2。我找到群晖的/usr/syno/bin/synoupscommon文件,里面账号密码确实是monuser与secret,但就是提示Error: Access denied,请教大佬怎么解决

    校验提示文案

    提交
    改完配置需要重启服务生效

    校验提示文案

    提交
    好的谢谢

    校验提示文案

    提交
    收起所有回复
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
10
扫一下,分享更方便,购买更轻松