什么是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:

https://sourceforge.net/projects/apcupsd/files/apcupsd%20-%20Stable/3.14.14/apcupsd-3.14.14.tar.gz/download

启动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 0

STATFILE /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/

Centos7下ups监控apcupsd的使用的更多相关文章

  1. 最新 centos7下zabbix 监控redis状态

    准备 先准备两台服务器,已经部署好了zabbix-sever和zabbix-agent zabbix-server 192.168.1.70 centos7.2 zabbix-agent 192.16 ...

  2. CentOS7下搭建zabbix监控(四)——Zabbix报警设置

    CentOS7下搭建zabbix监控(一)——Zabbix监控端配置 CentOS7下搭建zabbix监控(二)——Zabbix被监控端配置 CentOS7下搭建zabbix监控(三)——Zabbix ...

  3. CentOS7下搭建zabbix监控(三)——Zabbix监控服务配置

    CentOS7下搭建zabbix监控(一)——Zabbix监控端配置 CentOS7下搭建zabbix监控(二)——Zabbix被监控端配置 (1).配置Zabbix监控Apache服务 主机名:yo ...

  4. CentOS7下搭建zabbix监控(二)——Zabbix被监控端配置

    Zabbix监控端配置请查看:CentOS7下搭建zabbix监控(一)——Zabbix监控端配置 (1).在CentOS7(被监控端)上部署Zabbix Agent 主机名:youxi2 IP地址: ...

  5. Centos7下设置ceph 12.2.1 (luminous)dashboard UI监控功能

    前言 本文所使用的集群是作者在博客 Centos7下部署ceph 12.2.1 (luminous)集群及RBD使用  中所搭建的集群 dashboard是为了完成对集群状态进行UI监控所开发的功能, ...

  6. CentOS7下搭建zabbix监控(一)——Zabbix监控端配置

    zabbix 是一个基于 WEB 界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案.zabbix 能监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通知机制以让系统管理员快速定位 ...

  7. 第四百零五节,centos7下搭建sentry错误日志服务器,接收python以及Django错误,

    第四百零五节,centos7下搭建sentry错误日志服务器,接收python以及Django错误, 注意:版本,不然会报错 Docker >=1.11Compose >1.6.0 通过d ...

  8. CentOS7下单机部署RabbltMQ环境的操作记录

    一.RabbitMQ简单介绍在日常工作环境中,你是否遇到过两个(多个)系统间需要通过定时任务来同步某些数据?你是否在为异构系统的不同进程间相互调用.通讯的问题而苦恼.挣扎?如果是,那么恭喜你,消息服务 ...

  9. centos7下源码方式安装gitlab8.9+发送邮件+ldap

    CentOS7下源码方式安装gitlab 环境描述 操作系统: centos7 redis: >=2.8 mysql >=5.5.14 git >=2.7.4 架构设计 一台gitl ...

随机推荐

  1. Go学习笔记(三)Go语言学习

    这里我就不写具体的教程了,整理了一些很适合入门学习的网站 菜鸟Go入门 http://www.runoob.com/go/go-basic-syntax.html Go 语言的基本数据类型 https ...

  2. pandas pivot_table 活学活用实例教程

    pandas pivot_table 活学活用实例教程 导入相关数据分析的库 首先进行commentTime时间进行数据预处理 查看数据类型信息 最简单的透视表 直接敲击该函数,在notebook中可 ...

  3. apache 二级域名设置完整步骤

    步骤如下: 1. 你要拥有一个有泛域名解析的顶级域名,例如:abc.com 在dns服务上设置,域名服务商都提供此服务 www.abc.com      指向服务器IPabc.com          ...

  4. nohup 同时实现记录日志和屏幕输出

    nohup   nohup命令:如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令.该命令可以在你退出帐户/关闭终端之后继续运行相应的进程.nohup就是不挂断 ...

  5. js中if语句的几种优化代码写法

    UglifyJS是一个对javascript进行压缩和美化的工具,在它的文档说明中,我看到了几种关于if语句优化的方法. 一.使用常见的三元操作符 复制代码 代码如下: if (foo) bar(); ...

  6. win10屏幕变灰怎么解决?

    朋友们在使用电脑过程中最高频使用的快捷键可能就是ctrl+c, ctrl+v了,但是殊不知,有时候按的太快产生误触,触发了ctrl+win+c,是屏幕变成了灰色,只需要再次同时按下这三个键就可以恢复彩 ...

  7. iOS 添加第三方.framework 打包上传iTunesConnect 遇到的坑

    1.添加完第三方库,模拟器运行没事,打iOS通用设备包的时候报一个错. ld: '/Users/jiangwei.wang/Documents/Project/APP NAME/SeosMobileK ...

  8. ArcGIS拓扑检查

    对于拓扑检查中的等级参数一直不理解,经过参考资料才明白过来: 注:如果有两个要素参与到拓扑,在修复拓扑错误时会优先移动拓扑级别低的要素来满足匹配拓扑规则要求. 参考资料: https://wenku. ...

  9. data-original

    <img class="lazy" style="display: inline;" alt="开光纯铜牛摆件" src=" ...

  10. EF Code First模型约束

    总之,EF比较复杂.如果不想深究,建议简单用用.基本对应就行,大项目标准开发还是ModelFirst(先建立DB各种约束),然后再c#类约束.定义. 当然写原型时用ef很快.