什么是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. 十一、K3 WISE 开发插件《VB插件开发如何代码调试 - 步骤讲解》

    =================================== 目录: 1.配置代码调试启动程序kdmain.exe 2.设置断点 3.触发调试 4.变量跟踪 ================ ...

  2. JS中判断一个对象是否为null、undefined、0

    1.判断undefined: var tmp = undefined; if (typeof(tmp) == "undefined"){ alert("undefined ...

  3. [JavaScript] 配置JavaScript BUILD

    <project name="eForm" default="concatenate"> <tstamp> <format pro ...

  4. J - Romantic

    The Sky is Sprite. The Birds is Fly in the Sky. The Wind is Wonderful. Blew Throw the Trees Trees ar ...

  5. API(二)之Requests and Responses

    这一部分可以让返回的api信息以两种格式呈现:.json和.api REST框架的核心部分.我们来介绍几个基本的组成部分. Request objects REST框架引入了Request对象来扩展常 ...

  6. [No000016F]高并发下线程安全的单例模式(最全最经典)

    在所有的设计模式中,单例模式是我们在项目开发中最为常见的设计模式之一,而单例模式有很多种实现方式,你是否都了解呢?高并发下如何保证单例模式的线程安全性呢?如何保证序列化后的单例对象在反序列化后任然是单 ...

  7. [No0000171]wpf 类层次结构Class Hierarchy

    1.DispatcherObject类表示具有相关联的对象分派器.调度程序处理要在特定线程上执行工作的请求队列.它能够在其关联的线程上调用方法. DispatcherObject是对象的基类,用于跟踪 ...

  8. [No0000F4]C# 枚举(Enum)

    枚举是一组命名整型常量.枚举类型是使用 enum 关键字声明的. C# 枚举是值数据类型.换句话说,枚举包含自己的值,且不能继承或传递继承. 声明 enum 变量 声明枚举的一般语法: enum &l ...

  9. 深入理解无穷级数和的定义(the sum of the series)

    Given an infinite sequence (a1, a2, a3, ...), a series is informally the form of adding all those te ...

  10. 【作业】用栈模拟dfs

    题意:一个迷宫,起点到终点的路径,不用递归. 题解: #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdli ...