日本电子维修技术 NAS普通UPS控制多台主机正常关机达成~
今天上论坛,忽然发现改版了,如果发错地方,还请版主手下留情~
【写在前面】
因为是求助帖,所以全篇无图,都是纯手工码字。
记录自己的折腾过程,也希望大家提出不同的意见思路,
更希望论坛大神能够解答小弟的疑惑~先行谢过!
【背景】
本人非挨踢从业人员,更别提编程能力了,以下内容全部来自谷哥、度娘,在此感谢辛勤付出的原作者们~!
【目前方案】
N54L装的是黑裙,7*24小时开机。Homeserver装的是Freenas,只在备份N54L数据时才开机,具体配置见https://www.chiphell.com/thread-1608978-1-1.html。UPS,型号是APC-BX650,同时为N54L及Homeserver提供电力,但是只有一个usb通讯口,所以接在了24小时开机的N54L上面。
【替代方案】
因为Homeserver的配置比N54L高了好多,只做存储有点于心不忍,所以准备调换一下2台机器的角色。
N54L装Freenas9.10.2-U1,只在备份Homeserver数据时才开机。Homeserver用U盘装Esxi6.0,挂一个480G的SSD,里面装黑裙(挂载主板Lsi芯片直通的机械硬盘),再装一些尝鲜的系统,7*24开机UPS只有一个通讯口,所以必须接在7*24的机器上,也就是ESXI上面。
但是APC官方没有提供这款UPS对ESXI的支持(其实普通的UPS都不带这种支持),所以才有了这篇文章。。。
【方案改进】
原理:通过搜索,找到了三种能够1台UPS控制多台主机的软件方案,APCUPSD,Winpower,NUT(network ups tool),基本原理很简单,所有电脑的电源都接在UPS上,然后分别在主机(与UPS通讯的机器)和客户机上安装上述软件中的一款,当没有市电的时候,UPS转用内部电池,并通过通讯接口向主机发送信号,主机接收到UPS的信号后,通知客户机关机,等所有的客户机关机后,主机最后执行关闭本机和关闭UPS的操作,整个断电关机过程完毕。而且当客户机是ESXI时,只要ESXI中的VM安装了VMtool,就可以做到安全关闭VM——安全关闭ESXI——通知主机。
选择:由于Freenas内置了NUT,而NUT对其他两种软件的兼容不好(虽然有APCUPSD-controlled devices这个驱动,但是撸主我不会设置。。。),所以追求完美的我,果断放弃了前2种软件,专攻NUT的“研究”。
研究:原理说了整套方案以一台主机为核心,主机可以是安装了任意操作系统的“电脑”,所以也就包括了Homeserver上ESXI里的VM,但是因为Esxi系统里VM的嵌套,开关机顺序的问题,需要比较复杂的脚本才能做到:直通VM1的UPS断电——UPS通知VM1——VM1通知ESXI——ESXI依次关闭所有VM——UPS断电关闭,所以机智的我选择用一个低功耗的树莓派来充当UPS主机。
结果:UPS通讯接口连接树莓派,UPS提供电源给N54L,Homeserver,树莓派,交换机(如果断网主机就没办法通知和接收客户机信号了)
树莓派安装设置NUT的教程,其他主机或系统都可参考:http://wynandbooysen.com/raspberry-pi-ups-server-using-nut.htmlESXI安装NUT插件原帖:http://rene.margar.fr/2012/05/client-nut-pour-esxi-5-0/ESXI里黑裙充当UPS主机:https://blog.rylander.io/2017/01 ... -to-a-synology-nas/
撸主很顺利的完成了链接1的内容,断电后树莓派立刻通知Freenas关机,但是NUT默认设置是等到UPS发出低电量警告后,再通知主机关机、UPS关闭,所以撸主等了整整15分钟,树莓派才关机并关闭了UPS。
【问题疑惑】
根据链接2、3的教程,撸主没能成功关闭ESXI,希望感兴趣的坛友能尝试一下~
无意间看到APCUPS设置的教程:http://blog.ltns.info/linux/esxi_auto_shutdown_with_apcupsd/
想到能在ESXI里添加脚本,来达到树莓派远程通知ESXI依次关闭VM,最后关闭ESXI自己的功能,
第一步,因为ESXI安装目录下不能存放非ESXI文件,所以将连接中的脚本powerdown-esxi6.sh保
存在SSD上(ESXI装在U盘里的)实测通过Xshell连上ESXI,执行powerdown-esxi6.sh,
可以安全做到依次关闭VM,最后ESXI关机。
第二步,现在来到树莓派上,参考:https://gist.github.com/gschora/a10f0692e6e691aa1af8
建立一个新文件notifyme,赋予可执行属性,内容如下:
#! /bin/bash
WALL=wall
#在树莓派命令行中显示“123abc”,已确认此脚本被正确执行
echo "123abc" | ${WALL}
#通过ssh连接ESXI,并执行之前已经在SSD中建立的ESXI关机脚本
ssh [email protected] "nohup /vmfs/volumes/sandisk480g/powerdown-esxi6.sh > /dev/null 2>&1 &"
复制代码 因为之前已经将ESXI和树莓派的密钥配对了,所以在树莓派上执行notifyme后,树莓派中命令行显示
“123abc”,后台远程登陆ESXI(自动登陆,无需输入ESXI账号密码),
并执行ESXI上ssd中的powerdown-esxi6.sh,
ESXI开始依次关闭VM,然后关闭自己,到目前为止一些顺利~
第三步,根据NUT的文档:http://networkupstools.org/docs/user-manual.chunked/ar01s07.html
可以设置当UPS使用内置电池供电时,即ONBATT这个状态,调用执行在upsmon.conf中预先设的命令,
而我调用的就是刚才建立的notfiyme命令,现在实验一下,断开UPS的市电,树莓派上显示on battery
接着显示“123abc”(表明已经正确调用notifyme了),但是。。。远程的ESXI并没有树莓派登陆的日志
更不用提执行ssd中的关机脚本了。。。
然后就没有然后了。。。
更新第三步,原来linux的权限太规范了~,NUT在执行脚本的时候是用nut这个用户,而nut用户默认没有bin的权限,我也没有将nut用户的公钥传到esxi主机上,现在完成以上2个操作后,当树莓派上的ups没有市电进入时,esxi也可以顺利的完全关机了~下一阶段试着改变NUT的默认设置,让它可以在ups供电几分钟后关闭ups,而不是等到电池快耗尽了才关闭。
评论
自己更新一下,原来NUT在执行脚本的时候使用nut这个用户
而nut用户默认没有bin的权限,我也没有将nut用户的公钥传到esxi主机上
现在完成以上2个操作后,当树莓派上的ups没有市电进入时,esxi也可以顺利的完全关机了~
下一阶段试着改变NUT的默认设置,让它可以在ups供电几分钟后关闭ups,而不是等到电池快耗尽了才关闭
评论
好文章,有没有直接支持控制多机器的ups?
评论
肯定是有的,但是价格就hehehe了
评论
最近入了个APC的BK650,SERVER 2012 R2装了官方的个人版软件,设置断电后5分钟关机,可断电后10分钟还是不关机,开启休眠都没用。
评论
我的是BX650,单机连接的话,只要有apc官方软件的支持都能很好的关机关UPS
评论
我准备春节也做一个测试
评论
楼主esxi安装nut成功了吗 我的nut执行upsc [email protected],提示Error: Access denied 用户名密码都对 电路 电子 维修 我现在把定影部分拆出来了。想换下滚,因为卡纸。但是我发现灯管挡住了。拆不了。不会拆。论坛里的高手拆解过吗? 评论 认真看,认真瞧。果然有收 电路 电子 维修 求创维42c08RD电路图 评论 电视的图纸很少见 评论 电视的图纸很少见 评论 创维的图纸你要说 版号,不然无能为力 评论 板号5800-p42ALM-0050 168P-P42CLM-01
·日本中文新闻 唐田绘里香为新剧《极恶女王》剃光头 展现演员决心
·日本中文新闻 真子小室夫妇新居引发隐私担忧
·日本中文新闻 前AKB48成员柏木由纪与搞笑艺人交往曝光
·日本学校 {日本国际学校}梅田インターナショナルスクール
·日本学校 LINE:sm287 陳雨菲、20歳、台湾からの留学生、東京に来たばかり
·日本留学生活 出售平成22年走行48000km 代步小车
·日本华人网络交流 円相場 一時1ドル=140円台まで上昇?
·日本华人网络交流 问日本华人一个问题
·日本旅游代购 富山接机
·生活百科 英国转澳大利亚转换插头
·汽车 【求助】修车遇到困难怎么办?