华为在线式UPS2000-A-1kVA不买snmp卡,用自带串口连接allinone+黑群晖实现通信关机教程-超长图文
前言:华为UPS2000A系列分为两种类型:一是标机standard backup time、二是长机long backup time。
UPS 产品型号官方更详细的型号讲解如下:
大家想了解更详细官方参数可以查看华为官方文档: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左右了,而且开机后是一直给电池浮充的不能关闭,可能也是安全保障吧。
官方图也是标的28w,也印证了这点。相关电气参数配上我的环境:PVE8.1.4加黑群晖arpl-10.4版,硬件:n6000es+8g内存+两pdd买的东芝 14t mg08和一块14年的希捷1t老盘(当年初中第一台电脑硬盘,陪我度过初中,高中,大学,到现在工作)
闲鱼的硬盘笼和背板188华为的dcdc降压模块给硬盘供电贴着华为标的光宝LITEON PS-2751-7H 750w csps服务器电源,闲鱼40之前大火的n6000es 抖音380不带电源拿下,加上佳翼jms585 pdd80ups本体好了废话讲到这,直接入主题:
https://zhuanlan.zhihu.com/p/431529913
首先配上大佬驱动适配链接,也是看到这篇文章后我才买的华为这款ups理由,没有这适配只能乖乖买500大洋的snmp卡,当然你也可以完全参考这篇文章去配置,作者也是十分详细的讲解到每一环节,我剩下补通一下小白配置的关键点吧。
数据线链接ups背后的usb tybe-b口到你的主机上,我的pve默认是Debian底层所以可以直接配置,如果是esxi要安装虚拟个linux环境,什么Debian和Ubuntu这些都行,记得要直通usb给它们。
然后在pve shell下敲dmesg -d查看:
xr_serial 1-1.2:1.1: xr_serial converter detected
usb 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-dev
apt install pkgconf
apt 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 include
make
cd ..
# 单独编译 commons 目录
cd common/
make
cd ..
# 单独编译 huawei-ups2000 驱动
cd drivers
make 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=netserver
3.进入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 3493
5.进入upsd.users文件,在最后插入:
[monuser]
password = secret
upsmon master
6.进入upsmon.conf文件,在后面插入:
RUN_AS_USER root
MONITOR ups@localhost 1 nutuser password master
NOTIFYMSG ONBATT "UPS %s on battery"
NOTIFYMSG ONLINE "UPS %s on line power"
NOTIFYMSG LOWBATT "UPS %s battery is low"
NOTIFYCMD /usr/sbin/upssched
NOTIFYFLAG ONLINE SYSLOG+WALL+EXEC
NOTIFYFLAG ONBATT SYSLOG+WALL+EXEC
NOTIFYFLAG LOWBATT SYSLOG+WALL+EXEC
7.进入upssched.conf文件,在后面插入:
CMDSCRIPT /etc/nut/upssched-cmd
PIPEFN /etc/nut/upssched.pipe
LOCKFN /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_self
8.在此文件夹下新建一个名为 upssched-cmd.sh 的关闭虚拟机的脚本:
创建完后记得chmod +x upssched-cmd.sh 给这脚本赋予执行权限
#! /bin/sh
case $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"
;;
esac
9.设置自动启动:
systemctl enable nut-driver nut-server nut-monitor
10.重启nut进程:
systemctl restart nut-server nut-client nut-driver
11.最后输入:
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。
添加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
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~
frag0
校验提示文案
Titanium
校验提示文案
值友3227669222
校验提示文案
轩辕昱诚
校验提示文案
dgabo
校验提示文案
CupTeen
校验提示文案
你的样子子
校验提示文案
笑傲浆糊519
校验提示文案
试吃员
校验提示文案
zymok
校验提示文案
LifeIsKillingMe
校验提示文案
yalunkong
校验提示文案
deathtango
校验提示文案
zymok
校验提示文案
deathtango
校验提示文案
试吃员
校验提示文案
笑傲浆糊519
校验提示文案
yalunkong
校验提示文案
Titanium
校验提示文案
LifeIsKillingMe
校验提示文案
你的样子子
校验提示文案
CupTeen
校验提示文案
dgabo
校验提示文案
轩辕昱诚
校验提示文案
值友3227669222
校验提示文案
frag0
校验提示文案