华为在线式UPS2000-A-1kVA不买snmp卡,用自带串口连接allinone+黑群晖实现通信关机教程-超长图文
前言:华为UPS2000A系列分为两种类型:一是标机standard backup time、二是长机long backup time。
官方更详细的型号讲解如下:
大家想了解更详细官方参数可以查看华为官方文档:https://support.huawei.com/enterprise/zh/data-center-facility/ups2000a-pid-256604979
为啥我选个这个玩意呢,主要还是当时一是看闲鱼冲动看到说机子全新是客户留下没用过的,卖450后面加50包邮拿下,而且对比山特的TGBox850快500了,还是后背式,(后背式ups默认是接市电输出不带稳压功能;在线式是通过整流升压电路在通过逆变器到负载端,也就是带稳压功能,无论市电浮动都是输出220v),然后一冲动就买下了。现在有点后悔是风扇有点吵,跟笔记本开狂暴模式差不多,嗡嗡叫,准备换个低转速风扇了;还有一点是功耗稍微有点高,开机稳定下来约28w左右,这主要是给电池充电占部分,官方手册写的1kVA款充电电流1A,电池组是2个12v9ah串联组成24v9ah的,这么一算俯冲充电大概24w左右了,而且开机后是一直给电池浮充的不能关闭,可能也是安全保障吧。
配上我的环境:PVE8.1.4加黑群晖arpl-10.4版,硬件:n6000es+8g内存+两pdd买的东芝 14t mg08和一块14年的希捷1t老盘(当年初中第一台电脑硬盘,陪我度过初中,高中,大学,到现在工作)
好了废话讲到这,直接入主题:
https://zhuanlan.zhihu.com/p/431529913
首先配上大佬驱动适配链接,也是看到这篇文章后我才买的华为这款ups理由,没有这适配只能乖乖买500大洋的snmp卡,当然你也可以完全参考这篇文章去配置,作者也是十分详细的讲解到每一环节,我剩下补通一下小白配置的关键点吧。
xr_serial 1-1.2:1.1: xr_serial converter detectedusb 1-1.2: xr_serial converter now attached to ttyUSB0
如果有现实xr_serial显示代表驱动没识别到,如果没有驱动或者系统不支持就显示cdc_acm字样:如果你是esxi没有直通usb给linux也是显示如此。(新款ups可能显示ch341字样,因为换芯片了)
cdc_acm 1-1.2:1.0: ttyACM0: USB ACM device
3.接下来安装依赖库:
apt install libmodbus-devapt install pkgconfapt install nut还有以下一些库:(前面的apt install我就不打了)make,autoconf,automake,gcc,build-essential,libtool
4.编译 UPS2000 驱动
使用git获取nut代码库:
git clone https://github.com/networkupstools/nut.git --depth=1
进入代码目录:
cd nut/
生成autotools构建文件:
./autogen.sh
配置编译选项:
./configure --with-modbus --with-user=nut --with-group=nut --datadir=/usr/share/nut --sysconfdir=/etc/nut --includedir=/usr/include --with-statepath=/run/nut --with-pidpath=/run/nut --with-altpidpath=/run/nut --with-drvpath=/lib/nut --with-udev-dir=/lib/udev --with-systemdsystemunitdir=/lib/systemd/system --with-systemdshutdowndir=/lib/systemd/system-shutdown
手工编译:
# 单独编译 include 目录cd includemakecd ..# 单独编译 commons 目录cd common/makecd ..# 单独编译 huawei-ups2000 驱动cd driversmake huawei-ups2000
此时能看到编译好的 huawei-ups2000 可执行文件:
ls -l huawei-ups2000-rwxrwxr-x 1 user user 362872 Sep 19 09:54 huawei-ups2000
复制 huawei-ups2000 到 NUT 工作程序库:
在 /lib/nut 目录(Debian)下应该能看到许多驱动程序,建议mobaxterm的自带图形管理文件夹查看更方便(如果没有找到可以查看此作者详细讲解的位置,链接在上面)
cp huawei-ups2000 /lib/nut
至此驱动完整就基本完成了,剩下是配置在pve和黑群晖下查看ups信息。
1.首先cd /etc/nut/ 里面此时看到几个.conf结尾文件,就些就是nut客户端和服务端的配置文件了。2.进入nut.conf文件,在最后插入,主要别加#,或者在#后面加,这是注释,不执行的。MODE=netserver3.进入usp.conf文件,在最后插入:maxretry = 3[ups] #名字不建议改,改后黑群晖可能认不出 driver = huawei-ups2000 port = /dev/ttyUSB0 #USB0需要你查看你的USB端口号是多少,用dmesg -d查看,USB1就改成1 desc = "Huawei" pollinterval = 1 ignorelb override.battery.charge.low = 20 #20代表剩余20就开始执行脚本关机,可以随意改4.进入upsd.conf文件,在最后加入:LISTEN 0.0.0.0 34935.进入upsd.users文件,在最后插入:[monuser] password = secret upsmon master 6.进入upsmon.conf文件,在后面插入:RUN_AS_USER rootMONITOR ups@localhost 1 nutuser password masterNOTIFYMSG ONBATT"UPS %s on battery"NOTIFYMSG ONLINE"UPS %s on line power"NOTIFYMSG LOWBATT"UPS %s battery is low"NOTIFYCMD /usr/sbin/upsschedNOTIFYFLAG ONLINE SYSLOG+WALL+EXECNOTIFYFLAG ONBATT SYSLOG+WALL+EXECNOTIFYFLAG LOWBATT SYSLOG+WALL+EXEC7.进入upssched.conf文件,在后面插入:CMDSCRIPT /etc/nut/upssched-cmdPIPEFN /etc/nut/upssched.pipeLOCKFN /etc/nut/upssched.lock# 断电使用电池开始计时30秒,计时后,执行upssched-cmd脚本,带shutdown_all参数AT ONBATT * START-TIMER shutdown_all 30# 来电后,停止shutdown_all计时AT ONLINE * CANCEL-TIMER shutdown_all# 来电后,执行脚本,带start_all参数AT ONLINE * EXECUTE start_all# 低电量,执行脚本,带shutdown_self参数AT LOWBATT * EXECUTE shutdown_self8.在此文件夹下新建一个名为 upssched-cmd.sh 的关闭虚拟机的脚本:创建完后记得chmod +x upssched-cmd.sh 给这脚本赋予执行权限#! /bin/shcase $1 in shutdown_self) #关闭所有 upsmon -c fsd ;; shutdown_all) pvesh create /nodes/pve/qemu/100/status/stop #改成你自己的虚拟机号 pvesh create /nodes/pve/qemu/101/status/stop #改成你自己的虚拟机号 #可以继续自己按照上面格式添加你自己的 ;; start_all) #开启所有 pvesh create /nodes/pve/qemu/100/status/start #改成你自己的虚拟机号 pvesh create /nodes/pve/qemu/101/status/start #改成你自己的虚拟机号 #可以继续自己按照上面格式添加你自己的 ;; *) logger -t upssched-cmd "Unrecognized command: $1" ;;esac9.设置自动启动:systemctl enable nut-driver nut-server nut-monitor10.重启nut进程:systemctl restart nut-server nut-client nut-driver11.最后输入:upsc ups@localhost 此时能看到ups的全部参数了,至此到处结束了能看到ups的全部参数
5.关于usb设备权限问题,该问题可能导致重启后因为权限不足无法连接ups。
可以查考以下链接:https://blog.csdn.net/qq_46107892/article/details/123229674
6.还有关于黑群晖7.1版本的问题:现在版本下设置自定义时间后只能进入安全模式,黑群晖并不会关机,黑群晖也不会断开内部存储器,毕竟是黑群晖肯定不能像白裙那样断开硬盘。
所以我还是建议像我这样设置一个时间,而且这个时间最好看你ups续航时间,如果担心就设置2分钟左右,这样就断电启动ups两分钟后黑群晖自动关机,剩下pve就按照你设置的20%电时关闭pve,不然pve关机时可能没法让直通给黑裙的硬盘正常关机了。
如果选与服务器设置时间此选项,好像只能跟随编写的脚本关机,脚本关黑群晖虚拟机比较慢,好像也会让硬盘关机,请自行测试。
设置完后,然后使用 SSH 软件,sudo -i 以root 用户登录群晖,修改 /usr/syno/bin/synoups 文件,找到 UPSSafeMode () ,在最后面加上一行 poweroff。
7.至此已经完全结束,华为ups2000a系列已经完全驯服,不用花500买snmp卡当大冤种了,最后附上我参考配置的链接:
https://blog.csdn.net/ytmayer/article/details/131153293
https://www.yii666.com/blog/23714.html
https://blog.cyida.com/2023/2JD7SH7.html
http://www.heyihu.com/NAS/3445.html
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~