孫鵬 許瀚 陳晶晶 曹旭東
摘要:為了解決現(xiàn)有監(jiān)控系統(tǒng)因主控節(jié)點(diǎn)功能太過(guò)集中而導(dǎo)致某些時(shí)刻網(wǎng)絡(luò)流量過(guò)大、系統(tǒng)擴(kuò)展性差和無(wú)法及時(shí)應(yīng)對(duì)節(jié)點(diǎn)失效的問(wèn)題,提出了一種基于仿生自主神經(jīng)系統(tǒng)(BANS)的新型云資源監(jiān)控系統(tǒng)。首先,系統(tǒng)中引入了多級(jí)存儲(chǔ)、分批上報(bào)的機(jī)制,將需要上報(bào)的監(jiān)控信息分批次分時(shí)段上傳匯總,使得在任何單一時(shí)刻系統(tǒng)內(nèi)不會(huì)產(chǎn)生過(guò)大的流量和負(fù)載,保證了系統(tǒng)的穩(wěn)定性;其次,系統(tǒng)中加入了類(lèi)動(dòng)態(tài)主機(jī)配置協(xié)議(DHCP)的主動(dòng)發(fā)現(xiàn)機(jī)制以及定期輪詢策略,使得系統(tǒng)在處理新節(jié)點(diǎn)加入,節(jié)點(diǎn)故障問(wèn)題時(shí),獲得了類(lèi)似仿生自主神經(jīng)系統(tǒng)一樣的自組織、自修復(fù)能力。實(shí)驗(yàn)結(jié)果表明,基于BANS的云資源監(jiān)控系統(tǒng)實(shí)現(xiàn)了自組織與自修復(fù)的功能,并且可以有效降低系統(tǒng)內(nèi)的通信流量,某些單一時(shí)刻能將流量降低到僅有原來(lái)的三分之一。
關(guān)鍵詞:
云計(jì)算;資源監(jiān)控;仿生自主神經(jīng)系統(tǒng);云監(jiān)控;自組織;自修復(fù)
中圖分類(lèi)號(hào): TP391.8 文獻(xiàn)標(biāo)志碼:A
0引言
近年來(lái),社會(huì)信息化程度越來(lái)越高,尤其是云計(jì)算技術(shù)的普及和廣泛應(yīng)用,促使IT領(lǐng)域向集約化、規(guī)?;?、復(fù)雜化的方向發(fā)展[1]。監(jiān)控系統(tǒng)在保障大規(guī)模復(fù)雜系統(tǒng)正常運(yùn)行方面起著至關(guān)重要的作用?,F(xiàn)有的監(jiān)控系統(tǒng)都是借鑒分布式計(jì)算和網(wǎng)格計(jì)算[2]的設(shè)計(jì)經(jīng)驗(yàn),并不適合對(duì)云服務(wù)平臺(tái)進(jìn)行監(jiān)控。一方面云資源具有虛擬性,除了監(jiān)控物理資源外還要監(jiān)控具有寄宿關(guān)系的虛擬資源;另一方面云資源具有動(dòng)態(tài)伸縮性,資源按需動(dòng)態(tài)加入和退出,傳統(tǒng)監(jiān)控系統(tǒng)無(wú)法應(yīng)對(duì);第三方面云計(jì)算是一種新型的商業(yè)計(jì)算模型,用戶按需使用并支付一定的費(fèi)用,要求監(jiān)控系統(tǒng)的監(jiān)控粒度細(xì)化到進(jìn)程[3]。傳統(tǒng)的監(jiān)控系統(tǒng)無(wú)法做到,為此需要根據(jù)云計(jì)算的特點(diǎn)設(shè)計(jì)適合云平臺(tái)的監(jiān)控系統(tǒng)。
目前,云監(jiān)控系統(tǒng)大多采用UC Berkeley大學(xué)發(fā)起的分布式監(jiān)控系統(tǒng)Ganglia[4],其可用于監(jiān)控?cái)?shù)以千計(jì)的集群節(jié)點(diǎn),為云平臺(tái)提供系統(tǒng)的性能度量數(shù)據(jù),層次結(jié)構(gòu)的設(shè)計(jì)也使其具有了良好的擴(kuò)展性[5],但這套系統(tǒng)在實(shí)際使用中,仍存在缺點(diǎn)[6]。首先,系統(tǒng)中眾多異常狀況都會(huì)匯聚到主節(jié)點(diǎn)進(jìn)行分析,再處理,且主節(jié)點(diǎn)需要記錄系統(tǒng)所有的歷史信息,這會(huì)讓系統(tǒng)在異常處理與歷史信息記錄的時(shí)候產(chǎn)生大量的網(wǎng)絡(luò)流量,使得系統(tǒng)在某些特定時(shí)刻具有較大的通信負(fù)載;其次,當(dāng)系統(tǒng)有新節(jié)點(diǎn)加入時(shí),需要配置多個(gè)文件,以決定諸如Web界面的訪問(wèn)權(quán)限、組播地址、節(jié)點(diǎn)輪詢順序配置等屬性,過(guò)程十分重復(fù)繁瑣,不利于系統(tǒng)硬件設(shè)施的更新與淘汰;最后,層次型的結(jié)構(gòu)會(huì)使得中間層節(jié)點(diǎn)發(fā)生意外宕機(jī)時(shí),部分子節(jié)點(diǎn)的狀態(tài)信息會(huì)無(wú)法統(tǒng)計(jì),只能被動(dòng)地等待宕機(jī)節(jié)點(diǎn)重啟后,方能重新開(kāi)始統(tǒng)計(jì),這樣會(huì)導(dǎo)致監(jiān)控系統(tǒng)無(wú)法及時(shí)地發(fā)出失效警告,甚至影響到系統(tǒng)狀態(tài)統(tǒng)計(jì)的準(zhǔn)確性。
針對(duì)以上問(wèn)題,本文基于仿生學(xué)原理[7-9],設(shè)計(jì)提出了一種基于仿生自主神經(jīng)系統(tǒng)的云資源監(jiān)控系統(tǒng)(Cloud Monitoring System based on Bionic autonomic nervous system, BCMS)。該系統(tǒng)在繼承現(xiàn)有云監(jiān)控系統(tǒng)占用資源少、高擴(kuò)展性、支持高并發(fā)等特性的同時(shí),設(shè)計(jì)了新的信息匯總與異常上報(bào)機(jī)制,且加入了自組織、自適應(yīng)的特性,從而降低了網(wǎng)絡(luò)通信負(fù)載,賦予了監(jiān)控系統(tǒng)智能識(shí)別新節(jié)點(diǎn)、自修復(fù)的能力,使得監(jiān)控系統(tǒng)在大規(guī)模、超大規(guī)模云環(huán)境下,更加易于擴(kuò)展,且具有更高的可靠性。
1BCMS整體設(shè)計(jì)
BANS類(lèi)似于生物學(xué)中的自主神經(jīng)系統(tǒng),是一種在無(wú)意識(shí)的狀態(tài)下對(duì)動(dòng)物的身體機(jī)能進(jìn)行控制。比如,人的手指接觸到熱水會(huì)無(wú)意識(shí)地迅速收回等。除此之外,動(dòng)物的心跳、呼吸系統(tǒng)、膝反射、血壓和免疫系統(tǒng)等都由自主神經(jīng)系統(tǒng)控制[7]。
通過(guò)模擬生物神經(jīng)系統(tǒng)的組織構(gòu)造,BANS賦予計(jì)算機(jī)系統(tǒng)類(lèi)似的自主能力。BANS主要由神經(jīng)突軸、神經(jīng)元、周?chē)窠?jīng)以及中樞神經(jīng)四層構(gòu)成。BCMS具備5層架構(gòu),如圖1所示。
第1層人機(jī)交互層(HumanMachine Interaction, HMI)是人機(jī)交互的窗口。類(lèi)似中樞神經(jīng)中有意識(shí)控制的部分。
第2層中樞神經(jīng)(Central Nerve, CNE)類(lèi)似中樞神經(jīng)系統(tǒng)中的無(wú)意識(shí)控制部分,進(jìn)行自主決策和部分通信。監(jiān)控系統(tǒng)中樞CNE對(duì)下層上傳數(shù)據(jù)進(jìn)行分析,并進(jìn)行決策處理,若無(wú)法處理時(shí),則上傳至交互層HMI,借助管理員進(jìn)行最終決策。監(jiān)控系統(tǒng)中樞CNE有自己的記憶單元CMDB,存儲(chǔ)通過(guò)神經(jīng)纖維傳輸?shù)闹車(chē)窠?jīng)(Peripheral Nerve, PN)和神經(jīng)元(Cyber Neuron, CN)的歷史匯總信息和異常告警信息。監(jiān)控系統(tǒng)中樞CNE只定期接收來(lái)至周?chē)窠?jīng)PN的歷史匯總和異常,減少了網(wǎng)絡(luò)通信量。
第3層PN代表宿主節(jié)點(diǎn),其功能類(lèi)似于周?chē)窠?jīng),多個(gè)PN構(gòu)成了周?chē)窠?jīng)系統(tǒng)(Peripheral Nerve System, PNS),每個(gè)獨(dú)立的周?chē)窠?jīng)系統(tǒng)域內(nèi)會(huì)選舉出一個(gè)PN作為管理節(jié)點(diǎn),記為MPN(Manage Peripheral Nerve),負(fù)責(zé)該周?chē)窠?jīng)系統(tǒng)內(nèi)所有信息的收集,接受神經(jīng)元CN的查詢和傳達(dá)高層CNE的指示,每個(gè)周?chē)窠?jīng)PN中運(yùn)行數(shù)據(jù)采集器(Collector Worker, CW),用于收集本節(jié)點(diǎn)的監(jiān)控?cái)?shù)據(jù)。周?chē)窠?jīng)PN,也有自己的記憶單元PNDB(Peripheral Nerver DataBase),作為二級(jí)存儲(chǔ),存儲(chǔ)周?chē)窠?jīng)PN自身的監(jiān)控信息以及運(yùn)行在該周?chē)窠?jīng)PN上的寄主神經(jīng)元CN的歷史匯總信息。當(dāng)歷史信息容量到達(dá)某一設(shè)定值,或接收到中樞神經(jīng)CNE指令的時(shí)候,PN會(huì)上報(bào)歷史信息匯總到CNE。另外,該層的存在,有分治的思想,系統(tǒng)故障的預(yù)診斷處理由該層負(fù)責(zé),而最終的決策交給中樞CNE。
第4層CN,寄宿在節(jié)點(diǎn)之上的虛擬機(jī)(Virtual Machine, VM)類(lèi)似于神經(jīng)元,VM模塊具備數(shù)據(jù)傳輸和基礎(chǔ)數(shù)據(jù)分析的功能。每個(gè)神經(jīng)元VM都隸屬于某個(gè)周?chē)窠?jīng)PN。神經(jīng)元VM通過(guò)下層神經(jīng)突軸(Cyber Axon, CA)進(jìn)行監(jiān)控?cái)?shù)據(jù)采集,并對(duì)采集信息進(jìn)行分析、處理和匯總,完成和宿主PH的交互通信。VM具備有限的記憶單元VMDB(Virtual Machine DataBase),作為三級(jí)存儲(chǔ),存儲(chǔ)歷史匯總或異常信息,隨后定期上報(bào)給上層節(jié)點(diǎn),減少了網(wǎng)絡(luò)通信負(fù)載。
第5層CA,其主要功能為感知和反射,它負(fù)責(zé)收集監(jiān)控信息并執(zhí)行上層下發(fā)的命令。CW類(lèi)似神經(jīng)突軸,CW包含各個(gè)插件,每個(gè)插件都完成某項(xiàng)采集任務(wù),如CPU、Memory、Disk和NetIO。CW對(duì)監(jiān)控信息進(jìn)行搜集;同時(shí)可以接收上層下傳的指令,執(zhí)行相應(yīng)的動(dòng)作,如改變收集頻率或預(yù)警閾值等。
2BCMS關(guān)鍵特性設(shè)計(jì)
2.1自組織
考慮到云平臺(tái)內(nèi)資源的動(dòng)態(tài)增加和減少,對(duì)于小規(guī)模的集群這些資源的改變通過(guò)手動(dòng)去改動(dòng)配置是可行的;但是對(duì)于大規(guī)模的集群,靠手工去更改配置,將極大地降低管理員的工作效率,因此BCMS引入了一種機(jī)制去自動(dòng)感知資源的動(dòng)態(tài)增加和減少。受局域網(wǎng)的動(dòng)態(tài)主機(jī)配置協(xié)議(Dynamic Host Configuration Protocol, DHCP)啟發(fā),在BCMS中設(shè)計(jì)了一種動(dòng)態(tài)發(fā)現(xiàn)資源機(jī)制[10]。模仿DHCP網(wǎng)絡(luò)協(xié)議,中樞神經(jīng)CNE就是DHCP服務(wù)器。網(wǎng)絡(luò)環(huán)境中新增的節(jié)點(diǎn)被視為新增的資源,以PN的身份加入到整體系統(tǒng)中,PN通過(guò)組播的機(jī)制向CNE獲取監(jiān)控中心節(jié)點(diǎn)的IP、自身資源類(lèi)型、宿主關(guān)系等初始化信息。當(dāng)然也可以像設(shè)置靜態(tài)IP一樣,手動(dòng)地去添加這些信息,這樣一來(lái)就增加了靈活性。對(duì)于資源的退出,監(jiān)控中心節(jié)點(diǎn)通過(guò)心跳機(jī)制來(lái)感覺(jué)。當(dāng)資源加入到云平臺(tái)中后,資源就會(huì)以一定的頻率去組播自己的心跳信息,當(dāng)監(jiān)控中心節(jié)點(diǎn)在一定的超時(shí)時(shí)間內(nèi)無(wú)法檢測(cè)到心跳信息,將自動(dòng)從數(shù)據(jù)庫(kù)中刪除該資源的記錄。
2.2自修復(fù)
自主監(jiān)控系統(tǒng)在運(yùn)行過(guò)程中,針對(duì)故障的特點(diǎn),采取主動(dòng)的應(yīng)對(duì)措施可以通過(guò)自我修復(fù)能力一定程度地排除故障,恢復(fù)正常運(yùn)行[11-12],達(dá)到自修復(fù)的目的。對(duì)以下幾種故障,本文設(shè)計(jì)了相應(yīng)的故障修復(fù)策略。首先,當(dāng)域內(nèi)的MPN節(jié)點(diǎn)失效時(shí),區(qū)域內(nèi)的PN在設(shè)定的時(shí)間內(nèi),接收不到MPN的心跳信息,則會(huì)判定MPN失效,隨后在這個(gè)區(qū)域內(nèi)的PN會(huì)通過(guò)簡(jiǎn)單的選舉機(jī)制,選出一個(gè)PN作為新的MPN。此外,當(dāng)PN由于異常導(dǎo)致匯總數(shù)據(jù)失真,也可以通過(guò)域內(nèi)的MPN的歷史匯總數(shù)據(jù)去反饋給PN,隨后PN下載新的插件并比較現(xiàn)有插件的MD5碼,比較判斷后,更新、修復(fù)自身插件;最后,當(dāng)某神經(jīng)元CN的宿主節(jié)點(diǎn),被篡改了IP地址,影響了宿主虛擬機(jī)單元的服務(wù)提供,但由于其域內(nèi)的MPN保存有宿主機(jī)的歷史信息,所以可以通過(guò)反饋比較,進(jìn)而復(fù)原更新此CN所在PN的IP地址。
3BCMS各組成部分實(shí)現(xiàn)方法
3.1PN和MPN的實(shí)現(xiàn)
PN運(yùn)行在被監(jiān)控的資源之上,而MPN是PN的升級(jí)版,它只是比PN多了一個(gè)發(fā)言人的模塊,用于管理域內(nèi)的其他PN,其余功能和PN一樣。
PN/MPN加入系統(tǒng)后會(huì)啟動(dòng)4個(gè)線程,其工作流程描述如下。
1)主進(jìn)程啟動(dòng),讀取配置文件,解析出配置參數(shù),啟動(dòng)動(dòng)態(tài)資源發(fā)現(xiàn)機(jī)制的客戶端操作,組播請(qǐng)求加入監(jiān)控請(qǐng)求,若動(dòng)態(tài)資源發(fā)現(xiàn)機(jī)制失敗,每隔2min重新組播請(qǐng)求,嘗試10次,若還失敗,則程序停止運(yùn)行。
2)根據(jù)服務(wù)器端返回的信息,決定是否將自己升級(jí)為MPN,若是則啟動(dòng)發(fā)言人線程,若不是,則啟動(dòng)感知發(fā)言人線程。感知發(fā)言人線程與發(fā)言人線程是實(shí)現(xiàn)BCMS自組織與自修復(fù)功能的核心線程。
3)啟動(dòng)PN和MPN共有的度量采集線程和接受指令線程。
感知發(fā)言人線程是PN特有的線程,PN根據(jù)心跳信息來(lái)判斷MPN是否存活。心跳信息有兩類(lèi):一類(lèi)是正常的心跳信息,另一類(lèi)是新的MPN掌權(quán)的通知信息。正常情況下,MPN定期組播掌權(quán)心跳信息,區(qū)域內(nèi)的其他PN會(huì)接受該心跳信息,并重置超時(shí)時(shí)間;異常情況下,某個(gè)PN在3個(gè)超時(shí)間隔過(guò)去后,還沒(méi)有收到MPN的心跳信息,此時(shí)它認(rèn)定MPN宕機(jī),準(zhǔn)備接手MPN的工作,加載MPN所需的模塊,并通知區(qū)域內(nèi)其他PN,在此過(guò)程中為了保證頂替PN的唯一性,PN的超時(shí)間隔隨機(jī)產(chǎn)生,從而減小區(qū)域內(nèi)所有PN在同一時(shí)刻發(fā)現(xiàn)MPN宕機(jī)的概率,避免沖突。
發(fā)言人線程是MPN特有的線程,它主要完成PN作為發(fā)言人需要完成的任務(wù),包括定期向CNE組播區(qū)域存在心跳并這兩句不太通順,請(qǐng)作相應(yīng)調(diào)整。、定期向區(qū)域內(nèi)所有PN組播掌權(quán)心跳包括定期向CNE組播區(qū)域存在的心跳,以及定期向區(qū)域內(nèi)所有PN組播掌權(quán)心跳,接受來(lái)自CN的輪詢請(qǐng)求,并向其提供區(qū)域內(nèi)資源的性能信息,接受來(lái)自CNE的指令,并逐一發(fā)送給區(qū)域內(nèi)的所有PN,接收來(lái)自PN的異常告警信息,根據(jù)異常的類(lèi)型,決定是立即處理還是向CNE報(bào)告。
度量采集線程是監(jiān)控系統(tǒng)最基本的功能,該線程主要有兩大功能:性能信息的采集和采集信息的接收和發(fā)送,采集宿主服務(wù)節(jié)點(diǎn)的性能信息,并將該信息通過(guò)網(wǎng)絡(luò)組播給區(qū)域內(nèi)其他資源,接收區(qū)域內(nèi)其他資源組播的信息,并存儲(chǔ)在內(nèi)存中,而不是馬上發(fā)給主節(jié)點(diǎn),這樣可以減少通信負(fù)載。組播后,經(jīng)過(guò)一個(gè)sleep時(shí)間,線程開(kāi)始繼續(xù)監(jiān)聽(tīng)組播地址。sleep時(shí)間是根據(jù)主進(jìn)程讀取的配置文件中的采集頻率計(jì)算得來(lái),在計(jì)算的過(guò)程中還要考慮程序的執(zhí)行時(shí)間,對(duì)sleep的時(shí)間稍作微調(diào)。在每次性能信息收集完成之后還要和性能的閾值進(jìn)行比較。若超過(guò)閾值,則會(huì)啟動(dòng)異常處理線程,將異常信息上報(bào),這樣也將進(jìn)一步降低通信負(fù)載,隨后會(huì)根據(jù)反饋的結(jié)果進(jìn)行相應(yīng)的處理。
指令執(zhí)行線程則負(fù)責(zé)接收上層下達(dá)的指令,分析下達(dá)的指令,并創(chuàng)建進(jìn)程去執(zhí)行指令,若指令要求返回?cái)?shù)據(jù),還應(yīng)將數(shù)據(jù)返回。
3.2CNE的實(shí)現(xiàn)
CNE運(yùn)行在監(jiān)控中心節(jié)點(diǎn)之上,和PN/MPN一樣,它也是采用多線程技術(shù)實(shí)現(xiàn)。CNE初始化讀取配置文件后,依次啟動(dòng)存活心跳檢測(cè)線程、動(dòng)態(tài)資源發(fā)現(xiàn)機(jī)制服務(wù)器端線程、自主分析決策線程、與HMI的交互線程、輪詢數(shù)據(jù)獲取線程五個(gè)線程來(lái)完成CNE的功能。動(dòng)態(tài)資源發(fā)現(xiàn)機(jī)制服務(wù)器端線程和存活心跳檢測(cè)線程共同負(fù)責(zé)資源域存活列表的維護(hù),資源域存活列表是進(jìn)程中的一個(gè)鏈表結(jié)構(gòu),每一個(gè)鏈表節(jié)點(diǎn)對(duì)應(yīng)一項(xiàng)記錄,一項(xiàng)記錄是對(duì)某個(gè)資源域的描述包括資源域的標(biāo)示、資源域的描述、資源域的發(fā)言人信息、超時(shí)計(jì)數(shù)等信息,動(dòng)態(tài)資源發(fā)現(xiàn)機(jī)制服務(wù)器端線程向存活列表添加記錄,存活心跳檢測(cè)線程更新存活列表。
存活心跳檢測(cè)線程初始化后,啟動(dòng)另一線程負(fù)責(zé)接收心跳信息;同時(shí)自身以一定的頻率去遍歷存活列表這一鏈表結(jié)構(gòu)。負(fù)責(zé)接受心跳信息的線程創(chuàng)建阻塞式監(jiān)聽(tīng)套接字,根據(jù)到來(lái)的心跳信息判斷是否是新的發(fā)言人掌權(quán)通知信息。
CNE的動(dòng)態(tài)資源發(fā)現(xiàn)機(jī)制線程實(shí)現(xiàn)了監(jiān)控系統(tǒng)自組織功能在服務(wù)器端的響應(yīng)機(jī)制,其流程如圖2所示,初始化時(shí),創(chuàng)建監(jiān)聽(tīng)套接字,進(jìn)入監(jiān)聽(tīng)狀態(tài),如果有請(qǐng)求信息到來(lái),解析請(qǐng)求信息,根據(jù)解析的信息去云平臺(tái)CC數(shù)據(jù)庫(kù)中查詢是否有對(duì)應(yīng)資源域的記錄項(xiàng)(CC數(shù)據(jù)庫(kù)是云平臺(tái)的管理程序維護(hù)的數(shù)據(jù)庫(kù),CC數(shù)據(jù)庫(kù)中存儲(chǔ)了資源上線時(shí)的信息包括MAC地址、宿主關(guān)系、所屬資源域等,但該數(shù)據(jù)庫(kù)內(nèi)的信息是靜態(tài)的,即寫(xiě)入后不會(huì)動(dòng)態(tài)變化)。若不能查到對(duì)應(yīng)記錄,則返回查詢失敗信息,若能查到對(duì)應(yīng)記錄還應(yīng)該判斷發(fā)送請(qǐng)求的資源是否是新增資源域中的第一個(gè)資源,如果是還應(yīng)去資源域存活列表結(jié)構(gòu)中添加一項(xiàng)新的資源域記錄項(xiàng),判斷結(jié)束后,將查詢到的信息包括資源的類(lèi)型、宿主關(guān)系、所在資源域名字、所在資源域的發(fā)言人聯(lián)系方式等返回給發(fā)送請(qǐng)求的資源。
自主分析決策線程初始化時(shí)根據(jù)主進(jìn)程讀取的配置文件,隨后,提取監(jiān)聽(tīng)端口等信息,創(chuàng)建監(jiān)聽(tīng)套接字,進(jìn)入監(jiān)聽(tīng)狀態(tài)等待異常到來(lái),其處理流程如圖3所示。
輪詢數(shù)據(jù)獲取線程初始化時(shí)讀取配置文件獲取輪詢間隔,設(shè)定輪詢頻率,接著遍歷存活,依次和存活列表中的發(fā)言人進(jìn)行通信,獲取發(fā)言人所代表資源域的性能信息,解析收到的信息并存儲(chǔ)到數(shù)據(jù)庫(kù)中。
與HMI交互線程根據(jù)主進(jìn)程讀取的配置文件,創(chuàng)建監(jiān)聽(tīng)套接字,進(jìn)入監(jiān)聽(tīng)狀態(tài)等待Web界面發(fā)送指令。
3.3HMI的實(shí)現(xiàn)
HMI界面的實(shí)現(xiàn)涉及到PHP(Hypertext Preprocessor)、HTML(Hyper Text Markup Language)、CSS(Cascading Style Sheets)、JavaScript等網(wǎng)頁(yè)制作技術(shù)。HMI界面主要分為三大部分:云平臺(tái)總覽、狀態(tài)監(jiān)控、集中控制。云平臺(tái)總覽用于展示平臺(tái)一系列的資源信息;狀態(tài)監(jiān)控實(shí)時(shí)曲線顯示資源的性能信息,能顯示各個(gè)資源域的資源性能情況;集中控制提供下達(dá)指令接口,負(fù)責(zé)將用戶輸入的指令傳輸給后臺(tái)處理程序。
狀態(tài)監(jiān)控實(shí)時(shí)曲線顯示的原理是根據(jù)存儲(chǔ)的數(shù)據(jù)產(chǎn)生png圖片,將png圖片顯示在Web界面,為了能實(shí)時(shí)顯示曲線的變化,需要按一定頻率產(chǎn)生png圖片顯示在Web界面上。當(dāng)監(jiān)控頁(yè)面打開(kāi)后,頁(yè)面會(huì)按一定的頻率去向CN請(qǐng)求數(shù)據(jù),一次請(qǐng)求就會(huì)生成一張png圖片并顯示在Web界面,當(dāng)請(qǐng)求的頻率足夠小就能達(dá)到一種實(shí)時(shí)的效果。
4云資源監(jiān)控系統(tǒng)測(cè)試結(jié)果分析
本次實(shí)驗(yàn)分別對(duì)自組織功能、自修復(fù)功能、云資源監(jiān)控系統(tǒng)的監(jiān)控效率和監(jiān)控?cái)?shù)據(jù)的準(zhǔn)確進(jìn)行了分析和驗(yàn)證。實(shí)驗(yàn)采用2臺(tái)DELL高密服務(wù)器(具有4個(gè)計(jì)算節(jié)點(diǎn)),每個(gè)計(jì)算節(jié)點(diǎn)配置為:CPU為16 Core; Memory為128GB;Disk為3TB; Bandwidth為1000Mb/s。運(yùn)行KVM虛擬機(jī),配置:CPU為2 core; Memory為4GB; Disk為50GB; Bandwidth為1000Mb/s。服務(wù)器采用Debian 6.0.5,虛擬機(jī)采用Windows Sever 2008操作系統(tǒng)。
計(jì)算節(jié)點(diǎn)的分布和配置情況如表1所示。節(jié)點(diǎn)N1作為控制節(jié)點(diǎn),是云監(jiān)控系統(tǒng)的中樞神經(jīng)CNE。N2、N3、N4作為從屬節(jié)點(diǎn)加入到系統(tǒng)中。N1、N2同屬A服務(wù)器,N3、N4同屬B服務(wù)器。因N1屬于控制節(jié)點(diǎn),因此僅負(fù)載10個(gè)虛擬機(jī)在其上運(yùn)行,其他節(jié)點(diǎn)都各自負(fù)載30個(gè)虛擬機(jī)。每個(gè)節(jié)點(diǎn)作為一個(gè)單獨(dú)的域,其中所屬的所有虛擬機(jī)組成一個(gè)獨(dú)立的周?chē)窠?jīng)系統(tǒng)PNS。
4.1自組織功能測(cè)試
實(shí)驗(yàn)如下,首先配置好N1,作為控制節(jié)點(diǎn)啟動(dòng),待所屬虛擬機(jī)全部啟動(dòng),系統(tǒng)網(wǎng)絡(luò)數(shù)據(jù)傳輸量穩(wěn)定后;同時(shí)啟動(dòng)N2、N3、N4節(jié)點(diǎn),指定每個(gè)節(jié)點(diǎn)的1號(hào)虛擬機(jī)作為周?chē)窠?jīng)的管理節(jié)點(diǎn)MPN,待3個(gè)節(jié)點(diǎn)虛擬機(jī)建立完畢,網(wǎng)絡(luò)數(shù)據(jù)傳輸曲線趨于穩(wěn)定后,實(shí)驗(yàn)結(jié)束。在實(shí)驗(yàn)中,將記錄N2、N3、N4啟動(dòng)后各個(gè)時(shí)間點(diǎn)的網(wǎng)絡(luò)數(shù)據(jù)傳輸量,以及每個(gè)節(jié)點(diǎn)成功啟動(dòng)的虛擬機(jī)的數(shù)量(MPN收到虛擬機(jī)作為PN發(fā)出的確認(rèn)信號(hào)后,即判定此虛擬機(jī)成功啟動(dòng)),隨后繪制曲線。
由圖4可知,在節(jié)點(diǎn)啟動(dòng)后,一段時(shí)間內(nèi),新虛擬機(jī)的建立與加入使得系統(tǒng)內(nèi)流量大大增加。流量的增加來(lái)至于此句不通順,請(qǐng)作相應(yīng)調(diào)整。系統(tǒng)的類(lèi)DHCP自組織功能的實(shí)現(xiàn)流量的增加來(lái)自于系統(tǒng)內(nèi)DHCP自組織功能的實(shí)現(xiàn),在虛擬機(jī)加入系統(tǒng)時(shí),會(huì)自動(dòng)與控制節(jié)點(diǎn)CNE與域控制節(jié)點(diǎn)MPN進(jìn)行信息交互,并下載配置信息。因而在此階段,系統(tǒng)網(wǎng)絡(luò)中存在大量的信息交互。此外,圖5反映了虛擬機(jī)加入過(guò)程中,整個(gè)系統(tǒng)的總虛擬機(jī)數(shù)。值得一提的是,在虛擬機(jī)數(shù)量圖中,N2節(jié)點(diǎn)的虛擬機(jī)建立速度,明顯快于N3和N4。分析可知,N2與控制節(jié)點(diǎn)N1同屬一臺(tái)服務(wù)器A,因此,網(wǎng)絡(luò)信息的傳遞更快。
4.2自修復(fù)功能測(cè)試
實(shí)驗(yàn)環(huán)境描述如下,部署好所有節(jié)點(diǎn)和虛擬機(jī),且系統(tǒng)正常運(yùn)行(周期性地收到監(jiān)控信息)后,選取節(jié)點(diǎn)N2包含的周?chē)窠?jīng)系統(tǒng)PNS作為實(shí)驗(yàn)域。
首先,繪制一段時(shí)間內(nèi),N2節(jié)點(diǎn)域內(nèi)的網(wǎng)絡(luò)流量信息曲線,如圖6所示。
因MPN會(huì)周期性地要求域內(nèi)的PN上報(bào)監(jiān)控信息,且PN也會(huì)根據(jù)閾值自動(dòng)上傳信息,因此可以得到如圖6所示的一段時(shí)間內(nèi),N2節(jié)點(diǎn)內(nèi)部的通信流量。由圖6可以看出存在明顯的周期性特征。
隨后,人為地關(guān)閉N2節(jié)點(diǎn)中,作為域控制節(jié)點(diǎn)MPN的1號(hào)虛擬機(jī)。一段時(shí)間后,獲取1號(hào)虛擬機(jī)關(guān)閉前后一段時(shí)間內(nèi)N2節(jié)點(diǎn)域內(nèi)的流量數(shù)據(jù),繪制如圖7所示。
根據(jù)圖6所展示的監(jiān)控流量時(shí)間周期、流量大小信息,以及圖7所展示的失效時(shí)間內(nèi)系統(tǒng)監(jiān)控流量的變化可知,從9s處開(kāi)始,流量傳輸出現(xiàn)了異常狀況,而根據(jù)流量數(shù)據(jù)的摘取時(shí)間范圍屬于關(guān)閉1號(hào)虛擬機(jī)前后的時(shí)間段來(lái)看,正好可以判定,此時(shí)MPN節(jié)點(diǎn)出現(xiàn)了異常。隨后從時(shí)間17s處開(kāi)始,N2節(jié)點(diǎn)域內(nèi)恢復(fù)了正常的監(jiān)控流量傳輸。由此可以說(shuō)明,系統(tǒng)很好地實(shí)現(xiàn)了自修復(fù)功能,且能在MPN節(jié)點(diǎn)出現(xiàn)狀況后在較短時(shí)間內(nèi)選出新的主監(jiān)控節(jié)點(diǎn),使系統(tǒng)恢復(fù)正常的監(jiān)控狀態(tài)。
4.3監(jiān)控系統(tǒng)效率分析
云平臺(tái)A采用一臺(tái)DELL并部署Ganglia(Ganglia3.0.3)監(jiān)控軟件;云平臺(tái)B部署B(yǎng)CMS。平臺(tái)A、B各選取1個(gè)計(jì)算節(jié)點(diǎn)作為監(jiān)控中樞,啟動(dòng)gmetad服務(wù)和Ncontrol等相關(guān)服務(wù)進(jìn)程。各選取余下3個(gè)計(jì)算節(jié)點(diǎn),并啟動(dòng)30臺(tái)虛擬機(jī),均部署gmond服務(wù)和Nagent/Nspeake數(shù)據(jù)采集服務(wù)。
在云平臺(tái)A和B中每臺(tái)虛擬機(jī)上運(yùn)行測(cè)試程序,分別在監(jiān)控中樞服務(wù)器上使用tcpdump命令測(cè)試網(wǎng)絡(luò)通信帶寬,并將30min內(nèi)的網(wǎng)絡(luò)通信流量結(jié)果保存到指定文件中。測(cè)試結(jié)果如圖8所示(橫軸表示時(shí)間,單位為分鐘;豎軸表示網(wǎng)絡(luò)通信量,單位為:kb/s)。
在基于BANS的云資源監(jiān)控系統(tǒng)中,監(jiān)控中樞的網(wǎng)絡(luò)流量總和=f(歷史數(shù)據(jù)匯總+異常報(bào)警信息);在安裝Ganglia監(jiān)控系統(tǒng)中,網(wǎng)絡(luò)流量總和=f(實(shí)時(shí)數(shù)據(jù))。從圖4可以看出基于BANS的云資源監(jiān)控系統(tǒng),由于各層具有自主決策能力,減少了不必要數(shù)據(jù)的傳輸,對(duì)比發(fā)現(xiàn),在某些單一時(shí)刻,流量最多能降低到原來(lái)的1/3左右。
4.4監(jiān)控系統(tǒng)數(shù)據(jù)驗(yàn)證
在云平臺(tái)A和B中,分別在一臺(tái)虛擬機(jī)上運(yùn)行測(cè)試程序,記錄30min內(nèi)虛擬機(jī)上CPU利用率的情況。測(cè)試結(jié)果如圖9圖9中橫軸的單位為秒,而此處文字描述的單位為min?到底以哪個(gè)為準(zhǔn)?請(qǐng)明確。所示。
從圖9可以看出,BCMS和Ganglia系統(tǒng)的監(jiān)控結(jié)果是基本吻合的,由此可知,該監(jiān)控系統(tǒng)提供數(shù)據(jù)的真實(shí)、有效,反映了實(shí)際狀況。
5結(jié)語(yǔ)
本文針對(duì)現(xiàn)有監(jiān)控系統(tǒng)網(wǎng)絡(luò)負(fù)載過(guò)重、擴(kuò)展繁瑣、低可靠性問(wèn)題進(jìn)行了改進(jìn),提出了基于BANS構(gòu)造的云資源監(jiān)控模型,通過(guò)分級(jí)存儲(chǔ),分批上報(bào)機(jī)制,降低了系統(tǒng)的網(wǎng)絡(luò)負(fù)載;同時(shí)引入新的發(fā)現(xiàn)與輪詢機(jī)制,賦予了監(jiān)控系統(tǒng)自主能力,使得系統(tǒng)中的節(jié)點(diǎn)具有本地自治與自修復(fù)能力。后續(xù)工作可根據(jù)不同的監(jiān)控特征劃分不同的周?chē)窠?jīng)系統(tǒng),進(jìn)行按任務(wù)為導(dǎo)向的動(dòng)態(tài)區(qū)域監(jiān)控,并增加對(duì)歷史數(shù)據(jù)的進(jìn)一步挖掘分析,實(shí)現(xiàn)更多自主決策機(jī)制,進(jìn)一步擴(kuò)展模型。
參考文獻(xiàn):
[1]
MA S. A review on cloud computing development [J]. Journal of Networks, 2012, 7(2): 305-310.
[2]
GAO J, XIAO Y, LIU J, et al. A survey of communication/networking in smart grids [J]. Future Generation Computer Systems, 2012, 28(2): 391-404.
[3]
ACETO G, BOTTA A, DE DONATO W, et al. Cloud monitoring: a survey [J]. Computer Networks, 2013, 57(9): 2093-2115.
[4]
MASSIE M L, CHUN B N, CULLER D E. The Ganglia distributed monitoring system: design, implementation, and experience [J]. Parallel Computing, 2004, 30(7): 817-840.
[5]
SACERDOTI F D, KATZ M J, MASSIE M L, et al. Wide area cluster monitoring with ganglia [C]// Proceedings of the 2003 IEEE International Conference on Cluster Computing. Piscataway, NJ: IEEE, 2003: 289-298.
[6]
YANG C T, CHEN T T, CHEN S Y. Implementation of monitoring and information service using Ganglia and NWS for grid resource brokers [C]// Proceedings of the 2nd IEEE AsiaPacific Service Computing Conference. Piscataway, NJ: IEEE, 2007: 356-363.
[7]
HINCHEY M, DAI Y S, RASH J L, et al. Bionic autonomic nervous system and selfhealing for NASA ANTSlike missions [C]// Proceedings of the 2007 ACM Symposium on Applied Computing. New York: ACM, 2007: 90-96.
[8]
KEPHART J O, CHESS D M. The vision of autonomic computing [J]. Computer, 2003, 36(1): 41-50.
[9]
CARAFFINI F, NERI F, PICINALI L. An analysis on separability for memetic computing automatic design [J]. Information Sciences, 2014, 265: 1-22.(無(wú)期)
[10]
DROMS R. Stateless Dynamic Host Configuration Protocol (DHCP) Service for IPv6 [EB/OL]. [20150920]. http://tools.ietf.org/html/rfc3736.
[11]
HUEBSCHER M C, MCCANN J A. A survey of autonomic computing—degrees, models, and applications [J]. ACM Computing Surveys, 2008, 40(3): Article No. 7.
[12]
MARSHALL T, DAI Y S. Reliability improvement and models in autonomic computing [C]// Proceedings of the 11th International Conference on Parallel and Distributed Systems. Piscataway, NJ: IEEE, 2005: 468-472.