网云科技

 找回密码
 立即注册
搜索
查看: 18343|回复: 23

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

[复制链接]

45

主题

289

回帖

731

积分

高级会员

Rank: 4

积分
731
发表于 2016-3-29 20:18:12 | 显示全部楼层 |阅读模式
最近为了保护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…




直到今天在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
复制代码

如果看到上面的画面,恭喜,已经完成了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主机依次关闭虚拟机,最后关闭服务器!


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




回复

使用道具 举报

58

主题

345

回帖

880

积分

高级会员

Rank: 4

积分
880
发表于 2016-3-29 20:18:12 | 显示全部楼层
http://blog.ltns.info/linux/esxi_auto_shutdown_with_apcupsd/
这里有篇中国人写的,和LZ一样的型号

回复 支持 反对

使用道具 举报

59

主题

379

回帖

953

积分

高级会员

Rank: 4

积分
953
发表于 2016-3-29 20:18:13 | 显示全部楼层


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

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



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




回复 支持 反对

使用道具 举报

55

主题

344

回帖

867

积分

高级会员

Rank: 4

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



回复 支持 反对

使用道具 举报

54

主题

343

回帖

866

积分

高级会员

Rank: 4

积分
866
发表于 2016-3-29 20:18:13 | 显示全部楼层

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

回复 支持 反对

使用道具 举报

44

主题

328

回帖

804

积分

高级会员

Rank: 4

积分
804
发表于 2016-3-29 20:18:13 | 显示全部楼层
最普通的UPS就可以了   连USB的都不用带。

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

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

回复 支持 反对

使用道具 举报

47

主题

343

回帖

845

积分

高级会员

Rank: 4

积分
845
发表于 2016-3-29 20:18:14 | 显示全部楼层

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

回复 支持 反对

使用道具 举报

65

主题

389

回帖

993

积分

高级会员

Rank: 4

积分
993
发表于 2016-3-29 20:18:14 | 显示全部楼层

本人太贱,喜欢折腾

回复 支持 反对

使用道具 举报

49

主题

301

回帖

769

积分

高级会员

Rank: 4

积分
769
发表于 2016-3-29 20:18:14 | 显示全部楼层

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

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

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


回复 支持 反对

使用道具 举报

70

主题

358

回帖

944

积分

高级会员

Rank: 4

积分
944
发表于 2016-3-29 20:18:15 | 显示全部楼层
太麻烦了,有无直接支持esxi的ups?

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表