文/赵佳钐 李坤伦 徐江 李院春
近年来,云计算、大数据、人工智能等新兴技术的高速发展,使数据中心的规模和设备数不断增加。数据中心机房作为新兴技术的承载体,在确保业务连续性上的重要性不言而喻。数据中心设备,如服务器、交换机等,对机房的环境要求较高。温湿度过高或过低都会影响设备的稳定性和可靠性,严重时还可能会损坏设备。按照国家制定的《电子信息系统机房设计规范》,数据中心机房根据其使用性质、管理要求及在经济和社会中的重要性,可划分为A、B、C三级。其中,A类和B类机房要求温度为23±1℃,湿度为40%~55%。因此,机房温湿度是衡量数据中心环境是否良好的重要指标。同时,当上层业务负载集中在某一部分节点上时,会导致部分机柜及服务器的温度过高,节点性能出现瓶颈。通过对每个机柜的温度监测,可以初步判断出机柜中服务器的负载或故障情况。从而,做出针对性的机柜负载均衡和业务迁移方案。为此,本文提出一种机房温湿度智能监测预警系统的设计方案,通过对机房中多个温湿度监测终端监测到数据的挖掘分析,实现机房故障的智能预警、业务的智能调整。
机房温湿度智能监测系统的逻辑架构如图1所示,该架构可分为三层。其中,基础设备层主要由温湿度监测终端组成,负责采集各个点的温湿度数据并发送给上层控制器。控制层主要是指温湿度监测控制器,它主要由两方面的职责。
(1)向下管理分布在机房各个节点的温湿度监测设备,采集并持久化温湿度数据;
(2)向上为上层应用提供开放API。
不同于传统的监测预警系统,本文提出的智能预警系统有以下两方面的特点:
(1)集中化管理。通过控制层的集中化管理,实现对不同监测设备的高效、灵活管理。
(2)开放编程接口。温湿度监测控制器提供开放可编程接口,通过该方式,上层管理应用只需关注自身业务逻辑,无需关注底层的实现细节。
系统中设备层和控制层之间主要依托设备管理协议相互通信。协议主要包含对底层监测设备的管理、监测数据的传输处理等。当温湿度监测设备首次接入系统时,设备中运行的Agent向控制器发送连接请求信息,温湿度监测控制器在接收到连接请求后做出响应,并记录监测设备的信息,如IP、MAC、位置等,将其加入设备资源池。在监测设备接入系统后,Agent会以固定的时间周期向控制器发送心跳消息,当控制器长时间未接收到来自监测设备的心跳消息时,控制器即认为该设备已发生故障,并告知上层应用。在设备正常运行时,Agent会以固定的时间间隔向控制器推送监测到的温湿数据。
为使温湿度监测预警系统免受数据中心网络的影响,本文采用了网络隔离的方式,即在数据中心自组单独的无线网络。无线监测设备通过无线网络和控制器保持通信。系统的物理拓扑如图2所示,网络隔离的无线设备安装在数据中心机房,并同控制器相连。无线监测终端则通过无线网络和控制之间相互通信。
在系统实现中,温湿度监测终端选取开源的NodeMCU,温湿度传感器则采用灵敏度较高的DHT11,如图3所示。其中,NodeMCU是一个开源的物联网平台,可采用Python和Lau语言编程,底层采用ESP8266并集成了低功耗Wi-Fi模块,无需外部设备即可接入无线网络、实现无线通信,在成本、功耗和体积上都存在巨大的优势。与此同时,NodeMCU还提供丰富的接口连接外围设备。DHT11数字温湿度传感器则是一款含有已校准数字信号输出的温湿度复核传感器,具有体积小、功耗低、信号传输距离远等特点。NodeMCU可以通过串口和DHT11相连,DHT11传感器将采集到的实时数据转换成数字信号传输给NodeMCU。NodeMCU再将传感器采集到的数据通过无线网络发送给控制器。
机房温度过高对机房设备的影响很大,可能造成不可估量的后果。因此,机房预警系统告警消息推送的及时性至关重要。目前,告警消息推送的主要途径一般有三种,分别为短信告警、微信消息告警和邮件告警。其中,短信消息告警需要和短信消息平台对接,微信消息告警依赖于微信企业号,邮件告警则需要配置专有的邮箱。在消息提醒的及时性及故障率上,微信消息告警要优于其他两种。所以,系统的温湿度预警模块采用微信消息推送的方式。经测试,告警消息推送的时延可保持在30秒以内。
随着互联网的发展,中小型机房越来越普遍,做好机房温湿度的监控预警越来越重要。本文提出的机房温湿度监测预警系统主要面向中小型机房,通过在机柜上部署温湿度监测终端,采集机房各个点的温湿度数据,并将其推送给控制器,再由控制器集中通过API的方式将采集到的数据提供给温湿度查看管理、温湿度预警等上层应用使用。
图1:系统逻辑架构图
图2:系统物理拓扑图
图3:监测终端实物图