维塔斯科技

 找回密码
 立即注册
查看: 15396|回复: 23
打印 上一主题 下一主题

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

[复制链接]

该用户从未签到

45

主题

334

帖子

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

主题

403

帖子

880

积分

高级会员

Rank: 4

积分
880
沙发
发表于 2016-3-29 20:18:12 | 只看该作者
http://blog.ltns.info/linux/esxi_auto_shutdown_with_apcupsd/
这里有篇中国人写的,和LZ一样的型号

回复 支持 反对

使用道具 举报

该用户从未签到

59

主题

438

帖子

953

积分

高级会员

Rank: 4

积分
953
板凳
发表于 2016-3-29 20:18:13 | 只看该作者


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

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



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




回复 支持 反对

使用道具 举报

该用户从未签到

55

主题

399

帖子

867

积分

高级会员

Rank: 4

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



回复 支持 反对

使用道具 举报

该用户从未签到

54

主题

397

帖子

866

积分

高级会员

Rank: 4

积分
866
5#
发表于 2016-3-29 20:18:13 | 只看该作者

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

回复 支持 反对

使用道具 举报

该用户从未签到

44

主题

372

帖子

804

积分

高级会员

Rank: 4

积分
804
6#
发表于 2016-3-29 20:18:13 | 只看该作者
最普通的UPS就可以了   连USB的都不用带。

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

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

回复 支持 反对

使用道具 举报

该用户从未签到

47

主题

390

帖子

845

积分

高级会员

Rank: 4

积分
845
7#
发表于 2016-3-29 20:18:14 | 只看该作者

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

回复 支持 反对

使用道具 举报

该用户从未签到

65

主题

454

帖子

993

积分

高级会员

Rank: 4

积分
993
8#
发表于 2016-3-29 20:18:14 | 只看该作者

本人太贱,喜欢折腾

回复 支持 反对

使用道具 举报

该用户从未签到

49

主题

350

帖子

769

积分

高级会员

Rank: 4

积分
769
9#
发表于 2016-3-29 20:18:14 | 只看该作者

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

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

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


回复 支持 反对

使用道具 举报

该用户从未签到

70

主题

428

帖子

944

积分

高级会员

Rank: 4

积分
944
10#
发表于 2016-3-29 20:18:15 | 只看该作者
太麻烦了,有无直接支持esxi的ups?

回复 支持 反对

使用道具 举报

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

本版积分规则

    移动客户端:
    关注我们:
  • 手机客户端:
  • 安卓版
  • 扫描二维码下载

Archiver|手机版|河北维塔斯科技有限公司 ( 冀ICP备16008275号 )

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