洪 斌 彭甫陽 鄧 波 王東霞
1(北京系統(tǒng)工程研究所 北京 100101)2(信息系統(tǒng)安全技術重點實驗室 北京 100101)
?
云資源狀態(tài)監(jiān)控研究綜述
洪斌1彭甫陽1鄧波1王東霞2
1(北京系統(tǒng)工程研究所北京 100101)2(信息系統(tǒng)安全技術重點實驗室北京 100101)
摘要云計算通過網(wǎng)絡共享成功實現(xiàn)了計算資源的高效利用。云資源分配的動態(tài)性、隨機性、開放性使得云平臺的服務質(zhì)量保障難題日益突出。云環(huán)境下資源狀態(tài)的監(jiān)控技術通過深入挖掘分析監(jiān)控數(shù)據(jù),及時發(fā)現(xiàn)計算資源的異常運行狀態(tài)。根據(jù)歷史運行數(shù)據(jù)等對資源的未來使用狀態(tài)做出預測。以便及時發(fā)現(xiàn)潛在的性能瓶頸和安全威脅,為用戶提供可靠穩(wěn)定的云服務。結合實例介紹了在資源狀態(tài)監(jiān)控方面有代表性的研究方法,包括概率分析、方程擬合、聚類分析等方法,并對比了各類方法的性能特點及局限性。最后討論了云資源狀態(tài)監(jiān)控技術在數(shù)據(jù)復雜度和規(guī)模等方面所面臨的技術挑戰(zhàn),并指出了原始數(shù)據(jù)去冗降維、算法設計突出非監(jiān)督化、計算任務向終端推送、分析結果協(xié)同增效等未來發(fā)展趨勢。
關鍵詞云計算虛擬資源狀態(tài)監(jiān)控
0引言
繼分布式計算、網(wǎng)格計算、對等計算之后,云計算作為一種高效的新型資源共享模式,已經(jīng)被眾多用戶接納和使用。云服務的核心是服務商通過網(wǎng)絡,向用戶提供包括計算、存儲、網(wǎng)絡、應用軟件等計算資源,并向用戶保障一定的服務質(zhì)量。由于消費者需求波動的難以預測性和軟硬件故障等原因,運營商需要實時監(jiān)控全局的資源使用情況并動態(tài)地調(diào)整相關資源的配置,為用戶提供穩(wěn)定可靠的云計算資源。
目前,國內(nèi)外主流云服務提供商均已經(jīng)將資源運行狀態(tài)數(shù)據(jù)作為一種關鍵服務向用戶開放,但這些資源狀態(tài)反饋往往止步于資源運行數(shù)據(jù)的實時反饋和簡單告警,并不提供針對這些數(shù)據(jù)的深入挖掘分析,更無法為用戶提供有效的異常狀態(tài)告警和未來資源使用情況預測。因此,云服務SLA(Service-Level Agreement)違約甚至宕機等事件時有發(fā)生,給運營商和用戶造成的損失難以估量。
2014年8月全球最大的云服務供應商Amazon連續(xù)發(fā)生兩次“宕機”事件(注:指云計算服務中斷),導致全球范圍的消費者無法通過Amazon.com、Amazon移動端以及Amazon.ca等網(wǎng)站進行購物。據(jù)推測兩次宕機致使Amazon損失了約700萬美元。同時,數(shù)以萬計的AWS(Amazon Web Service)用戶所遭受的損失更是難以估量。而近年來,微軟、IBM、谷歌等云計算領域的領軍企業(yè)也同樣遭受著宕機的困擾和威脅。如何利用數(shù)據(jù)分析手段,及早發(fā)現(xiàn)云環(huán)境中的資源狀態(tài)異常,甚至提前預測未來時間內(nèi)資源狀態(tài)的變化趨勢,成為備受關注的焦點問題。
云資源狀態(tài)監(jiān)控研究通過深入挖掘分析監(jiān)控數(shù)據(jù),及時發(fā)現(xiàn)計算資源中的異常狀態(tài),并根據(jù)歷史運行數(shù)據(jù)等對資源的未來使用狀態(tài)作出預測。云資源狀態(tài)監(jiān)控服務為運營商和用戶提供準確可靠的資源運行狀況反饋,使其能夠及時采取應急措施規(guī)避云服務宕機或資源不可用等嚴重后果。
1云資源狀態(tài)分析概述
云計算通過互聯(lián)網(wǎng)和終端將動態(tài)的資源通過“按需付費”的形式提供給用戶,實現(xiàn)了大規(guī)模資源的高效利用。然而,資源動態(tài)分配帶來的天然弊端就是資源運維難度增大,計算資源可靠性成為挑戰(zhàn)。成千上萬的用戶同時訪問和使用云資源時,云服務提供商必須合理地分配和調(diào)度資源以保證服務質(zhì)量,避免由于違背SLA協(xié)定而遭受損失。
云環(huán)境資源出現(xiàn)異常狀態(tài)的原因包括管理員操作不當、軟硬件故障、資源使用過量、惡意用戶行為等。云資源狀態(tài)分析的主要研究內(nèi)容是收集并分析資源監(jiān)測模塊測得的CPU利用率、服務響應時間等基礎數(shù)據(jù),正確識別出資源所處的狀態(tài),及時掌握云計算平臺的全局資源使用狀態(tài),并幫助云服務提供商及早地發(fā)現(xiàn)云服務性能瓶頸并定位故障節(jié)點等。而通過分析資源的歷史使用情況和用戶使用需求特征,動態(tài)地對資源未來的使用情況和變化趨勢進行預測,有助于在異常發(fā)生前采取資源調(diào)度和負載均衡等措施,避免服務異常造成損失。
云計算環(huán)境下資源狀態(tài)分析作為運維決策基礎,為計算資源狀態(tài)反饋、優(yōu)化配置、服務性能預測以及異常狀態(tài)防范提供核心技術支持。
1.1云資源狀態(tài)監(jiān)控
通過網(wǎng)絡,云計算服務提供商向用戶提供的計算資源和軟件服務包括計算、存儲、網(wǎng)絡、應用軟件等。同時,云服務提供商必須保障這些資源或服務達到用戶要求的性能指標,否則其將為此向用戶支付損失賠償。例如,當用戶租用若干臺虛擬機進行Map-Reduce任務計算時,這些性能指標就可能包括每臺虛擬機必須擁有的CPU計算速度和內(nèi)存容量等。如果在云計算資源使用的高峰時期,這些虛擬機的性能指標就可能出現(xiàn)下滑,導致計算任務超時完成,甚至無法進行。嚴重時,甚至可能出現(xiàn)大片區(qū)域范圍云服務宕機等現(xiàn)象,給用戶帶來災難性損失。為了避免這種情況的出現(xiàn),云服務商必須對其管理的所有的物理資源、虛擬資源的運行狀態(tài)進行實時監(jiān)控。這些監(jiān)控指標包括計算速度、存儲容量、網(wǎng)絡延遲、軟件可用性等。
通過將各類分布式監(jiān)控系統(tǒng)部署在提供云服務的服務器或物理計算節(jié)點上,便能實現(xiàn)云環(huán)境下資源的CPU、內(nèi)存、I/O、網(wǎng)絡等實時性能監(jiān)控數(shù)據(jù)的采集。在此基礎上,云環(huán)境下資源狀態(tài)的監(jiān)控與分析才得以展開。為方便描述,本文將云環(huán)境下資源的運行狀態(tài)劃分為正常、可疑、異常、數(shù)據(jù)不足等4個狀態(tài)類別如下:
? 正常狀態(tài):當云環(huán)境下各種資源足夠滿足SLA中提出的功能和性能要求,并且短期內(nèi)不存在使用失敗的風險時,稱此時資源處于正常狀態(tài)。
? 異常狀態(tài):當云端所提供的資源不能滿足SLA所協(xié)定的服務需求,并已經(jīng)導致用戶使用資源失敗時,則稱資源處于異常狀態(tài)。
? 可疑狀態(tài):如果云端提供的資源雖然暫時未給用戶使用帶來明顯影響,但資源性能不穩(wěn)定或存在違背SLA協(xié)定的風險時,稱資源處于可疑狀態(tài)。
? 數(shù)據(jù)不足:如果當前可供分析的監(jiān)控數(shù)據(jù)不足以獲得可靠結論或進行預測,則稱之為數(shù)據(jù)不足。
云環(huán)境下資源狀態(tài)監(jiān)控的任務是,對監(jiān)控數(shù)據(jù)采集系統(tǒng)獲得的原始數(shù)據(jù)進行預處理與分析,進而判斷資源的使用狀態(tài)(正??梢僧惓?shù)據(jù)不足),及時發(fā)現(xiàn)計算資源的異常狀態(tài)。而云環(huán)境下資源狀態(tài)預測的任務則是分析未來時間的資源使用狀況變化趨勢,實現(xiàn)云環(huán)境下資源異常狀態(tài)的提前告警。其對及早采取措施規(guī)避SLA違約、保障云服務的可靠性有積極意義。
1.2監(jiān)控系統(tǒng)框架
一般而言,云環(huán)境下資源狀態(tài)監(jiān)控系統(tǒng)的框架如圖1所示,由資源狀態(tài)監(jiān)控數(shù)據(jù)采集和存儲系統(tǒng)、監(jiān)控數(shù)據(jù)分析模塊以及分析結果反饋展示模塊構成。
圖1 云環(huán)境下資源監(jiān)控系統(tǒng)框架
其中,資源狀態(tài)數(shù)據(jù)采集系統(tǒng)負責采集云環(huán)境下計算、網(wǎng)絡、存儲、應用等各類資源的使用狀態(tài)。隨后基于這些數(shù)據(jù),狀態(tài)分析系統(tǒng)確定各類模型參數(shù),并據(jù)此作出資源數(shù)據(jù)實時狀態(tài)的判斷,并對已經(jīng)出現(xiàn)或可能出現(xiàn)的異常提出告警,為云服務供應商和租用云服務的用戶提供資源狀態(tài)報告和異常預警。
1.3云監(jiān)控服務現(xiàn)狀
云計算發(fā)展至今,全球范圍內(nèi)的云計算市場生態(tài)已經(jīng)逐步成形。傳統(tǒng)IT巨頭紛紛通過提供云計算服務,向用戶提供有償?shù)挠嬎恪⒋鎯途W(wǎng)絡資源。同時,為了保障服務質(zhì)量,各公司也研發(fā)了相應的云環(huán)境下資源監(jiān)控與告警工具,如表1所示。
表1 國內(nèi)外主要云服務資源監(jiān)控與告警情況
亞馬遜云服務Amazon EC2(Amazon Elastic Compute Cloud)作為全球范圍最大的云服務提供商,其產(chǎn)品已于2014年3月正式通過美國國防部云安全模型認證,這標志著其云服務的性能已達到軍事應用標準。Amazon EC2推出資源監(jiān)控工具CloudWatch能為用戶提供其所購買資源使用情況的詳細信息,包括CPU利用率、網(wǎng)絡流量、Web服務響應時間等。用戶可以通過設定相應的固定閾值來觸發(fā)告警,甚至觸發(fā)服務器自動停機等異常響應措施。此外,當云服務狀態(tài)發(fā)生異常并導致用戶損失時,CloudWatch也為用戶提供系統(tǒng)操作運行的日志文件和簡單索引、統(tǒng)計等功能,但并不提供對日志文件數(shù)據(jù)的深入挖掘工具。用戶無法基于這些原始數(shù)據(jù)進行異常起因溯源機制、資源未來狀態(tài)預測等分析。Microsoft云服務Azure向用戶開放的資源監(jiān)控服務、Google公司推出的谷歌應用引擎GAE(Google App Engine),以及IBM公司推出的多層次云服務藍云(Blue Cloud)等為用戶提供的資源監(jiān)控功能與Azure基本一致。
截至2014年11月,百度云用戶日前總數(shù)已突破2億人次。其資源監(jiān)控模塊“云監(jiān)控BCM”旨在為用戶提供關于磁盤空間、內(nèi)存、流量等關鍵指標的實時監(jiān)控和未來預測,用戶還可以據(jù)此自定義資源報警策略。但BCM起步較晚,實際上仍處于公測階段,資源監(jiān)控技術尚不成熟。阿里云為用戶提供了較為完整的資源監(jiān)控與告警服務,但其異常狀態(tài)判斷僅僅基于與預設固定閾值的簡單比較。例如,對云主機的CPU利用率進行連續(xù)采樣,當五個采樣周期獲得的平均值均高于90%時,則通過郵件形式向用戶發(fā)出告警。
綜上,目前國內(nèi)外的大型公有云服務提供商推出的資源監(jiān)控服務,往往止步于提供資源使用現(xiàn)狀的實時反饋。相應的資源使用告警也是普遍基于固定閾值的簡單判斷。這種基于固定閾值的告警機制需要事先設定警告閾值,其依據(jù)往往是基于經(jīng)驗或歷史數(shù)據(jù),資源告警閾值與資源的實際使用場景脫離,容易造成異常狀態(tài)的遲報、漏報或誤報,準確率較低。此外,當前主流云服務提供商提供的監(jiān)控服務基本屬于響應式異常狀態(tài)感知,不能實現(xiàn)對未來資源使用情況的預測,告警意義亦十分有限。
2云資源狀態(tài)監(jiān)控技術
為了獲取云環(huán)境下資源的使用情況,往往需要對監(jiān)控數(shù)據(jù)采集系統(tǒng)獲得的原始數(shù)據(jù)進行預處理與分析,進而判斷資源的使用狀態(tài)(正常可疑異常數(shù)據(jù)不足)。對數(shù)據(jù)作預處理的目的是為了提高后續(xù)數(shù)據(jù)分析的準確性,而對現(xiàn)有狀態(tài)數(shù)據(jù)進行異常識別則是異常監(jiān)測技術的核心問題。
在這方面,當前主流技術的理論基礎包括概率分析、數(shù)據(jù)分類、最近鄰分析、聚類分析等。下面分別介紹各類方法的前提假設、基本思路、應用實例和其相應的性能分析。
2.1基于統(tǒng)計分析的狀態(tài)監(jiān)控技術
基于統(tǒng)計分析的云資源狀態(tài)監(jiān)測技術的基本假設是,云環(huán)境下用戶對資源的正常使用情況符合特定統(tǒng)計分布規(guī)律,能用統(tǒng)計模型加以描述,而資源的異常狀態(tài)是該統(tǒng)計模型中的小概率事件。這種方法原理較為直觀,在線異常識別只需將新數(shù)據(jù)帶入模型計算便可獲知結果,算法復雜度一般為O(1)。但云環(huán)境下資源伸縮彈性大,分析歷史數(shù)據(jù)獲得的統(tǒng)計模型難以適應資源狀態(tài)不斷變化的分布特征。此外,為了獲得精確的統(tǒng)計模型,我們往往需要將訓練數(shù)據(jù)中的異常狀態(tài)點剔除。
文獻[3]提出了一種基于EM(Estimation-Maximization)算法的貝葉斯概率計算模型,利用無標簽數(shù)據(jù)集來估計監(jiān)控模型的參數(shù),實現(xiàn)資源狀態(tài)判斷。該監(jiān)控模型首先給出資源狀態(tài)的分類(正常/可疑/異常)并將數(shù)據(jù)點隨機分類完成初始化。隨后,使用EM算法迭代計算,圍繞貝葉斯準則循環(huán)計算不同狀態(tài)出現(xiàn)的概率p(State)、各狀態(tài)下產(chǎn)生某數(shù)據(jù)點的概率p(Data Point|State)和某數(shù)據(jù)點出現(xiàn)時資源處于各狀態(tài)的概率p(State|Data Point)等,如式(1),直至算法收斂。
(1)
當監(jiān)控數(shù)據(jù)采集模塊獲得新的資源狀態(tài)數(shù)據(jù)時,便可根據(jù)上述概率模型給出資源所處的狀態(tài)及相應概率估計,即p(State|Data Point)。這種模型以大量迭代計算的代價,擺脫了其對標簽數(shù)據(jù)的依賴。其不足之處在于,在準確實現(xiàn)狀態(tài)判斷的同時,需要避免增大計算量。
2.2基于數(shù)據(jù)分類的狀態(tài)監(jiān)控技術
基于數(shù)據(jù)分類的云環(huán)境資源狀態(tài)異常監(jiān)測技術的基本假設和思路是:通過學習已分類的資源使用情況數(shù)據(jù),能夠獲得有效的分類模型,而異常數(shù)據(jù)點不屬于任何分類,據(jù)此識別異常狀態(tài),文獻[1]中給出的示意如圖2所示。在云資源狀態(tài)監(jiān)控中,可以使用的分類原理包括基于神經(jīng)網(wǎng)絡、貝葉斯網(wǎng)絡、支持向量機、決策樹等多種方法。基于數(shù)據(jù)分類的狀態(tài)異常監(jiān)測可用分類算法較多,而且每次判斷實時資源狀態(tài)時,只需將數(shù)據(jù)點帶入事先確定的分類模型即可獲得結果,計算量小,可擴展性較強。
圖2 基于數(shù)據(jù)分類的異常狀態(tài)識別
這類方法的局限在于,其一般屬于半監(jiān)督式學習法,需要獲得已分好類別的正常狀態(tài)數(shù)據(jù)集,這點在云環(huán)境下往往難以實現(xiàn)。
2.3基于最近鄰分析的狀態(tài)監(jiān)控技術
基于最近鄰分析和聚類分析的云環(huán)境資源狀態(tài)異常監(jiān)測技術的基本假設和思路相近,其中最近鄰法認為:正常資源狀態(tài)對應的數(shù)據(jù)點的鄰居節(jié)點稠密,距離其他數(shù)據(jù)點距離相對較近,而異常數(shù)據(jù)點的鄰居節(jié)點稀疏,距離其他數(shù)據(jù)點距離相對較遠?;谧罱彿治龅姆椒ò╧最近鄰法、自組織圖法SOM(Self-Organizing Maps)和相對密度法等。k最近鄰法計算最近的k個狀態(tài)數(shù)據(jù)點的距離均值,超過閾值則認為是異常狀態(tài)。而相對密度法則計算指定范圍內(nèi)臨近狀態(tài)數(shù)據(jù)點的個數(shù),低于設定閾值則認為是異常狀態(tài)?;诰垲惙治龅姆椒ㄅc最近鄰的主要區(qū)別是,其是根據(jù)計算當前數(shù)據(jù)點與聚類核心節(jié)點的距離來識別正常與異常數(shù)據(jù)點,主要包括DBSCAN和K-means方法等。
文獻[4]介紹了一種基于自組織圖的資源異常狀態(tài)監(jiān)控的方法,稱為UBL(Unsupervised Behavior Learning)方法。如圖3所示,UBL首先將不同時刻資源狀態(tài)值向量映射為狀態(tài)圖上不同的神經(jīng)元點,并通過相似度迭代計算等方法使得經(jīng)常出現(xiàn)的正常數(shù)據(jù)點距離鄰居節(jié)點近,而“有異常趨勢”或已經(jīng)處于“異常”狀態(tài)的點由于出現(xiàn)次數(shù)少,訓練結果就是其距離鄰居節(jié)點較遠。當有點進入異常區(qū)的時候,就會觸發(fā)異常告警。UBL通過動態(tài)調(diào)度空閑計算資源運行計算,在較小的額外開銷下實現(xiàn)了較高復雜度的計算,狀態(tài)監(jiān)控效果較為理想。但隨著監(jiān)控數(shù)據(jù)維度增多,該方法的計算量將成倍增長。
圖3 基于自組織圖的異常狀態(tài)識別
文獻[12]基于DBSCAN聚類算法,提出了一種適用于云環(huán)境的演化聚類算法。該算法考慮到云計算資源動態(tài)伸縮的特征,通過定義懲罰代價函數(shù)Cost(t)修正靜態(tài)聚類算法產(chǎn)生的分類結果,從而實現(xiàn)適應云計算資源伸縮的動態(tài)狀態(tài)分類。
這類非監(jiān)督式學習法的優(yōu)勢在于無需事先對訓練數(shù)據(jù)集進行分類,能夠識別云環(huán)境下資源的各類異常狀態(tài)。但這類方法在訓練階段計算量相對較大,對于有N個數(shù)據(jù)點的訓練集,其算法復雜度為O(N2)。
總結本節(jié)內(nèi)容可以發(fā)現(xiàn),云環(huán)境資源監(jiān)控分析技術研究的核心內(nèi)容是數(shù)據(jù)點的“正常/可疑/異?!睜顟B(tài)辨識。云計算資源動態(tài)變化的特征給傳統(tǒng)的統(tǒng)計學分析方法帶來挑戰(zhàn),而機器學習方法則大多因?qū)撕灁?shù)據(jù)集的需求而難以擴展。在將來,輕量級、高時效、非監(jiān)督的異常狀態(tài)識別算法將獲得更多關注,例如滑動時間窗口的引入就能改進很多現(xiàn)有算法時效性差的局限。
2.4基于概率分析的狀態(tài)監(jiān)控技術
基于概率分析的資源狀態(tài)監(jiān)控技術涉及理論范圍較廣,其核心是利用歷史積累數(shù)據(jù)的統(tǒng)計特征分析來實現(xiàn)狀態(tài)預測。但這類方法普遍的局限在于,各種概率統(tǒng)計理論[5]的適用范圍往往局限于某特定領域,在預測不同云資源狀態(tài)時,不具備良好的可遷移性,亦不能綜合考慮多種資源狀態(tài)來判斷云服務的整體狀態(tài)。
文獻[7]基于馬爾科夫鏈模型,給出了更為簡化的方法。該研究直接根據(jù)資源狀態(tài)指標的不同數(shù)值區(qū)間范圍,對資源狀態(tài)進行分類,每個分類對應馬爾科夫鏈中的一個狀態(tài)點。隨后,再通過統(tǒng)計各個狀態(tài)之間的狀態(tài)轉(zhuǎn)移頻率來估計各狀態(tài)點之間的轉(zhuǎn)換概率,完成預測模型構建并基于當前系統(tǒng)狀態(tài)給出未來時刻的狀態(tài)預測和可信度估計,如圖4所示。這些方法原理簡單,計算復雜度低,可實現(xiàn)短期內(nèi)較好的狀態(tài)估計,但由于未考慮云環(huán)境下資源增減等的動態(tài)變化情況,參數(shù)固定的監(jiān)控模型不具備良好的時效性。
圖4 基于馬爾科夫鏈的CPU使用率狀態(tài)轉(zhuǎn)換圖
2.5基于方程擬合的狀態(tài)監(jiān)控技術
基于方程擬合的資源狀態(tài)監(jiān)控是指通過選取資源狀態(tài)某些指標數(shù)據(jù)作為輸入數(shù)據(jù),并設計擬合方程、進行參數(shù)優(yōu)化,從而根據(jù)確定的狀態(tài)方程檢測異常狀態(tài)。通過分析多種與資源狀態(tài)相關的參數(shù)指標(如在線用戶數(shù)量、數(shù)據(jù)包收發(fā)量等),判斷當前資源狀態(tài)是否處于“有異常趨勢”狀態(tài)。
文獻[8]基于“系統(tǒng)狀態(tài)指標與系統(tǒng)出現(xiàn)異常的概率之間存在函數(shù)關系”的假設提出一種基于方程擬合的方法,來實現(xiàn)計算機系統(tǒng)異常狀態(tài)的預測。該方程的輸入為計算機系統(tǒng)的CPU利用率、I/O帶寬、內(nèi)存使用率等數(shù)據(jù),方程輸出為“異常出現(xiàn)”的概率,并以此作為 “有異常趨勢”程度的指標。這種方法可移植性強,能夠適應云環(huán)境下多種場景的資源狀態(tài)識別,但其缺點在于同樣需要對訓練數(shù)據(jù)集進行“異常/正?!睒俗?,對未知異常不敏感。
時間序列方程擬合則是以時間為自變量,對一段歷史時間內(nèi)某資源狀態(tài)指標變化直接進行方程擬合。文獻[9]中提出一種針對某特定狀態(tài)指標的預測方程擬合方法,并考慮了日期等時期因素的影響。假設待預測的指標參數(shù)為v,則有擬合方程如式(2):
v=vaverge+αDay+βWeek+γMonth+∑Day Week Month
(2)
其中vaverage表示該檢測指標的統(tǒng)計均值,αDay表示一日內(nèi)不同時刻對該檢測指標的影響,βWeek表示周內(nèi)不同天次的影響,γMonth表示月內(nèi)不同日期的影響,∑Day Week Month則表示上述各參數(shù)的綜合波動因素。這種擬合方程獨到地考慮到云計算資源使用周期性的特點,值得借鑒。
2.6基于機器學習的狀態(tài)監(jiān)控技術
基于機器學習的資源狀態(tài)監(jiān)控是指通過使用貝葉斯分類、決策樹、自組織圖等機器學習方法,通過訓練系統(tǒng)模型,并根據(jù)當前資源狀態(tài)的數(shù)據(jù),將資源狀態(tài)分為“有異常趨勢”和“無異常趨勢”等類別,實現(xiàn)資源異常狀態(tài)的監(jiān)控。
文獻[10]使用基于閾值的簡單決策樹,對當前資源狀態(tài)的多種相互獨立的指標進行組合分析,并判斷是否即將發(fā)生異常。該研究采集訓練集中每一個“異?!辟Y源狀態(tài)之前某段時間范圍內(nèi)的狀態(tài)值,將這些數(shù)據(jù)標注為“有異常趨勢”,并據(jù)此確定決策樹的判定閾值,如圖5所示。
此外,該研究還通過優(yōu)化預報準確率(例如,最大化True Positive Rate等),調(diào)整“有異常趨勢”數(shù)據(jù)的采集半徑,并確定決策樹的判定條件組合。為了適應云環(huán)境資源動態(tài)變化的特性,該研究通過計算遞歸算法 “最優(yōu)子結構”界定了資源不同的狀態(tài)期(例如高峰時段、空閑時段等),并針對每個狀態(tài)期給出了不同的決策樹,如圖6所示。
圖5 采集“異常趨勢”的狀態(tài)點 圖6 資源狀態(tài)分類決策樹
在隨后的實時監(jiān)控中,該研究再使用樸素貝葉斯分類,確定資源狀態(tài),并結合該狀態(tài)期對應的決策樹作出下一時刻的狀態(tài)預測。該研究結合多種分類方法優(yōu)化狀態(tài)預測過程,實驗效果較好,但缺點在于大量復雜的計算可能給系統(tǒng)帶來過量的額外開銷,且這種監(jiān)督式學習方法同樣存在可擴展性差的問題。
2.7基于事件感知的狀態(tài)監(jiān)控技術
基于事件感知的資源狀態(tài)監(jiān)控法區(qū)別于上述幾種數(shù)據(jù)驅(qū)動的監(jiān)控方法,其引入了“任務事件”作為資源使用狀態(tài)監(jiān)控的重要考慮因素。例如,Web服務在售票服務開啟或即將結束時,都可能是訪問請求高峰。雖然在云環(huán)境下,許多資源使用者的行為細節(jié)對云服務供應商是透明的,但對于用戶來說,這些使用細節(jié)則是已知的。因此,基于事件感知的資源狀態(tài)監(jiān)控主要部署在私有云管理端或公有云的客戶端。
文獻[11]提出一種基于事件感知的服務負載預測算法。已知某系統(tǒng)經(jīng)受突發(fā)事件考驗的時間段,利用數(shù)據(jù)庫中類似事件的發(fā)生時的資源使用變化情況,來預測本次事件資源訪問量達到高峰的時間段。該算法簡單利用了等比例縮放的方法進行類比,實現(xiàn)未來時刻的資源使用狀態(tài)預測,其對資源使用情況變化的內(nèi)在原因進行了溯源分析,具有獨特的參考意義。
綜上,當前云環(huán)境資源狀態(tài)感知研究的主流方法是統(tǒng)計學分析和機器學習,而算法復雜度、算法可擴展性、訓練集標注需求等因素是衡量這些方法優(yōu)劣的關鍵指標。這就要求在不造成過量的額外資源開銷的同時,算法設計盡可能考慮不同資源的使用特點,降低對人工干預的依賴,提高資源狀態(tài)預測精度。基于方程擬合和事件感知的預測算法研究的理論基礎相對薄弱,但其涉及到的諸如云服務使用周期性、事件驅(qū)動預測等思想,都十分值得借鑒參考。在將來,根據(jù)云環(huán)境具有的資源規(guī)模大、使用情況復雜的特點,異常狀態(tài)監(jiān)控系統(tǒng)的設計也應該針對不同資源、不同場景分別設計不同的動態(tài)預測子模型,以期能實現(xiàn)指標覆蓋全面、高效準確的資源異常預測。
3技術挑戰(zhàn)與發(fā)展趨勢
第2節(jié)中介紹的異常數(shù)據(jù)檢測及預測技術的適用范圍相對廣泛,對數(shù)據(jù)來源并無特殊限制。實際上,有別于普通狀態(tài)監(jiān)控,云環(huán)境下的資源狀態(tài)數(shù)據(jù)具有以下兩點明顯特點。首先,相對于網(wǎng)格計算等靜態(tài)環(huán)境下的資源,云計算共享模式具有動態(tài)性、隨機性、開放性等特點,監(jiān)控對象的狀態(tài)更加復雜多變,資源使用情況的不確定因素增加,不同監(jiān)控數(shù)據(jù)之間相互耦合,數(shù)據(jù)處理難度前所未有。其次,規(guī)模龐大的云計算資源在運行過程中產(chǎn)生的狀態(tài)數(shù)據(jù)體量遠遠超出普通分布式計算,數(shù)據(jù)分析的效率和速度成為關鍵挑戰(zhàn)。因此,云資源狀態(tài)分析研究發(fā)展趨勢包括原始數(shù)據(jù)去冗降維、算法設計析突出非監(jiān)督化、計算任務向終端推送、分析結果協(xié)同增效等新的方向。
3.1原始數(shù)據(jù)去冗降維
云環(huán)境下虛擬資源數(shù)目龐大且類型繁多,成千上萬的物理機、虛擬節(jié)點之間相互耦合。監(jiān)控數(shù)據(jù)采集系統(tǒng)獲取的數(shù)據(jù)不僅數(shù)量十分龐大,而且相互之間關系也比較復雜。同一般數(shù)據(jù)處理過程一樣,云計算資源狀態(tài)數(shù)據(jù)預處理過程也包括數(shù)據(jù)清洗、數(shù)據(jù)集成、數(shù)據(jù)規(guī)約等過程。但由于云資源狀態(tài)數(shù)據(jù)處理的時效性要求較高,且其自身必須避免過量消耗計算資源,加強數(shù)據(jù)規(guī)約(去冗降維)成為研究發(fā)展的重要趨勢。
例如,主成分分析法對可能存在冗余的原始數(shù)據(jù)進行降維處理。利用現(xiàn)有各類監(jiān)控工具收集到的監(jiān)控數(shù)據(jù),諸如CPU利用率、CPU空閑時間、內(nèi)存使用率、I/O操作情況等,往往相互之間具有較強的相關性。使用PCA技術可以使降維后的數(shù)據(jù)項之間相互獨立,獲得對資源使用現(xiàn)狀更為簡潔有效的描述,進而方便后續(xù)數(shù)據(jù)分析。需要指出的是,使用PCA降維后的監(jiān)控數(shù)據(jù)的基準特征向量可能不再具有明確的物理意義。例如,其可能描述的是CPU利用率與空閑時間的組合特征,而不再僅僅對應CPU使用率或CPU空閑時間這樣的獨立特征。
此外,簇抽樣處理能夠基于不同區(qū)域位置的鄰近程度定義“簇”,從而得到若干簇的簡單隨機抽樣,有效降低數(shù)據(jù)量。例如,某用戶租用的若干虛擬資源所依賴的物理機位于北京、成都等不同地區(qū),則可以據(jù)此將其分簇,進而實現(xiàn)資源監(jiān)控數(shù)據(jù)抽樣。
3.2算法設計突出非監(jiān)督化
監(jiān)督式機器學習方法在云資源狀態(tài)監(jiān)控中已經(jīng)得到廣泛應用,但其大多依賴于標簽數(shù)據(jù)集的獲取。使用者必須首先對樣本數(shù)據(jù)集中的數(shù)據(jù)點類型進行人工劃分,定義正常、異常等數(shù)據(jù)標簽。在云環(huán)境中,基于監(jiān)督式方法的狀態(tài)監(jiān)控存在兩個問題:其一,在無后續(xù)人工標注數(shù)據(jù)的情況下,該模型無法識別新出現(xiàn)的異常狀態(tài)。其二,當前監(jiān)控模型的建立基于固定的歷史數(shù)據(jù)集,不能實現(xiàn)模型的實時修正與更新。隨著時間推進,許多新出現(xiàn)的數(shù)據(jù)被忽略,云資源狀態(tài)的最新變化態(tài)勢因而也被忽略。因此,基于監(jiān)督式學習的狀態(tài)監(jiān)控方法存在異常狀態(tài)漏報率、誤報率高等問題。
可以考慮將非監(jiān)督式分類法(如近鄰分析、聚類分析等)與監(jiān)督式學習(決策樹、貝葉斯模型等)融合,通過非監(jiān)督式分類法對動態(tài)時間窗口內(nèi)的數(shù)據(jù)進行實時分類分析。在此基礎上,利用監(jiān)督式學習法從訓練數(shù)據(jù)集中統(tǒng)計規(guī)律,進而實現(xiàn)云環(huán)境資源狀態(tài)的實時監(jiān)控。這種考慮能夠兼顧非監(jiān)督式學習的可擴展性和對新異常類型的敏感性,以及監(jiān)督式學習的高預測精度。但這種方法需要解決計算量增長的問題,這在云資源“按需付費”的使用模式下是十分必要的。
此外有別于監(jiān)督式方法,非監(jiān)督式學習無需區(qū)分出所有聚類的環(huán)節(jié),即可實現(xiàn)對離群點(異常狀態(tài))的直接識別,能夠有效降低計算負載。在分布式的狀態(tài)監(jiān)控系統(tǒng)下,這將有利于分散的虛擬機(或虛擬機群)實現(xiàn)輕量級的異常狀態(tài)監(jiān)測,獨立地保證自身資源狀態(tài)穩(wěn)定。
3.3計算任務向終端推送
為了適應云計算資源動態(tài)伸縮的特點,資源狀態(tài)數(shù)據(jù)分析系統(tǒng)必須具備良好的可擴展性,以最小的計算資源成本完成各種規(guī)模的數(shù)據(jù)處理分析任務。應該看到,云環(huán)境中分散者大量的空閑計算資源,其本身可以用于完成各類計算任務。如果將數(shù)據(jù)采集、預處理、挖掘分析等資源監(jiān)控子任務按照“統(tǒng)一分配,分散處理”的方法,向各虛擬機群推送,在不影響其正常完成用戶計算任務的同時,靈活地利用空閑資源參與監(jiān)控數(shù)據(jù)處理,將能夠較好地解決可擴展性問題。
例如,狀態(tài)監(jiān)控中心(固定計算集群)可以實時按照虛擬資源分布現(xiàn)狀對其進行樹狀結構的層次劃分,逐層采集、精簡并分析監(jiān)控數(shù)據(jù),最終實現(xiàn)虛擬資源狀態(tài)反饋匯總。狀態(tài)監(jiān)控中心在設計數(shù)據(jù)分析任務推送方案時,必須預留適當富余資源,以保證在監(jiān)控分析任務與用戶任務沖突時 ,監(jiān)控系統(tǒng)仍能正常實現(xiàn)預期的基本功能,維持資源狀態(tài)監(jiān)控的穩(wěn)定性。
此外,當監(jiān)控中心下達資源狀態(tài)監(jiān)控任務時,系統(tǒng)允許各部署在云環(huán)境中的分布式監(jiān)控系統(tǒng)的計算節(jié)點能夠根據(jù)自身負載狀態(tài)靈活控制監(jiān)控數(shù)據(jù)分析任務計算量,避免影響其他計算任務的完成。例如,可以考慮采用均方差等統(tǒng)計學方法衡量資源狀態(tài)數(shù)據(jù)的波動程度,并據(jù)此動態(tài)調(diào)整滑動時間窗口的大小。對于數(shù)據(jù)波動明顯、變化劇烈的時段,延長數(shù)據(jù)采集窗口以獲取更多數(shù)據(jù)特征信息。相反,對于資源狀態(tài)平穩(wěn)變化的時段,則縮小時間窗口,減少計算負載,避免不必要的額外開銷。
3.4多種結果協(xié)同增效
通用的異常識別方法適用范圍廣泛,對數(shù)據(jù)來源并無特殊限制,例如數(shù)據(jù)離群點識別等。但其無法有效針對各類監(jiān)控數(shù)據(jù)源本身的特征實現(xiàn)高精度狀態(tài)監(jiān)控。多層次監(jiān)控協(xié)同增效是指根據(jù)不同層次的監(jiān)控對象分別設計獨特的數(shù)據(jù)分析方案,最后綜合考慮,互為補充,實現(xiàn)各層次監(jiān)控結果的協(xié)同增效。例如,CPU利用率、服務請求響應延時等虛擬資源性能指標變化規(guī)律互不相同,因此適合用不同的計算模型來實現(xiàn)監(jiān)控預測。但虛擬服務器的CPU利用率是導致相應服務請求響應延遲的可能原因,二者的結合將有助于提高異常狀態(tài)檢測的精度和可靠性,甚至有助于實現(xiàn)異常成因推斷等更深層次的分析。
具體而言,云環(huán)境中的虛擬磁盤使用率的變化具有連續(xù)、非突變的特征,而CPU的使用率則可能在短時間內(nèi)急劇變化[12]??紤]到云環(huán)境資源數(shù)量、性能、狀態(tài)常處于動態(tài)變化中,如果用方程描述其動態(tài)變化的狀態(tài),該方程的參數(shù)也將隨時間不斷變化。而卡爾曼濾波器恰好適用于有限觀測間隔的非平穩(wěn)過程,能夠適應模型未知參數(shù)和觀測數(shù)據(jù)都隨時間變化的情況。使用卡爾曼濾波器進行虛擬磁盤使用率數(shù)據(jù)預處理,不僅能對數(shù)據(jù)描述對象過去和現(xiàn)在的狀態(tài)數(shù)據(jù)進行平滑,還能夠預測其在未來時刻的狀態(tài)數(shù)值。因此,可以考慮使用卡爾曼濾波模型實現(xiàn)虛擬磁盤使用率的提前預測。但卡爾曼濾波方法顯然不適用于對虛擬機CPU利用率的預測,因為其自身的突變型不滿足卡爾曼濾波模型的基本假設。
在實際應用中,不同的用戶對云計算資源的使用要求各異,云服務提供商必須向用戶提供包括CPU、內(nèi)存、磁盤以及網(wǎng)絡等虛擬資源的完整監(jiān)控服務。為了保障各類監(jiān)控指標異常狀態(tài)的準確識別和有效預測,必須在監(jiān)控數(shù)據(jù)分析系統(tǒng)中融入多種面向不同監(jiān)控數(shù)據(jù)類型的分析模型,并整合各類分析結果,獲得統(tǒng)一的異常識別與預測結論,推送給用戶或云服務供應商,盡早排查云環(huán)境中潛在的資源狀態(tài)異常。
4結語
本文在分析現(xiàn)有云資源狀態(tài)監(jiān)控技術研究的基礎上,較為全面地總結了狀態(tài)監(jiān)控的各類方法,分別就其前提假設、基本思路、應用實例和其相應的性能進行了歸納。本文歸納提煉了概率分析、數(shù)據(jù)分類、最近鄰分析、聚類分析等四類云資源狀態(tài)監(jiān)控研究方法以及概率分析、方程擬合、機器學習、事件感知等四類云資源狀態(tài)預測方法,并結合近幾年較為出色的相關研究成果進行了深入分析。應該指出,當前云環(huán)境資源狀態(tài)感知研究的主流方法是統(tǒng)計學分析和機器學習,而算法復雜度、算法可擴展性、訓練集標注需求等因素是衡量這些方法優(yōu)劣的關鍵指標。
本文針對現(xiàn)有算法的不足之處,對本研究領域的發(fā)展趨勢提出了包括原始數(shù)據(jù)去冗降維、算法設計突出非監(jiān)督化、計算任務向終端推送、分析結果協(xié)同增效等幾點發(fā)展趨勢的預測。在不造成過量的額外資源開銷的同時,算法設計盡可能考慮不同資源的使用特點,降低對人工干預的依賴,提高資源狀態(tài)預測精度。雖然基于方程擬合和事件感知的預測算法研究的理論基礎相對薄弱,但其涉及到的諸如云服務使用周期性、事件驅(qū)動預測等思想,都十分值得借鑒參考。在將來,根據(jù)云環(huán)境具有的資源規(guī)模大、使用情況復雜的特點,異常預測系統(tǒng)的設計也應該針對不同資源、不同場景分別設計不同的動態(tài)預測子模型,將能夠?qū)崿F(xiàn)指標覆蓋全面、高效準確的資源異常預測。
本文研究還存在若干問題需要進一步解決。首先,云環(huán)境下資源狀態(tài)監(jiān)控技術雖然目標不同,但二者均涉及到對監(jiān)控數(shù)據(jù)的處理分析以及異常識別等內(nèi)容。除了本文中單獨討論的兩類研究的理論方法以外,應該進一步探討考慮二者的融合、互為補充的可能,進而減輕計算負載。此外,云計算環(huán)境下,不同層次的云計算服務模式資源使用變化規(guī)律亦有所區(qū)別。隨著服務模式層面的上移,用戶獲得的資源使用權限增加,其狀態(tài)波動因素也隨之改變。進一步的研究應該深入探討如何結合這些特征,選擇或設計資源狀態(tài)監(jiān)控算法模型。
參考文獻
[1] Chandola V,Banerjee A,Kumar V.Anomaly detection:A survey[J].ACM Computing Surveys (CSUR),2009,41(3):15.
[2] Salfner F,Lenk M,Malek M.A survey of online failure prediction methods[J].ACM Computing Surveys (CSUR),2010,42(3):10.
[3] Guan Q,Zhang Z,Fu S.Ensemble of bayesian predictors for autonomic failure management in cloud computing[C]//Computer Communications and Networks (ICCCN),2011 Proceedings of 20th International Conference on.IEEE,2011:1-6.
[4] Dean D J,Nguyen H,Gu X.Ubl:unsupervised behavior learning for predicting performance anomalies in virtualized cloud systems[C]//Proceedings of the 9th international conference on Autonomic computing.ACM,2012:191-200.
[5] Dalmazo B L,Vilela J P,Curado M.Predicting Traffic in the Cloud:A Statistical Approach[C]//Cloud and Green Computing (CGC),2013 Third International Conference on.IEEE,2013:121-126.
[6] Ahmed W,Wu Y W.Reliability Prediction Model for SOA Using Hidden Markov Model[C]//ChinaGrid Annual Conference (ChinaGrid),2013 8th.IEEE,2013:40-45.
[7] Mallick S,Hains G,Deme C S,et al.An Alert Prediction Model for Cloud Infrastructure Monitoring[J].Performance,2013(1):6-35.
[8] Hoffmann G A,Trivedi K S,Malek M.A best practice guide to resource forecasting for computing systems[J].Reliability,IEEE Transactions on,2007,56(4):615-628.
[9] Vilalta R,Apte C V,Hellerstein J L,et al.Predictive algorithms in the management of computer systems[J].IBM Systems Journal,2002,41(3):461-474.
[10] Tan Y,Gu X,Wang H.Adaptive system anomaly prediction for large-scale hosting infrastructures[C]//Proceedings of the 29th ACM SIGACT-SIGOPS symposium on Principles of distributed computing.ACM,2010:173-182.
[11] Sladescu M,Fekete A,Lee K,et al.Event aware workload prediction:A study using auction events[M].Springer Berlin Heidelberg,2012.
[12] Zhang Y,Hong B,Zhang M,et al.eCAD:Cloud Anomalies Detection From an Evolutionary View[C]//Cloud Computing and Big Data (CloudCom-Asia),2013 International Conference on.IEEE,2013:328-334.
[13] Montes J,Sánchez A,Memishi B,et al.GMonE:A complete approach to cloud monitoring[J].Future Generation Computer Systems,2013,29(8):2026-2040.
[14] Perez-Palacin D,Calinescu R,Merseguer J.log2cloud:log-based prediction of cost-performance trade-offs for cloud deployments[C]//Proceedings of the 28th Annual ACM Symposium on Applied Computing.ACM,2013:397-404.
[15] Bermudez I,Traverso S,Munafo M,et al.A Distributed Architecture for the Monitoring of Clouds and CDNs:Applications to Amazon AWS[J].Network and Service Maragement,2014,11(4):516-529.
[16] Guan Q,Fu S.Adaptive Anomaly Identification by Exploring Metric Subspace in Cloud Computing Infrastructures[C]//Reliable Distributed Systems (SRDS),2013 IEEE 32nd International Symposium on.IEEE,2013:205-214.
[17] Dalmazo B L,Vilela J P,Curado M.Predicting Traffic in the Cloud:A Statistical Approach[C]//Cloud and Green Computing (CGC),2013 Third International Conference on.IEEE,2013:121-126.
[18] Guan Q,Zhang Z,Fu S.Ensemble of bayesian predictors for autonomic failure management in cloud computing[C]//Computer Communications and Networks (ICCCN),2011 Proceedings of 20th International Conference on.IEEE,2011:1-6.
[19] Huang T,Zhu Y,Zhang Q,et al.An LOF-Based Adaptive Anomaly Detection Scheme for Cloud Computing[C]//Computer Software and Applications Conference Workshops (COMPSACW),2013 IEEE 37th Annual.IEEE,2013:206-211.
[20] Guan Q,Fu S,DeBardeleben N,et al.Exploring Time and Frequency Domains for Accurate and Automated Anomaly Detection in Cloud Computing Systems[C]//Dependable Computing (PRDC),2013 IEEE 19th Pacific Rim International Symposium on.IEEE,2013:196-205.
[21] Amazon EC2 User Guide[EB/OL].http://aws.amazon.com/cn/documentation/ec2/.
[22] AWS.Amazon Cloudwatch Developer Guide[EB/OL].http://aws.amazon.com/cn/cloudwatch/.
[23] GAE.Google GAE Developer Guide[EB/OL].https://cloud.google.com/appengine/docs.
[24] Microsoft Corporation.Microsoft Azure[EB/OL].http://azure.microsoft.com/en-us/documentation/articles/cloud-services-how-to-monitor/.
[25] IBM Corporation.IBM BlueCloud Security[EB/OL].http://www.ibm.com/cloud-computing/us/en/security.html.
[26] 百度開放云.百度云監(jiān)控BCM開發(fā)指南[EB/OL].http://bce.baidu.com/Product/BCM.html.
[27] 阿里云計算有限公司.阿里云監(jiān)控CMS用戶指南[EB/OL].http://help.aliyun.com/view/13444036.html?spm=5176.383732.9.2.4vJntr.
[28] 騰訊云平臺.騰訊云監(jiān)控關鍵指標說明[EB/OL].http://wiki.qcloud.com/wiki/%E7%9B%91%E6%8E%A7%E6%9C%8D%E5%8A%A1#2._.E7.9B.91.E6.8E.A7.E6.A6.82.E5.86.B5.E9.A1.B5.E9.9D.A2.E5.85.B3.E9.94.AE.E6.8C.87.E6.A0.87.E8.AF.B4.E6.98.8E.
[29] OpenStack.OpenStack Admin Guide[EB/OL].http://docs.openstack.org/admin-guide-cloud/content/.
[30] Ganglia.The Ganglia Distributed Monitoring System Design Implementation and Experiment[EB/OL].http://ganglia.sourceforge.net/.
[31] Nagios.Nagios Overview[EB/OL].http://library.nagios.com/about/overview.
A SURVEY ON STATE MONITORING OF COMPUTATIONAL RESOURCES IN CLOUD
Hong Bin1Peng Fuyang1Deng Bo1Wang Dongxia2
1(Beijing Institute of System Engineering,Beijing 100101,China)2(NationalKeyLaboratoryofScienceandTechnologyonInformationSystemSecurity,Beijing100101,China)
AbstractCloud computing successfully achieves the efficient use of computational resources through internet sharing. The characteristics of cloud resources allocation such as the dynamics property, randomness and openness make the difficulty in QoS (Quality of Service) assurance be increasingly noticeable. Through mining and analysing in depth the monitoring data, the monitoring technologies for resource state in cloud environment find timely the abnormal operation states in those computational resources, and make the prediction on resources usage state in the future according to historical operation data so as to timely discover potential performance bottlenecks and security threats, these provide the reliable and stable cloud services to users. In combination with instances, in the paper we introduce some representative research approaches in regard to resources states monitoring, including probability analysis, equation fitting and clustering analysis, etc., and compare the performance features and limitations of different methods. In end of the paper, we discuss the technical challenges encountered by the monitoring technologies for cloud resource states in the aspects of data complexity and scale, and point out the future development trend such as redundancy removal and dimensionality reduction of primitive data, non-supervision highlighting in algorithm design and analysis, pushing the computational tasks to terminals, and synergies of analysis results, etc.
KeywordsCloud computingVirtualised resourcesState monitoring
收稿日期:2015-01-20。國家自然科學基金項目(61271252);國家高技術研究發(fā)展計劃項目(2013AA01A215)。洪斌,碩士生,主研領域:云計算資源監(jiān)控。彭甫陽,研究員。鄧波,研究員。王東霞,研究員。
中圖分類號TP393.0
文獻標識碼A
DOI:10.3969/j.issn.1000-386x.2016.06.001