王銀隆 彭來湖 史偉民



摘 ?要:為解決目前的機房動力環境監控系統在架構上主要表現為獨立組網、單服務器數據庫,不能滿足分布式機房集中監控要求等問題,本文利用邊云協同的架構優勢,采用搭載安卓系統的主板作為智能邊緣端,設計監控系統終端設備軟件和硬件,提出總體設計思路,介紹系統智能終端監控軟硬件功能框架、邊云協同模型、數據處理存儲上傳及訪問邊緣服務的實現。經測試表明,設計方案能實現分布式機房動力環境的遠程集中監控,并有效解決大量數據直接傳輸云端的問題,同時提供就近訪問邊緣服務功能。
關鍵詞:動力環境監控系統;邊云協同;多點遠程監控;就近邊緣服務
中圖分類號: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-),男,博士,教授.研究領域:紡織機械自動控制.