基于边云协同的分布式机房动力环境监控系统设计
2020-10-23王银隆彭来湖史伟民
王银隆 彭来湖 史伟民
摘 要:为解决目前的机房动力环境监控系统在架构上主要表现为独立组网、单服务器数据库,不能满足分布式机房集中监控要求等问题,本文利用边云协同的架构优势,采用搭载安卓系统的主板作为智能边缘端,设计监控系统终端设备软件和硬件,提出总体设计思路,介绍系统智能终端监控软硬件功能框架、边云协同模型、数据处理存储上传及访问边缘服务的实现。经测试表明,设计方案能实现分布式机房动力环境的远程集中监控,并有效解决大量数据直接传输云端的问题,同时提供就近访问边缘服务功能。
关键词:动力环境监控系统;边云协同;多点远程监控;就近边缘服务
中图分类号:TP311.5 文献标识码:A
Design of Power Environment Monitoring System for Distributed
Computer Room based on Edge-cloud Collaboration
WANG Yinlong1, PENG Laihu1,2, SHI Weimin1
(1.Key Laboratory of Modern Textile Equipment Technology, Zhejiang Sci-tech University, Hangzhou 310018, China;
2.Hangzhou Qincheng Microelectronics Technology Co., Ltd., Hangzhou 310018, China)
wyl199501@163.com; 43233212@qq.com; swm@zstu.edu.cn
1 引言(Introduction)
随着社会信息化程度的不断提高,人们建立了越来越多的信息化平台,而这些平台背后的支撑都需要依赖于数据机房,机房作为互联网产业中不可或缺的重要一环,需要全年全天候不间断稳定运行,为保证机房的正常运行,其各个组成设备的运行状态需要在运维人员的实时掌控下,这样一来对于机房的动力、环境、消防等设备的实时远程监控,以及报警信息准确及时和无人化运维显得尤为重要,由此就产生了机房动力环境监控系统,简称动环系统。
目前看来,面向中小型机房高复用型,尤其是能够多点集中监控并且远程监控的动环监控系统将成为发展趋势。现在大多数动环监控系统主要分为两种,一种是局限于中小型机房单点监控的系统[1-3],如文献[3]所提出的动环监控系统只局限于短距离局域网内的监控,无法实现多机房多点无人化集中监控;另一种是只引入云计算的监控系统[4],如文献[4]所提出的动环监控系统,该系统虽然能实现多点集中监控,但是采集数据后就直接交给云平台,这样随着机房监控点数增多,加大了云平台计算量,影响监控的时效性和可靠性。因此针对以上问题本文提出了一种引入边云协同的分布式机房动环集中监控系统的设计方案,在多点机房布置搭载安卓系统的边缘终端设备,进行终端设备和数据数据处理上传设计,从而实现多终端结合云计算的无人化集中监控。
2 系统总体设计(Integrated system design)
智能终端作为边云协同中的边缘节点,是整个系统的核心部分,采用高性能的通用型CPU,具备数据采集、数据处理、数据传输、数据存储、数据展示等边缘节点需要具备的能力。在每个机房布置一个终端设备,对机房的动力(配电、ups等)和环境设备(空调、温湿度等)进行实时数据采集,并将采集到的数据进行处理运算。一方面处理后的数据通过TCP协议上传云平台进行后续开发,另一方面实现数据本地存储,完成本地客户端及局域网客户端就近展示。分布式机房分别部署终端设备,将较少量有用的数据上传到云计算平台,降低网络传输带宽,实现集中远程监控的同时又满足在网络边缘对单个机房的就近访问监控,符合边云协同模型计算。
2.1 系统边云协同模型
在传统的云计算服务模型中,终端通常作为数据的消费者,在少量机房的情况下,云计算模型也能很好地支撑系统运行,但随着机房量增多,数据大量产生,如还是继续将数据不加处理直接上传云平台,需要部署大量的云服务来缓解数据传输压力,而随之带来的是服务成本上升、终端设备资源闲置而造成不必要的浪费;而如不引入云计算只采用边缘终端监控则只能局限于单机房监控,又无法满足多点分布式机房监控和远程无人化的需求。边云协同计算模型的引入极大地解决了上述问题。所以说大数据集中处理已经从以云计算为中心的集中处理时代跨入以万物互联为中心的边缘计算时代,而边缘计算从热闹到落地离不开云计算,两者不是替代关系,而是协同关系,边云协同实现了两者的优势互补[5-7]。
边云协同对比云计算的优势可通过数学模型来验证。文献[8]中提到了通过业务的排队模型对单一云计算和边缘云计算进行分析,边缘服务和云服务的服务率分别为和,采用三个边缘服务和一个云服务,同时业务队列为,计算边缘云服务和单一云服务下的系统空闲概率分别为
(1)
(2)
因为,,所以。即在边云协同模式下,服务的空闲率明显低于单一云服务模式下的。业务的必须等待率分别为
(3)
(4)
其中可以明显判别。即边云协同模式下业务的必须等待概率要小于单一云服务模式下的[8]。由此可見边云协同模型具有明显的数据业务处理优势。
图1表示本系统的边云协同计算模型。边缘服务基于终端设备,采用边云协同计算模型,边缘终端设备兼顾数据的生产者和消费者,边缘与云双向传输,边缘终端设备不仅从云中心请求内容及服务,也执行部分数据计算。同时边缘终端也具有一定的数据接口,用户可以不通过云服务直接就近获取到边缘服务提供的数据,通过采用局域网的形式直接访问边缘服务,相比于云服务最直接的优势就是低延迟和高带宽。因此需要更好的设计边缘终端设备的硬件平台和软件系统来满足边缘计算模型的需求。
2.2 系统架构设计
根据上文的边云协同架构,设计系统的整体架构为四层,分别是感知层、数据层、网络层、用户层,如图2所示。
感知层包含对机房动力环境设备的数据采集与控制,终端设备与动力环境设备连接,采集到的数据进入到终端系统软件中而到达数据层;数据层对采集到的数据进行处理,处理完后的数据实时存入终端设备SQLlite数据库中;对于数据层处理完后的数据,经过网关进入到网络层,通过Socket编程将数据上传到云计算平台进行后续处理存储和远程客户端开发。用户层分为本地/局域网/远程客户端三种呈现方式,本地客户端不经过网络层直接访问数据库获得最低延时的数据,局域网客户端和远程客户端则分别向边缘WEB服务器和与云计算平台进行网络请求,前者数据延时更低。
3 边缘端硬件实现(Edge hardware implementation)
终端设备以四核64位全志H6芯片为核心,根据机房现场布置需求,硬件设计有4路USB口、1路以太网接口、UART串口、1路SPI、1路HDMI、SD卡接口及SIM卡接口等,扩展串口服务器、串口拓展板(RS485/232)、4G短信报警模块、IO采集模块和触摸显示屏等。同时搭载Android 7.0移动操作系统,在负责与云平台交互的同时能执行一定复杂的计算任务。硬件平台组成如图3所示。
机房需监控设备大多以RS485总线通信为主,串口拓展板和串口服务器的功能都是扩展RS485/232串口,以适应机房所需要的多种串口设备的监控;对于漏水、烟感等以干接点作为开关量状态指示的设备,采用扩展的综合IO采集模块。终端设备根据机房现场环境进行相应的采集接口扩展,除了基本的串口IO,还可接入摄像头、门禁等设备。
4 边缘端软件实现(Edge software implementation)
终端设备软件设计采用Qt for Android平台开发,利用了Qt拥有良好的跨平台性、强大的信号槽机制、界面设计器,以及丰富的图形可视化显示对象的视图插件[9]。相对于原生开发,Qt开发的APP跨平台性高,图形化模块化开发更方便,且与硬件设备串口的数据交互更加容易[10]。
4.1 边缘端设备界面设计
边缘端设备软件界面设计如图4所示。
界面总体分为六块功能模块,具备设备配置、图形展示、列表展示、控制、报警、历史等功能模块设计。针对实际应用情况,系统设计了一些特殊功能模块实现了用户高度自定义,如:
(1)图形信号连接功能模块的设计,设备由于解析了大量的数据,尽管进行了数据处理,一些设备的数据量还是很大的,无法全部展现在图形化界面上,此时可以通过信号连接功能模块来实现,用户根据需求自行选择需要展示在图形界面的参数。
(2)报警策略及自定义报警功能模块的设计,默认的报警参数可能无法满足实际应用的需求,系统提供了用户自定报警及相应的策略响应功能,比如实现机房环境温度高于35℃需要自动调低空调温度设定值,直到达到设定时结束调整。该功能模块能实现一定程度上的自适应调整,更适合实际应用环境。
4.2 数据处理设计
在边云协同模型中,边缘端设备具备一定的数据处理能力,这需要在软件设计中实现。终端设备通过对串口读写获取到仅为原始数据,对于RS485/232总线通讯设备需根据设备数据协议进行解析转化。不同设备协议不同,如MODBUS协议、韦根协议等。如把所有用到的设备协议数据处理代码全部写进主程序中,那代码将变得臃肿,处理效率也相应降低,之后的软件升级维护也变得困难,并且其安全性能比较低,软件一旦被破解,关键代码也容易泄漏。
为解决以上问题,本文采用动态链接库编程技术。动态链接库技术是一个包含代码和数据,并且可以供多个程序同时使用到的库,其优点是能够避免代码重复,提高内存效率,并且对关键技术具有保密措施[11]。如图5所示,根据每个型号设备的数据通讯协议,分别创建一个动态链接库类,在动态链接库中完成对设备原始数据的协议解析,包括数学运算、ASCII码转换、报警状态判断等,同时数据解析转换完后的本地数据库读写存储操作也在动态链接库中完成。该类最终由平台编译成为“.so”文件。当机房部署时,用户只需进行相应的配置,主程序就会调用对应的动态链接库,没配置的设备则不会进入主程序调用线程,自然不会占用内存使用,因此提高内存利用率,避免重复无用代码。
4.3 数据存储及上传
在边云协同模型中,用户可以通过云端下发获取数据,同时也可以就近访问终端设备数据,因此终端软件设计需具备数据本地存储和数据上传云端的功能。
终端设备采用SQLite数据库作为本地存储数据库。SQLite为进程内数据库引擎,嵌入运行于程序的进程空间,具有速度快、绿色、跨平台/可移植性,以及提供多种编程语言接口[12]。经过处理的数据存入SQLite数据库中,在SQLite数据库中建立合理结构的数据表,考虑到随着时间的推移,数据量增大后数据库读写效率会明显下降的问题,采用了两种办法解决:分表加索引提高数据库读取效率,面对大量数据也能快速查询;定期删除数据库历史数据,减少数据记录。
终端设备数据上传云平台有多种实现方式,本文通过设计TCP客户端及服务器端进行Socket编程来实现。终端设备通过QTcpSocket通讯类,将经过解析后的数据通过自定协议透传到服务器端,TCP服务器则采用GatewayWorker框架开发,收到的数据解析后存入云数据库以供后续开发。
4.4 局域网下访问边缘服务实现
对于局域网下访问边缘服务的实现,需要边缘终端设备具备WEB服务器環境。在安卓系统下搭建WEB服务器环境,采用将服务通过整合进系统层面进行开发。WEB服务器选用轻量级的lighttpd,后台接口语言采用PHP5,下载lighttpd和php-cgi等程序,编译进安卓系统,在系统boot时调用两者的启动文件进行服务开启。开启服务后,终端设备成为一个WEB服务器,当用户移动客户端选择接入边缘局域网中,客户端即通过HTTP协议向边缘服务请求数据,边缘服务后台脚本接收到数据请求后进行本地数据库操作,将数据提取后封装为json数据格式后返回。如此实现局域网下访问边缘服务具有低延时、高带宽等特点,很好地补充云服务访问的一些缺陷。
5 系统展示(System display)
系统经运行调试并上线使用后能稳定运行,实现了边云协同监控。报警信息通过多种方式精准推送给运维人员,数据经边缘设备解析处理后,相较于直接上传云端的网络传输压力大大下降。图6为系统实物图,图7为终端设备监控软件,图8为远程客户端软件/网页。
6 结论(Conclusion)
终端、云平台的协同作用构建了分布式机房动力环境远程监控系统。通过TCP/IP协议将数据传输到云平台服务器,能够通过互联网将多机房、多点进行集中的监控,实现无人化远程监控。通过边缘计算将采集的数据在网络边缘进行加工处理,减少了上传云平台的数据量。通过局域网就近访问边缘服务,提供了更低延时的可靠访问。这种基于边云协同的机房动力环境监控系统设计方案为分布式机房集中可靠监控提供一种解决方案。
参考文献(References)
[1] 宋朋涛,李超,徐莉婷,等.基于个人计算机的智能家居边缘计算系统[J].计算机工程,2017,43(11):1-7.
[2] 丁承君,刘强,冯玉伯,等.基于物联网和边缘计算的高校机房在线监测[J].计算机工程与应用,2018,54(21):257-264.
[3] 单聪.基于物联网的机房环境监控系统[D].南京邮电大学,2014.
[4] 李铭瑶,薛新民.云计算数据中心动力环境监控系统研究[J].信息技术与标准化,2017(Z1):57-60.
[5] 楚俊生,张博山,林兆骥.边缘计算在物联网领域的应用及展望[J].信息通信技术,2018,12(05):31-39.
[6] Prateeksha Varshney, Yogesh Simmhan. Characterizing application scheduling on edge, fog, and cloud computing resources[J]. Software: Practice and Experience, 2020, 50(5): 558-595.
[7] 李斌.基于邊云协同技术的高速铁路“工电供”综合运维一体化管理平台研究与探索[J].电信科学,2019,35(S2):77-83.
[8] 谢辰飞.面向智能家居的边缘计算研究[D].电子科技大学,2019.
[9] 王斌.基于Qt for Android的移动GIS应用开发与研究[D].郑州大学,2016.
[10] 闫锋欣,牛子杰,杜烁炜,等.基于Qt的Android应用程序C/C++开发方法与实践[J].计算机系统应用,2018,27(07):96-102.
[11] 丁浩洪.动态链接库技术的应用探讨[J].信息系统工程,2019
(01):40.
[12] 韩贝.SQLite数据库研究与应用[D].南京邮电大学,2019.
作者简介:
王银隆(1995-),男,硕士生.研究领域:机械电子工程.
彭来湖(1980-),男,博士,讲师.研究领域:智能装备与嵌入式控制技术.
史伟民(1965-),男,博士,教授.研究领域:纺织机械自动控制.