什么是UPS
UPS-Uninterrupted Power System;利用电池化学能作为后备能量,在市电断电等电网故障时,不间断地为用户设备提供(交流)电能的一种能量转换装置。
UPS的主要功能
实现电网与用电器之间的隔离
实现两路电源的不间断切换
提供高质量电源
电压变换和频率变换功能
停电后提供后备时间
为什么用UPS
1、不停电功能,解决电网停电问题
2、交流稳压功能,解决网压剧烈波动问题
3、净化功能,解决电网与电源污染问题
4、管理功能,解决交流动力维护问题
实际使用的过程中使用ups最大的目的是为了当市电突然断电的时候可能会造成文件无法保存、丢失,减少硬件寿命,以及浪涌对服务器损害等事故。
购买ups
在购买ups的时候尽量购买在线式的ups,我们公司的ups购买的是低端 施耐德的APC Smart SUA3000ICH,是不带网络管理卡(AP9631等),所以一台ups只能控制一台Dell服务器。为了能够控制公司30台左右的dell服务器在断电的时候通过ups自动关机而采用了apcupsd来监控ups。
Apcupsd简介
Apcupsd is a UPS control system that permits orderly shutdown of your computer in the event of a power failure.(Apcupsd是一种UPS控制系统,可在发生电源故障时有序关闭计算机。)
Apcupsd安装及配置文件
在低端的ups上面的有两个串口,配给了两条电缆,一条是串行电缆,一条是USB通信电缆。我们使用usb通信电缆将ups和服务器相连接。
下载源码3.14.14:
启动apcupsd:systemctl start apcupsd
安装成功之后,执行apcaccess或者执行/sbin/apcaccess,会看到以下返回(大概类似),说明安装成功
/etc/apcupsd/apcupsd.conf apcupsd的配文件
UPSCABLE ether //用于将UPS连接到计算机的电缆类型。
UPSTYPE net //拥有的apcups类型
DEVICE 192.168.10.3:3551 //如果apcups的模式为nat模式,则要是批核端口的对应格式LOCKFILE /var/lock //apcupsd为指定目录中的串行或USB端口创建一个锁文件。
SCRIPTDIR /etc/apcupsd //apccontrol和事件脚本所在的目录。
PWRFAILDIR /etc/apcupsd //apcupsd写入当apcupsd启动系统关闭时创建的powerfail标志文件的目录。
NOLOGINDIR /etc //apcupsd写入nologin文件的目录,该文件告诉操作系统禁止新登录。
ONBATTERYDELAY 6 //检测到电源故障直到apcupsd对电池事件发生反应的秒数。
BATTERYLEVEL 5 //当剩余电池电量低于指定百分比时,apcupsd将在电源故障期间关闭系统。默认值为5
MINUTES 3 //当UPS内部计算的电池剩余运行时间低于指定的分钟数时,apcupsd将在电源故障期间关闭 系统。默认值为3。
TIMEOUT 90 //发生电源故障后,apcupsd将在指定的秒数过期后关闭系统。
ANNOY 300 //指定请求登录用户从系统注销的广播消息之间的时间(以秒为单位)。仅当UPS使用电池运行时,此计时器才会启动。默认值为300秒(5分钟)。
ANNOYDELAY 60 //指定请求登录用户从系统注销的广播消息之前的延迟时间(以秒为单位)。
NOLOGON disable
KILLDELAY 0
NETSERVER on //打开或关闭网络信息服务器(NIS)。
NISIP 0.0.0.0 //指定apcupsd将侦听传入连接的网络接口的IP地址。默认值为0.0.0.0,这意味着NIS将侦听 所有网络接口上的连接。如果计算机具有多个接口,则可以指定单个接口的IP以限制与该接 口的连接。指定环回地址(127.0.0.1)将使NIS守护程序仅接受来自本地计算机的连接。
NISPORT 3551 //指定NIS守护程序使用的端口。默认值为3551
EVENTSFILE /etc/apcupsd/apcupsd.events
EVENTSFILEMAX 10
UPSCLASS shareslave //设置ups的模式,我们主要用主从模式
UPSMODE share //设置为“禁用”以进行正常的独立操作,指示您正在禁用Share-UPS接口扩展器支持。
STATTIME 0STATFILE /etc/apcupsd/apcupsd.status //启动日志
LOGSTATS off
DATATIME 0
配置主从模式
首先尝试用两台Centos7搭建主从模式并自动关机。
首先选择其中一台主机作为Master,连接USB信号线,下载并安装Apcupsd,并修改配置文件
配置好之后,master/slave都重新启动。就ok了。
实际使用中有如下问题需要注意
1、一旦安装有管理卡,UPS上自带的串口是不能再使用的
2、因为是smart UPS,apcupsd在关闭服务器之后会调用重启ups指令,这就会有如下一些问题
a、如果apcupsd是master-slave模式,那么理论上可安全关闭每一台服务器,但一旦master服务器有问题,则所有机器会不能关机
b、如果每台服务器独立运行apcupsd,则ups上的一些参数要注意:
由于配备的电池容量只能坚持20分左右,加上对电池到底能坚持多久有一些担心,所以没有用smart ups智能判断关机时间的功能,而是将关机时间设置成10秒,也就是停电10秒就开始关机,这时一些ups的参数(管理卡上配置)作用如下:
Low Battery Duration: 2分钟,这个指的是ups在知道自己还能坚持2分钟时开始发送关机指令,并执行一系列关机过程,由于我在apcupsd上设置了10秒关机,故关机指令以10秒为准
Shutdown Delay:720秒,这个指ups执行一系列关机操作的延时时间,建议设置大一些,这样在ups最后自己关机重启之前,我们有时间做一些其他操作
Maximum Required Delay:2分,这个是关机指令(ups向服务器发送)发送超时时间,没必要修改
Sleep Time:这个不太知道什么意思,调整过似乎没什么影响
Minimum Battery Capacity:ups恢复启动要求的最小电池电量(百分比)
Return Delay:ups恢复延时
最重要的一点,smart UPS在关闭所有服务器(或者是他认为他关闭了所有服务器)之后会自动重启UPS,这时你要小心了,如果有机器没关机就惨了,我就尝过苦头,所以建议shutdown delay设置大一点,如果设置小了即使ups能坚持20分,他也可能5分钟后就重启,还有千万不要在市电恢复之后自己去启动服务器,一定要等待ups自己完成重启之后再启动服务器(建议服务器都设置成通电自启动),如果你在ups自动重启之前手工启动了服务器,后果你知道的。
3、我们自己购买的是施耐德apcups smart 3000系列的,具体参数是2700w/16a,带有8个可插电口,两个串行口。dell r730服务器使用双处理器(设计功率在135w)的情况下,长期满载的功率不会超过350w,加上硬盘和满内存不会超过400w。所以在U盘是的功率为2700w的情况下,可以带6台dell r730的满配服务器,其余的可带交换机极路由器等小功率设备。
4、交换机和路由器一定要连接在上,否则可能会造成master对slave关机不成功!
特别注意
BATTERYLEVEL 5 //当剩余电池电量低于指定百分比时,apcupsd将在电源故障期间关闭系统。默认值为5
MINUTES 3 //当UPS内部计算的电池剩余运行时间低于指定的分钟数时,apcupsd将在电源故障期间关闭系 统。默认值为3。
TIMEOUT 90 //发生电源故障后,apcupsd将在指定的秒数过期后关闭系统。
这三个参数是apcupsd关机指令里面比较重要的,一般我们都使用timeout参数,master设置为240s,slave设置为60s。
意思就是:在发生电源故障后,master对slave说:“市电断开了,现在在使用ups来供电,你要在接收到我给你的指令60s内关机”,然后所有的slave都会关机,然后在240s内master自己也会关机,都关闭之后ups自身也会关机。
在主/从配置中,主设备无法100%确定从设备在执行关闭电源之前全部关闭。要避免这种情况,请确保通过在配置文件中设置不同的TIMEOUT,BATTERYLEVEL或MINUTES参数,将所有从站(客户端)配置为在主站之前关闭 。关机期间可能出现的一个问题可能是旧版本的遗留问题。请务必删除或重命名所有先前版本(/usr/local/sbin/apcupsd或/sbin/powersc)
关闭exsi
在master的配置文件中/etc/apcupsd/apccontrol中加入关闭虚拟机和ESXI主机的脚本。
参考文档
http://www.apcupsd.org/manual/manual.html#basic-user-s-guide
https://fossies.org/linux/misc/apcupsd-3.14.14.tar.gz/
https://www.chiphell.com/thread-1699396-1-1.html
http://bbs.21ic.com/icview-2501542-1-1.html
http://www.360doc.com/content/17/0601/16/13681512_659035982.shtml
https://blog.csdn.net/windowsxpwyd/article/details/7522137
https://blog.csdn.net/wangluoyang/article/details/24742483
http://blog.ltns.info/linux/esxi_auto_shutdown_with_apcupsd/