96x3cpu 发表于 2016-3-29 20:18:12

GEN8-ESXI系统的UPS自动关机设置

最近为了保护Gen8储存在NAS上的数据,购入了一台APC的不间断电源UPS(型号BX650-CH)
选型详见帖子: /thread-1332054-1-1.html

因为是服务器,肯定需要考虑无人情况下的断电自动关机,特意买了有USB的型号,无奈买回来发现,APC此款型号的UPS只有支援Windows平台的PowerChute Personal Edition可用,对于eSXi并无支持,要支援eSXi的企业化管理,至少需要smart-UPS级别以上的系统,并且服务器需要配置专用的网卡,使用PowerChute Network Shutdown…
/data/attachment/forum/201507/25/162127wbbqlllzaa1131ku.jpg



直到今天在serverfault上看到老外牛人的文章(原帖地址:http://serverfault.com/questions/462993/vmware-esxi-shutdown-triggered-by-apc-ups-connected-via-usb ) 救我于水火之中!
具体流程以后抽时间翻译一下给诸位,核心理念是将UPS的USB设备直通给Linux的虚拟机,在其中通apcupsd这个守护程序来监控UPS的设备情况再反过来使用ssh到esxi主机来实现自动关机。亲自测试可用。
理论上这种方式适合于任何基于Linux的系统(FreeNAS,黑群晖等)


-----回来更新下具体的操作流程-----
1. 打开eSXi的ssh远程服务;
2. eSXi虚拟机设置中添加USB设备,将APC的UPS添加到虚拟机硬件中;
3. LinuxVM中安装apcupsd
sudo apt-get install apcupsd
复制代码4. 配置/etc/apcupsd/apcupsd.conf
UPSNAME <自定义名称> #这行定义你的UPS名称

UPSCABLE usb #设置UPS的通讯模式为USB模式

UPSTYPE usb #设置UPS类型为usb型,记得注释掉下面那行DEVICE /dev/ttyS0
复制代码5. 编辑/etc/default/apcupsd
ISCONFIGURED=yes
复制代码6. 重启apcupsd守护进程
sudo service apcupsd restart


复制代码
7. 测试UPS的状态
apcaccess
复制代码 /data/attachment/forum/201507/25/202016zfezme336fnmgnqs.png

如果看到上面的画面,恭喜,已经完成了90%了

8. 安装putty的plink
sudo apt-get install plink
复制代码9. 使用plink连接一下esxi主机的ip地址,并保存RSA指纹
plink root@<esxi主机IP>

y

exit
复制代码10. 编辑/etc/apcupsd/apccontrol脚本,找到doshutdown) 将下面3行替换为
echo "UPS ${2} initiated Shutdown Sequence" | ${WALL}

/usr/bin/plink root@<eSXi主机IP> -pw <root密码> "/sbin/shutdown.sh && /sbin/poweroff"

;;
复制代码此行是整个解决方案的核心,即在关机流程中远程ssh控制esxi主机依次关闭虚拟机,最后关闭服务器!


搞定!拔掉插头自己测试一下吧




qt7gvkm 发表于 2016-3-29 20:18:12

http://blog.ltns.info/linux/esxi_auto_shutdown_with_apcupsd/
这里有篇中国人写的,和LZ一样的型号

6bpkw9 发表于 2016-3-29 20:18:13



这应该是知识没有储备完全才犯下的错误。。

PS。其实网络管理卡的费用不便宜啊。



你可以考虑
1,改用串口方案。。(应该还是有的吧。。)
2,弄个类似树莓派这样板子,通过USB连接,管理
3,改成Windows方案。。(我也无语了)




l0fkq7vy 发表于 2016-3-29 20:18:13

记忆中,esxi集群主机的正常关机(断电)流程是要进维护模式的,
而且保险的方案是所有VMs都已经迁移到其他集群里。
就算突然断电,UPS的作用是,为了可以平衡过渡到备用线路或者三号线路(自备发电机)。
所以按这样的方案,楼主还得买台发电机。
这就是3000预算进论坛,最终花了九万八。。



psktmln 发表于 2016-3-29 20:18:13


感受蛮好,已经遗忘它的存在了

lmk30fv 发表于 2016-3-29 20:18:13

最普通的UPS就可以了   连USB的都不用带。

linux-like的系统上,crontab一个定时任务就好了,每分钟ping路由器或者家里ap什么的,ping -c 10

连续10个数据包都没收到,就shutdown -h now。

zzevfbtq 发表于 2016-3-29 20:18:14


已经找到完美的解决方案了,发现用eSXi有很多东西要折腾,果然不太适合民用

m0l01ehz 发表于 2016-3-29 20:18:14


本人太贱,喜欢折腾

s62lsbb 发表于 2016-3-29 20:18:14


你可以ping 30个数据包,网线松动一下不碍事。

可以写个shell脚本增强一下逻辑,连续ping N次 每次失败就+1,达到某个值就认为停电。更或者是ping多个设备。
这样比较合理。
自己家里网线都是用最好的,基本不存在松动。

况且,这是不具备自动关机的UPS的最好办法。


b5pwqi1x 发表于 2016-3-29 20:18:15

太麻烦了,有无直接支持esxi的ups?

页: [1] 2 3
查看完整版本: GEN8-ESXI系统的UPS自动关机设置