用于共享動(dòng)態(tài)云中的問題確定和診斷的方法和系統(tǒng)的制作方法
【專利摘要】本發(fā)明涉及一種用于共享動(dòng)態(tài)云中的問題確定和診斷的方法和系統(tǒng)。所述方法包括:針對至少一個(gè)度量監(jiān)視所述共享動(dòng)態(tài)云環(huán)境中的每個(gè)虛擬機(jī)和物理服務(wù)器;根據(jù)所述監(jiān)視來識別問題癥狀并生成事件;分析所述事件以確定與正常行為的偏差;以及根據(jù)現(xiàn)有知識將所述事件分類為基于云的異?;驊?yīng)用故障。
【專利說明】用于共享動(dòng)態(tài)云中的問題確定和診斷的方法和系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明的實(shí)施例一般地涉及信息技術(shù),更具體地說,涉及虛擬化技術(shù)。
【背景技術(shù)】
[0002]大型數(shù)據(jù)中心可能經(jīng)常出現(xiàn)故障,其是數(shù)據(jù)中心管理成本的主要因素。數(shù)據(jù)中心可以生成大量監(jiān)視數(shù)據(jù),但是從該數(shù)據(jù)中檢測故障和對應(yīng)的根本原因很困難。通常,通過使用預(yù)定義的閾值手動(dòng)觀察數(shù)據(jù)來執(zhí)行該任務(wù)。
[0003]此外,虛擬化云環(huán)境提出新的挑戰(zhàn),包括共享資源、對虛擬機(jī)(VM)進(jìn)行遷移和調(diào)整大小的動(dòng)態(tài)操作環(huán)境、變化的工作負(fù)載等。共享資源爭用高速緩存、磁盤和網(wǎng)絡(luò)資源,并且在區(qū)分由于爭用導(dǎo)致的性能問題與跨若干資源的應(yīng)用故障時(shí)存在挑戰(zhàn)。在區(qū)分性能異常與工作負(fù)載更改時(shí)存在動(dòng)態(tài)性挑戰(zhàn)。
[0004]虛擬化越來越多地用于新興的云系統(tǒng)。此類大規(guī)模設(shè)置中出現(xiàn)的各種異常或故障將顯著增加總管理成本,并使底層應(yīng)用的性能惡化。因此,需要用于動(dòng)態(tài)共享云的高效故障管理技術(shù),這些技術(shù)可以區(qū)分云相關(guān)異常與應(yīng)用故障。
【發(fā)明內(nèi)容】
[0005]在本發(fā)明的一個(gè)方面,提供了用于共享動(dòng)態(tài)云環(huán)境中的問題確定和診斷的技術(shù)。一種用于共享動(dòng)態(tài)云中的問題確定和診斷的示例性計(jì)算機(jī)實(shí)現(xiàn)的方法可以包括以下步驟:針對至少一個(gè)度量監(jiān)視所述共享動(dòng)態(tài)云環(huán)境中的每個(gè)虛擬機(jī)和物理服務(wù)器;根據(jù)所述監(jiān)視來識別問題癥狀并生成事件;分析所述事件以確定與正常行為的偏差;以及根據(jù)現(xiàn)有知識將所述事件分類為基于云的異?;驊?yīng)用故障。
[0006]在本發(fā)明的另一個(gè)方面,提供了一種用于共享動(dòng)態(tài)云環(huán)境中的問題確定和診斷的系統(tǒng)。所述系統(tǒng)包括存儲器、耦合到所述存儲器的至少一個(gè)處理器,以及至少一個(gè)不同軟件模塊,每個(gè)不同軟件模塊被包含在有形的計(jì)算機(jī)可讀介質(zhì)中。所述軟件模塊包括:監(jiān)視引擎模塊,其在所述處理器上執(zhí)行,用于針對至少一個(gè)度量監(jiān)視所述共享動(dòng)態(tài)云環(huán)境中的每個(gè)虛擬機(jī)和物理服務(wù)器,并輸出與每個(gè)度量對應(yīng)的監(jiān)視數(shù)據(jù)時(shí)間序列(time series);事件生成引擎模塊,其在所述處理器上執(zhí)行,用于根據(jù)所述監(jiān)視來識別問題癥狀并生成事件;問題確定引擎模塊,其在所述處理器上執(zhí)行,用于分析所述事件以確定和定位與正常行為的偏差;以及診斷引擎模塊,其在所述處理器上執(zhí)行,用于根據(jù)現(xiàn)有知識將所述事件分類為基于云的異?;驊?yīng)用故障。
[0007]在本發(fā)明的另一個(gè)方面,一種用于確定系統(tǒng)中的多個(gè)操作環(huán)境下的虛擬機(jī)行為的方法包括:在系統(tǒng)中的每個(gè)虛擬機(jī)級別監(jiān)視至少一個(gè)資源;在所述系統(tǒng)中的物理主機(jī)級別監(jiān)視每個(gè)資源的聚合使用;捕獲多個(gè)度量,所述多個(gè)度量管理每個(gè)資源在所述系統(tǒng)中的每個(gè)物理主機(jī)的所有虛擬機(jī)上的累積使用;以及分析所述度量以確定所述系統(tǒng)中的多個(gè)操作環(huán)境下的虛擬機(jī)行為。
[0008]本發(fā)明的另一個(gè)方面或其元素可以以制品的形式實(shí)現(xiàn),所述制品有形地包含計(jì)算機(jī)可讀指令,當(dāng)執(zhí)行所述計(jì)算機(jī)可讀指令時(shí),導(dǎo)致計(jì)算機(jī)執(zhí)行在此描述的多個(gè)方法步驟。此夕卜,本發(fā)明的另一個(gè)方面或其元素可以以裝置的形式實(shí)現(xiàn),所述裝置包括存儲器和至少一個(gè)處理器,所述至少一個(gè)處理器耦合到所述存儲器并且可操作以執(zhí)行所述方法步驟。更此夕卜,本發(fā)明的另一個(gè)方面或其元素可以以部件的形式實(shí)現(xiàn),所述部件用于執(zhí)行在此描述的方法步驟或其元素;所述部件可以包括(i)硬件模塊(多個(gè)),(ii)軟件模塊(多個(gè)),或(iii)硬件和軟件模塊的組合;(i)_ (iii)的任何一個(gè)都實(shí)現(xiàn)在此說明的特定技術(shù),并且所述軟件模塊被存儲在有形的計(jì)算機(jī)可讀存儲介質(zhì)(或多個(gè)此類介質(zhì))中。
[0009]從以下將結(jié)合附圖閱讀的對本發(fā)明的示例性實(shí)施例的詳細(xì)描述,本發(fā)明的這些和其它目標(biāo)、特性以及優(yōu)點(diǎn)將變得顯而易見。
【專利附圖】
【附圖說明】
[0010]圖1是示出根據(jù)本發(fā)明的一個(gè)實(shí)施例的系統(tǒng)架構(gòu)的示意圖;
[0011]圖2是示出根據(jù)本發(fā)明的一個(gè)實(shí)施例的實(shí)例故障特征(signature)參數(shù)的表;
[0012]圖3是示出根據(jù)本發(fā)明的一個(gè)實(shí)施例的故障特征實(shí)例的示意圖;
[0013]圖4是不出根據(jù)本發(fā)明的一個(gè)實(shí)施例的實(shí)例系統(tǒng)和應(yīng)用度量的表;
[0014]圖5是示出根據(jù)本發(fā)明的一個(gè)實(shí)施例的所檢測的故障情景的表;
[0015]圖6是示出根據(jù)本發(fā)明的一個(gè)實(shí)施例的用于共享動(dòng)態(tài)云環(huán)境中的問題確定和診斷的技術(shù)的流程圖;以及
[0016]圖7是其中可以實(shí)現(xiàn)本發(fā)明的至少一個(gè)實(shí)施例的示例性計(jì)算機(jī)系統(tǒng)的系統(tǒng)示意圖。
【具體實(shí)施方式】
[0017]如在此所描述的,本發(fā)明的一個(gè)方面包括共享動(dòng)態(tài)云中的問題確定和診斷。本發(fā)明的至少一個(gè)實(shí)施例包括一種三階段方法,其通過有限的訓(xùn)練或應(yīng)用知識盡可能早地識別故障。針對受影響的虛擬機(jī)和資源進(jìn)行初始檢測和故障定位之后,診斷引擎使用專家定義的故障特征將故障分類為若干類型(云相關(guān)或應(yīng)用相關(guān))中的一種。如在此所詳述的,本發(fā)明的至少一個(gè)實(shí)施例的架構(gòu)允許將系統(tǒng)擴(kuò)展到新的應(yīng)用、被監(jiān)視度量和分析技術(shù)。
[0018]因此,本發(fā)明的實(shí)施例包括區(qū)分云相關(guān)異常與應(yīng)用故障。舉例來說,云相關(guān)異常可以包括不正確的虛擬機(jī)(VM)大小設(shè)置、由于共享導(dǎo)致的影響,以及重新配置和/或遷移。非云/應(yīng)用故障例如可以包括錯(cuò)誤配置的應(yīng)用、軟件缺陷、硬件故障、工作負(fù)載更改,以及應(yīng)用或操作系統(tǒng)(OS)更新。
[0019]此外,如在此所描述的,本發(fā)明的至少一個(gè)實(shí)施例包括通過使用操作上下文信息以及被監(jiān)視VM、資源和應(yīng)用度量,促進(jìn)適應(yīng)環(huán)境的快速變化。此外,在本發(fā)明的一個(gè)實(shí)例實(shí)施例中,可以組合來自不同分析技術(shù)的結(jié)果以提高準(zhǔn)確性。
[0020]如在此進(jìn)一步所詳述的,監(jiān)視數(shù)據(jù)可以包括監(jiān)視各種系統(tǒng)和應(yīng)用度量,例如中央處理單元(CPU)、存儲器利用率、高速緩存命中/未命中率、磁盤讀取/寫入、網(wǎng)絡(luò)利用率、頁面錯(cuò)誤、每個(gè)VM的上下文切換、端到端延遲等。每個(gè)數(shù)據(jù)度量在預(yù)處理之后可以被表示為移動(dòng)平均時(shí)間序列,并且標(biāo)準(zhǔn)格式允許問題檢測技術(shù)擴(kuò)展到新度量。監(jiān)視還可以包含操作環(huán)境,包括其中執(zhí)行應(yīng)用以捕獲共存應(yīng)用的上下文。還可以使用物理主機(jī)的CPU、存儲器、高速緩存、網(wǎng)絡(luò)使用等進(jìn)行表征。
[0021]如所說明的,本發(fā)明的至少一個(gè)實(shí)施例包括一種用于問題確定和可靠診斷的三階段方法。在此類實(shí)例實(shí)施例中,第一階段識別異常行為的潛在癥狀并生成事件,每個(gè)事件定位所涉及的特定VM和資源。第二階段通過跨所涉及VM上的其它資源,以及跨運(yùn)行用于所涉及資源的相同應(yīng)用的其它VM計(jì)算相關(guān)性,進(jìn)一步分析每個(gè)事件。第三診斷階段在所述相關(guān)性值中識別與正常應(yīng)用行為的任何顯著偏差,以將故障分類為多種云相關(guān)和/或應(yīng)用相關(guān)異常中的一種。因此,當(dāng)輕量事件生成階段檢測到與正常行為的偏差時(shí),將觸發(fā)全面診斷。
[0022]本發(fā)明的至少一個(gè)實(shí)施例可以包括將應(yīng)用視為黑箱,并且需要有限的訓(xùn)練或不需要訓(xùn)練以處理新應(yīng)用。與僅監(jiān)視一個(gè)或兩個(gè)資源(例如CPU和存儲器)的許多現(xiàn)有問題確定方法不同,本發(fā)明的至少一個(gè)實(shí)施例包括監(jiān)視廣泛的資源,包括CPU、存儲器、高速緩存、磁盤和網(wǎng)絡(luò),這使能準(zhǔn)確檢測和定位多類故障。
[0023]此外,本發(fā)明系統(tǒng)的至少一個(gè)實(shí)施例被自動(dòng)化,并且僅當(dāng)標(biāo)記異常時(shí)才需要人工干預(yù)。所述系統(tǒng)指示問題的潛在源以便恢復(fù)。
[0024]本發(fā)明的至少一個(gè)實(shí)施例的診斷階段依賴專業(yè)知識以便準(zhǔn)確地對故障進(jìn)行分類。例如,可以通過標(biāo)準(zhǔn)化的故障特征提供專業(yè)知識,這些故障特征捕獲有關(guān)每個(gè)故障如何在不同度量數(shù)據(jù)中表現(xiàn)為與正常行為的偏差的特性。當(dāng)檢測到異常行為時(shí),將與正常行為的偏差的性質(zhì)和各種可用的故障特征匹配以便對故障進(jìn)行分類。所述故障特征可以以標(biāo)準(zhǔn)化的可擴(kuò)展標(biāo)記語言(XML)格式表示,并且專家可以添加或編輯有關(guān)故障情景的知識以供將來分類。
[0025]在此描述的另一個(gè)概念是操作環(huán)境的概念。因此,為了準(zhǔn)確地檢測系統(tǒng)中的故障,本發(fā)明的至少一個(gè)實(shí)施例包括在每個(gè)VM級別監(jiān)視各種資源,以及在物理主機(jī)級別監(jiān)視每個(gè)資源的聚合使用。操作環(huán)境捕獲管理資源在每個(gè)物理主機(jī)的所有VM上的累積使用的度量。特定VM的行為在一個(gè)操作環(huán)境下可能正常,但在另一個(gè)操作環(huán)境下可能異常。
[0026]舉例來說,考慮運(yùn)行應(yīng)用的VM,其延遲超過正常和/或可接受的延遲。該VM上的存儲器利用率很高,并且托管該VM的物理服務(wù)器顯示很高的頁面錯(cuò)誤和高速緩存未命中。僅有該信息可能無法揭示問題的性質(zhì),因?yàn)檫@可能由于高工作負(fù)載、應(yīng)用相關(guān)異?;蛘邚囊粋€(gè)服務(wù)器到另一個(gè)服務(wù)器的實(shí)時(shí)VM遷移所致。分析操作上下文將有助于識別問題。實(shí)時(shí)VM遷移將在源以及目的地服務(wù)器上表現(xiàn)為很高的頁面錯(cuò)誤和高速緩存未命中,而托管同一應(yīng)用的其它VM和服務(wù)器將不受影響。該影響也將是臨時(shí)的,直到遷移完成,此后應(yīng)用性能應(yīng)該恢復(fù)正常。應(yīng)用異常將僅影響托管該VM的服務(wù)器,而運(yùn)行同一應(yīng)用的其它VM將不受影響。增加的工作負(fù)載將影響運(yùn)行同一應(yīng)用的所有W,并且將通過跨VM的相關(guān)性被揭示。
[0027]圖1是示出根據(jù)本發(fā)明的一個(gè)實(shí)施例的系統(tǒng)架構(gòu)的示意圖。舉例來說,圖1示出了包括多個(gè)群集的云基礎(chǔ)架構(gòu)102。例如,一個(gè)群集被不為服務(wù)器主機(jī)104,其包括VM 106、108和110,而另一個(gè)群集被示為服務(wù)器主機(jī)112,其包括VM 114、116和118。
[0028]圖1還示出了系統(tǒng)組件,包括監(jiān)視引擎120、事件生成引擎132、問題確定引擎138和診斷引擎146。如在此所描述的,監(jiān)視引擎120針對各種度量(包括CPU、存儲器、高速緩存、網(wǎng)絡(luò)和磁盤資源)監(jiān)視每個(gè)虛擬機(jī)和物理服務(wù)器。事件生成引擎132識別故障的潛在癥狀并生成事件。問題確定引擎138分析所述事件以確定與正常行為的偏差,診斷引擎146根據(jù)專業(yè)知識對所述異常進(jìn)行分類。結(jié)合對圖1的描述,下面進(jìn)一步描述每個(gè)階段。[0029]如所說明的,監(jiān)視引擎120針對每個(gè)虛擬機(jī)和物理服務(wù)器而收集和處理與CPU、存儲器、高速緩存、網(wǎng)絡(luò)和磁盤資源有關(guān)的各種系統(tǒng)和應(yīng)用度量。具體地說,系統(tǒng)度量收集器(profiler)模塊122收集度量并將它們傳送到數(shù)據(jù)預(yù)處理器模塊126,其通過子模塊128執(zhí)行某些過濾和平滑操作。預(yù)處理通過子模塊130在移動(dòng)窗口內(nèi)獲得樣本平均值而刪除錯(cuò)誤的異常值并平滑數(shù)據(jù)中的任何扭曲(kink)。此外,監(jiān)視引擎120還包括應(yīng)用度量收集器模塊124以便收集應(yīng)用度量。
[0030]因?yàn)楫惓P袨閮H可以被識別為趨勢而且并非來自任何單個(gè)樣本值,所以本發(fā)明的至少一個(gè)實(shí)施例中的算法將處理時(shí)間序列數(shù)據(jù)。數(shù)據(jù)點(diǎn)(在此被定義為固定時(shí)間間隔內(nèi)的一系列移動(dòng)平均值)構(gòu)成本發(fā)明的至少一個(gè)實(shí)施例中的異常檢測算法的基本輸入單位。隨著時(shí)間的推移,針對被監(jiān)視的每個(gè)度量生成多個(gè)數(shù)據(jù)點(diǎn)。因此,監(jiān)視引擎120的輸出是數(shù)據(jù)點(diǎn)流,每個(gè)數(shù)據(jù)點(diǎn)源自與每個(gè)系統(tǒng)和應(yīng)用度量對應(yīng)的監(jiān)視數(shù)據(jù)時(shí)間序列。此外,系統(tǒng)可以適應(yīng)監(jiān)視被表示為類似的時(shí)間序列數(shù)據(jù)的新的度量。
[0031]考慮以下有關(guān)從時(shí)間序列數(shù)據(jù)中構(gòu)造數(shù)據(jù)點(diǎn)的實(shí)例。假設(shè)從以下十二個(gè)CPU利用率樣本開始:{34.2,26.8,32,27.7,38.2,29,30.1, 28.3,33.5,31.1, 27.8,39}。接下來,在窗口大小(例如,w=3)內(nèi)獲得移動(dòng)平均值:{31,33,28.8,32.6,32.4,29.1, 30.6,30.9,30.8,32.6,30.3,29.6}。然后,從上面的移動(dòng)平均時(shí)間序列數(shù)據(jù)中提取數(shù)據(jù)點(diǎn)。例如,如果每個(gè)數(shù)據(jù)點(diǎn)的間隔長度被定位為k=4,則獲得以下三個(gè)數(shù)據(jù)點(diǎn):[31,33,28.8,32.6]、[32.4,29.1, 30.6,30.9]和[30.8,32.6,30.3,29.6]。
[0032]要指出的是,分別在虛擬機(jī)級別和物理主機(jī)級別收集系統(tǒng)度量。這是因?yàn)槟承┵Y源(例如CPU和存儲器)通常在位于物理主機(jī)上的VM之間被分區(qū),而其它資源(例如高速緩存)被共享。為了捕獲運(yùn)行特定VM的物理主機(jī)的上下文或狀態(tài),本發(fā)明的至少一個(gè)實(shí)施例包括定義操作環(huán)境的概念。如上所述,操作環(huán)境捕獲度量,所述度量管理資源在每個(gè)物理主機(jī)的所有或多個(gè)VM上的累積使用。例如,這可以包括每個(gè)物理主機(jī)(跨其所有托管的VM)的總CPU和存儲器利用率以及高速緩存命中率。例如,在導(dǎo)致異常應(yīng)用行為(例如,較大應(yīng)用延遲)的實(shí)時(shí)VM遷移的情況下,可以觀察到,托管故障VM的物理服務(wù)器上的高速緩存命中/未命中和頁面錯(cuò)誤,與托管運(yùn)行相同應(yīng)用的其它VM的其它物理服務(wù)器上的高速緩存命中/未命中和頁面錯(cuò)誤相比不正常(異常)。
[0033]如所說明的,事件生成引擎132使用有關(guān)可能偏離正常行為的特定VM(多個(gè))和資源(多個(gè))的信息,識別異常行為的潛在癥狀并觸發(fā)事件。事件的生成可以不直接表示故障的存在,而是可以僅表明故障的可能性。可能需要進(jìn)一步分析以確認(rèn)是否存在故障,并且如果存在,則對故障進(jìn)行分類。例如,其程度前所未見的繁重工作負(fù)載(然而非故障)可能觸發(fā)事件,因?yàn)閂M的存儲器利用率異常地高。但是,進(jìn)一步分析(由問題確定引擎138執(zhí)行)可能揭示這與其它資源(例如CPU和磁盤)或運(yùn)行相同應(yīng)用的其它VM的高利用率相關(guān),因此僅確定為高工作負(fù)載情景而不是故障。
[0034]要重申的是,事件生成引擎132的作用是確定潛在異常行為的位置,以便可以進(jìn)行進(jìn)一步分析以分析所述特定VM (多個(gè))和資源(多個(gè))。這便于本發(fā)明的至少一個(gè)實(shí)施例擴(kuò)展到生成大量監(jiān)視數(shù)據(jù)的大型系統(tǒng)。此外,事件生成引擎132利用多種機(jī)器學(xué)習(xí)技術(shù)中的一種,經(jīng)由模型構(gòu)建器模塊134構(gòu)建正常應(yīng)用行為的模型。所述模型用于檢測觀察到的數(shù)據(jù)中與正常行為的偏差,并且觸發(fā)事件以輸出到事件分析器模塊136。[0035]模型構(gòu)建器模塊134可以實(shí)現(xiàn)建模技術(shù)(例如隱馬爾可夫模型(HMM)、最近鄰、K平均)和統(tǒng)計(jì)技術(shù)(例如回歸技術(shù))。所述建模技術(shù)嘗試定性和/或定量地測量被分析數(shù)據(jù)點(diǎn)與過去觀察值之間的偏離程度。本發(fā)明的至少一個(gè)實(shí)施例的架構(gòu)允許將任何建模技術(shù)作為事件生成引擎132的一部分即插即用。
[0036]舉例來說,基于HMM的建模涉及使用大量(例如,數(shù)百個(gè))數(shù)據(jù)點(diǎn)訓(xùn)練HMM,導(dǎo)致所述模型捕獲正常行為的概念。因?yàn)閼?yīng)用行為可能隨負(fù)載或工作負(fù)載混合而變化,所以本發(fā)明的至少一個(gè)實(shí)施例包括訓(xùn)練多個(gè)HMM以用于不同情景(無論在何處都提供有關(guān)典型應(yīng)用工作負(fù)載情景的知識)。如果該步驟是為了快速并具有低開銷,則可以限制所創(chuàng)建的HMM的數(shù)量??梢詾镠MM提供新的測試數(shù)據(jù)點(diǎn)以確定它與所述模型的符合程度如何。此方法的優(yōu)點(diǎn)是HMM可以捕獲數(shù)據(jù)樣本序列而不僅僅是包括該數(shù)據(jù)點(diǎn)的樣本集合。
[0037]此外,最近鄰技術(shù)包括計(jì)算所考慮的數(shù)據(jù)點(diǎn)和給定模型數(shù)據(jù)點(diǎn)集合之間的距離度量。所述模型數(shù)據(jù)點(diǎn)集合可以類似于用于HMM建模的訓(xùn)練集合,或者可以是從最近的過去中選擇的特定數(shù)量的數(shù)據(jù)點(diǎn)。后一種方法將能夠隨著時(shí)間的推移比較應(yīng)用的占用空間,并且可以以各種時(shí)間標(biāo)度檢測變化。此外,較大的距離度量將產(chǎn)生與正?;蝾A(yù)期行為的較大偏差。要指出的是,此類技術(shù)不需要任何形式的訓(xùn)練。
[0038]距離度量可以選自若干實(shí)例備選項(xiàng)之一:兩個(gè)數(shù)據(jù)點(diǎn)中的對應(yīng)樣本之間的簡單向量差、從個(gè)體樣本計(jì)算的聚合統(tǒng)計(jì)數(shù)據(jù)之間的差異(例如平均和標(biāo)準(zhǔn)偏差)、歐幾里得空間中的距離、這些度量的任意組合等。與HMM不同,所述距離度量提供在系統(tǒng)中觀察到的偏離程度的定量度量。
[0039]此外,開發(fā)了多種統(tǒng)計(jì)技術(shù)以便分析連續(xù)數(shù)據(jù)。例如,可以使用公知的回歸技術(shù)開發(fā)正常行為的模型,并且可以將任何新數(shù)據(jù)點(diǎn)與該模型比較以確定符合度。這將指示所述數(shù)據(jù)點(diǎn)是否符合所述模型,或者如果不符合,則指示所述數(shù)據(jù)點(diǎn)與所述模型的偏離程度。其它統(tǒng)計(jì)測試?yán)缈梢园ǚ蟽?yōu)度測試或基于閾值的測試。此外,統(tǒng)計(jì)技術(shù)可以應(yīng)用于從數(shù)據(jù)點(diǎn)中獲得的直方圖,而不是應(yīng)用于數(shù)據(jù)點(diǎn)本身。
[0040]如上所述,問題確定引擎138(其包括統(tǒng)計(jì)分析器模塊140和故障分類器模塊142)使用跨VM和資源的統(tǒng)計(jì)相關(guān)性,識別異常并將它們定位到受影響的資源(多個(gè))和VM (多個(gè))。對于事件生成引擎132生成的每個(gè)事件,該階段進(jìn)一步分析數(shù)據(jù)以識別異常。因此,在本發(fā)明的至少一個(gè)實(shí)施例中,不調(diào)用問題確定引擎138,除非生成事件。舉例來說,假設(shè)針對虛擬機(jī)VMi上的度量Mj生成事件。該階段然后計(jì)算有關(guān)Mj的數(shù)據(jù)和有關(guān)VMi上的每個(gè)其它度量的數(shù)據(jù)之間的相關(guān)性,以及有關(guān)VMi上的Mj的數(shù)據(jù)和有關(guān)運(yùn)行同一應(yīng)用的每個(gè)其它VM上的Mj的數(shù)據(jù)之間的相關(guān)性(無論在何處都提供該信息)。根據(jù)有關(guān)正常行為下的典型相關(guān)性值的知識,指出與正常相關(guān)性值的任何顯著偏差。這些偏差被提供給診斷引擎146,以便根據(jù)專業(yè)知識將它們分類為不同類別的故障和非故障行為。
[0041]舉例來說,假設(shè)Ttraining表示某一時(shí)間窗口 Wta內(nèi)的包含訓(xùn)練數(shù)據(jù)點(diǎn)的時(shí)間序列。Ttest表示某一窗口 Wte內(nèi)的測試數(shù)據(jù)點(diǎn)的時(shí)間序列,以便Itest中的數(shù)據(jù)點(diǎn)數(shù)量小于或等于Tteaining中的數(shù)據(jù)點(diǎn)數(shù)量。將訓(xùn)練和測試數(shù)據(jù)時(shí)間序列合并在一起以產(chǎn)生相關(guān)性樣本時(shí)間序列,表示為TM?elatim。要指出的是,每個(gè)VM上的每個(gè)系統(tǒng)度量將具有對應(yīng)的時(shí)間序列。使vm和r分別表不虛擬機(jī)和系統(tǒng)度量。使用符號Tx_M_r表不虛擬機(jī)vm的系統(tǒng)度量r的時(shí)間序列X (其中X可以是訓(xùn)練、測試或樣本時(shí)間序列)。接下來,計(jì)算
Tcorrelation—vml—r 矛口 TCorrelation—vm2—r之間的相關(guān)性(Cl),類似地計(jì)算TtMiningm和TtMining_?h時(shí)間序列之間的相關(guān)性(c2 )。相互比較得到的相關(guān)性值(Cl和c2)以標(biāo)識所述事件。將(c2)用作閾值(T)以便將所述事件確定為工作負(fù)載強(qiáng)度更改(當(dāng)abs(cl-c2) < T時(shí))還是異常(當(dāng)abS(cl-c2)>T時(shí))。
[0042]上述過程將可靠用于工作負(fù)載的更改,因?yàn)楣ぷ髫?fù)載的任何更改(例如通過圖1中的組件144示出)將不會(huì)明顯地影響跨運(yùn)行同一應(yīng)用的VM的相關(guān)性;即,所有VM的CPU和存儲器利用率將隨著工作負(fù)載的增加而增加。相比之下,如果存在影響某個(gè)特定VM和資源的異常,則這將在管理不再與運(yùn)行同一應(yīng)用的其它VM關(guān)聯(lián)的資源的度量中反映出來。
[0043]在該過程中計(jì)算的相關(guān)性總數(shù)是度量數(shù)加上運(yùn)行應(yīng)用的VM數(shù)。要指出的是,本發(fā)明的至少一個(gè)實(shí)施例包括分析生成事件所在的位置的鄰近區(qū)域。這有助于擴(kuò)展到較大系統(tǒng)大小和若干被監(jiān)視的度量。
[0044]診斷引擎146 (包括故障定位模塊148)使用預(yù)定義的專業(yè)知識,將問題確定引擎138檢測到的潛在異常情景分類為多種故障和非故障類別中的一種??梢詫⑺鰧I(yè)知識以標(biāo)準(zhǔn)化的故障特征形式提供給系統(tǒng)。故障特征在問題確定引擎138捕獲的相關(guān)性值中以及在操作環(huán)境中捕獲一組與正常行為的偏差,所述偏差是它們所描述的故障的特性。當(dāng)檢測到異常行為時(shí),嘗試將與正常行為的偏差和一個(gè)或多個(gè)已知故障特征相匹配。如果發(fā)現(xiàn)匹配,則診斷引擎146將成功地對故障進(jìn)行分類。如果未發(fā)現(xiàn)匹配,則診斷引擎將所述行為標(biāo)記為異常行為,該引擎沒有該行為的知識。圖2描述了有助于本發(fā)明的至少一個(gè)實(shí)施例區(qū)分各種故障情景的故障類型特性。
[0045]圖2是示出根據(jù)本發(fā)明的一個(gè)實(shí)施例的實(shí)例故障特征參數(shù)的表202。本發(fā)明的至少一個(gè)實(shí)施例采用XML格式描述故障特征,以便當(dāng)系統(tǒng)檢測到故障時(shí),允許擴(kuò)展以添加新的故障特征(例如,由系統(tǒng)專家添加)。因此,本發(fā)明系統(tǒng)的至少一個(gè)實(shí)施例可以通過專家?guī)椭?,學(xué)習(xí)對新類型的故障進(jìn) 行分類??梢越Y(jié)合本發(fā)明的至少一個(gè)實(shí)施例進(jìn)行的假設(shè)是每個(gè)故障具有特有的特征,并且所述特征可以以被監(jiān)視度量表示。
[0046]圖3是示出根據(jù)本發(fā)明的一個(gè)實(shí)施例的故障特征實(shí)例302的示意圖。舉例來說,圖3示出了有關(guān)兩種類型故障和一種工作負(fù)載更改情景的專家創(chuàng)建的特征的實(shí)例。使用被表示為標(biāo)記的不同上下文描述所述特征。在所述特征中僅捕獲偏離正常行為的度量并將這些度量表示為閾值,所述閾值表示與所述特征匹配所需的相關(guān)性值中的最小偏差。
[0047]例如,跨托管應(yīng)用的所有VM計(jì)算成對CPU相關(guān)性。相關(guān)性值中與正常行為的偏差必須至少與被定義為(CPU-corr-thr)的閾值大小相同,以便匹配該特征。使用的不同上下文標(biāo)記包括:(a)VM環(huán)境上下文在虛擬化資源級別捕獲故障表現(xiàn);(b)操作環(huán)境上下文捕獲在物理主機(jī)處獲得的度量,這些度量表示跨位于所述主機(jī)上的所有VM的聚合使用;(c)系統(tǒng)管理程序上下文捕獲從系統(tǒng)管理程序獲得的任何特殊日志消息;以及(d)應(yīng)用上下文捕獲應(yīng)用級別性能度量。
[0048]故障特征可以包括表征它定義的故障的那些上下文標(biāo)記中的一個(gè)或多個(gè),并且允許本發(fā)明的至少一個(gè)實(shí)施例唯一地識別該特征。圖3中示出了有關(guān)故障和工作負(fù)載更改的實(shí)例特征。根據(jù)源和目的地主機(jī)頁面錯(cuò)誤區(qū)分實(shí)時(shí)遷移故障與其它故障(操作上下文),而使用CPU、存儲器和上下文切換數(shù)中的顯著偏差來識別錯(cuò)誤的VM大小設(shè)置。圖2中匯總了不同的故障特征識別符,它們有助于本發(fā)明的至少一個(gè)實(shí)施例對故障的每個(gè)類別和子類別進(jìn)行識別和分類。[0049]如在此所詳述的,本發(fā)明的至少一個(gè)實(shí)施例包括監(jiān)視各種系統(tǒng)和應(yīng)用度量并檢測各種故障。因此,圖4是示出根據(jù)本發(fā)明的一個(gè)實(shí)施例的實(shí)例系統(tǒng)和應(yīng)用度量的表402。如在此所說明的,本發(fā)明的至少一個(gè)實(shí)施例包括監(jiān)視引擎,其從物理主機(jī)和其上的虛擬機(jī)收集測量以用于故障檢測和診斷。測量數(shù)據(jù)可以跨越多個(gè)系統(tǒng)和應(yīng)用度量。圖4中的表402列出本發(fā)明的至少一個(gè)實(shí)施例所監(jiān)視的一組系統(tǒng)度量。表402的第三列指定是在虛擬機(jī)級別還是在物理服務(wù)器級別收集度量。
[0050]圖5是示出根據(jù)本發(fā)明的一個(gè)實(shí)施例的所檢測的故障情景的表502。舉例來說,圖5描述了使用本發(fā)明的至少一個(gè)實(shí)施例所檢測的各種故障。下面將描述實(shí)例故障的詳細(xì)信
肩、O
[0051]在故障“錯(cuò)誤的VM資源大小設(shè)置”中,VM資源分配(CPU和存儲器)被錯(cuò)誤配置??紤]以下錯(cuò)誤配置情景:(a)用于目標(biāo)VM的CPU和存儲器預(yù)留被分配非常低的值;(b)CPU預(yù)留被配置有非常低的值,而存儲器預(yù)留是有效值;以及(c)存儲器預(yù)留被設(shè)置為非常低的值,而CPU預(yù)留具有有效值。
[0052]故障“故障VM實(shí)時(shí)遷移”反映可能由于虛擬機(jī)實(shí)時(shí)遷移產(chǎn)生的問題??紤]以下兩種情景。在第一種情景中,將VM遷移到嚴(yán)重?fù)砣奈锢碇鳈C(jī)。該物理主機(jī)的容量僅足以容納被遷移的VM。在第二種情景中,從沒有足夠的資源來執(zhí)行遷移的嚴(yán)重?fù)砣脑粗鳈C(jī)遷移VM。
[0053]“工作負(fù)載混合更改”故障對應(yīng)于工作負(fù)載混合或工作負(fù)載性質(zhì)的更改,這將更改應(yīng)用使用不同資源的程度?!肮ぷ髫?fù)載強(qiáng)度更改”故障指示工作負(fù)載的強(qiáng)度增大或減小,而工作負(fù)載本身的性質(zhì)保持不變。
[0054]“應(yīng)用錯(cuò)誤配置”故障表示應(yīng)用參數(shù)之一被設(shè)置為不正確或無效的值的情況。此外,“VM配置錯(cuò)誤”捕獲采用與物理主機(jī)的某些配置參數(shù)沖突的方式配置虛擬機(jī)時(shí)的情況。例如,如果源和目的地主機(jī)上的CPU沒有為虛擬機(jī)提供一組相同的特性,則諸如VM實(shí)時(shí)遷移之類的活動(dòng)將失敗。
[0055]“VM重新配置”可能在VM重新配置期間產(chǎn)生,VM重新配置可以在共享云中通過動(dòng)態(tài)VM大小調(diào)整、VM實(shí)時(shí)遷移或通過創(chuàng)建新的VM實(shí)例來實(shí)現(xiàn)?!坝捎谫Y源共享導(dǎo)致的影響”故障是指如下情況:在同一物理機(jī)上托管的兩個(gè)或更多個(gè)VM爭用資源,并且一個(gè)或多個(gè)VM的性能受到影響。例如,考慮一個(gè)VM上的高速緩存匱乏應(yīng)用,該應(yīng)用與另一個(gè)VM上的高速緩存敏感應(yīng)用被共同托管。高速緩存匱乏VM積極使用高速緩存,從而明顯地影響高速緩存命中率和其它應(yīng)用的性能。CPU獨(dú)占(hog)表示應(yīng)用進(jìn)入獨(dú)占(S卩,使用大部分)CPU的無限循環(huán)計(jì)算的情景。該故障可能通過引入C代碼塊產(chǎn)生,該代碼塊在無限循環(huán)中執(zhí)行浮點(diǎn)計(jì)算。這將消耗VM的大部分可用處理器周期,從而導(dǎo)致較差的應(yīng)用性能。
[0056]存儲器獨(dú)占表示應(yīng)用中存在存儲器泄漏的情景。這通過運(yùn)行C程序?qū)崿F(xiàn),該程序消耗目標(biāo)VM上的大量存儲器(它通過malloc不斷地從堆中預(yù)留存儲器而不釋放被分配的塊)。為應(yīng)用留下非常少的存儲器,從而導(dǎo)致應(yīng)用吞吐量顯著降低。
[0057]此外,磁盤獨(dú)占的情況類似于CPU和存儲器獨(dú)占情景,并且可以使用多個(gè)并行運(yùn)行的Hadoop排序?qū)嵗齺韺?shí)現(xiàn),以便產(chǎn)生高磁盤利用率情景。
[0058]在稱為網(wǎng)絡(luò)獨(dú)占的故障中,網(wǎng)絡(luò)鏈路的利用率很高。此外,在稱為高速緩存獨(dú)占的故障中,高速緩存密集的基準(zhǔn)與目標(biāo)VM共存以模擬高速緩存獨(dú)占。[0059]圖6是示出根據(jù)本發(fā)明的一個(gè)實(shí)施例的用于共享動(dòng)態(tài)云環(huán)境中的問題確定和診斷的技術(shù)的流程圖。步驟602包括針對至少一個(gè)度量監(jiān)視所述共享動(dòng)態(tài)云環(huán)境中的每個(gè)虛擬機(jī)和物理服務(wù)器。度量可以包括與中央處理單元、存儲器、高速緩存、網(wǎng)絡(luò)資源、磁盤資源等有關(guān)的度量。監(jiān)視另外可以包括輸出數(shù)據(jù)點(diǎn)流,每個(gè)數(shù)據(jù)點(diǎn)源自與所述共享動(dòng)態(tài)云環(huán)境中的每個(gè)系統(tǒng)和應(yīng)用度量對應(yīng)的監(jiān)視數(shù)據(jù)時(shí)間序列。此外,在本發(fā)明的至少一個(gè)實(shí)施例中,監(jiān)視包括分別在虛擬機(jī)級別和物理主機(jī)級別進(jìn)行監(jiān)視。
[0060]步驟604包括根據(jù)所述監(jiān)視識別問題癥狀并生成事件。識別癥狀可以包括從時(shí)間序列數(shù)據(jù)中識別趨勢。此外,本發(fā)明的至少一個(gè)實(shí)施例包括利用機(jī)器學(xué)習(xí)技術(shù)構(gòu)建正常應(yīng)用行為的模型,以及使用所述模型來檢測所監(jiān)視的數(shù)據(jù)中與正常行為的偏差。
[0061]步驟606包括分析所述事件以確定與正常行為的偏差。分析可以包括使用跨虛擬機(jī)和資源的統(tǒng)計(jì)相關(guān)性來定位所述偏差相對于受影響資源和虛擬機(jī)的位置。此外,本發(fā)明的至少一個(gè)實(shí)施例包括分析生成所述事件所在的位置的周圍區(qū)域。
[0062]步驟608包括根據(jù)現(xiàn)有知識將所述事件分類為基于云的異?;驊?yīng)用故障。所述現(xiàn)有(或?qū)I(yè))知識可以包括故障特征,其中故障特征捕獲一組作為事件特性的、與正常行為的偏差。此外,本發(fā)明的至少一個(gè)實(shí)施例包括當(dāng)生成事件時(shí),將所述與正常行為的偏差和故障特征相匹配,并且如果發(fā)現(xiàn)匹配,則進(jìn)一步對所述事件進(jìn)行分類,如果未發(fā)現(xiàn)匹配,則將所述事件標(biāo)記為異常行為。
[0063]還如在此所描述的,本發(fā)明的至少一個(gè)實(shí)施例包括確定系統(tǒng)中的多個(gè)操作環(huán)境下的虛擬機(jī)行為。這例如可以包括:在系統(tǒng)中的每個(gè)虛擬機(jī)級別監(jiān)視至少一個(gè)資源;在所述系統(tǒng)中的物理主機(jī)級別監(jiān)視每個(gè)資源的聚合使用;捕獲多個(gè)度量,所述多個(gè)度量管理每個(gè)資源在所述系統(tǒng)中的每個(gè)物理主機(jī)的所有虛擬機(jī)上的累積使用;并分析所述度量以確定所述系統(tǒng)中的多個(gè)操作環(huán)境下的虛擬機(jī)行為。此外,本發(fā)明的至少一個(gè)實(shí)施例可以包括根據(jù)多個(gè)操作環(huán)境下的所述虛擬機(jī)行為而檢測所述系統(tǒng)中的問題。
[0064]如在此所描述的,圖6中示出的技術(shù)還可以包括提供一種系統(tǒng),其中所述系統(tǒng)包括不同軟件模塊,所述不同軟件模塊的每一個(gè)都包含在有形的計(jì)算機(jī)可讀可記錄存儲介質(zhì)中。例如,所有模塊(或其任何子集)可以在同一介質(zhì)中,或者每一個(gè)可以在不同介質(zhì)中。所述模塊可以包括在此詳述的任何或全部組件。在本發(fā)明的一個(gè)方面,所述模塊例如可以在硬件處理器上運(yùn)行。然后可以使用所述系統(tǒng)的所述不同軟件模塊(如上所述,在硬件處理器上執(zhí)行)執(zhí)行所述方法步驟。此外,一種計(jì)算機(jī)程序產(chǎn)品可以包括有形的計(jì)算機(jī)可讀可記錄存儲介質(zhì),其具有適于被執(zhí)行的代碼以便執(zhí)行在此描述的至少一個(gè)方法步驟,包括為所述系統(tǒng)提供所述不同軟件模塊。
[0065]此外,圖6中示出的技術(shù)能夠通過可以包括計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)程序產(chǎn)品來實(shí)現(xiàn),所述計(jì)算機(jī)可用程序代碼被存儲在數(shù)據(jù)處理系統(tǒng)內(nèi)的計(jì)算機(jī)可讀存儲介質(zhì)中,并且其中通過網(wǎng)絡(luò)從遠(yuǎn)程數(shù)據(jù)處理系統(tǒng)下載所述計(jì)算機(jī)可用程序代碼。此外,在本發(fā)明的一個(gè)方面,所述計(jì)算機(jī)程序產(chǎn)品可以包括被存儲在服務(wù)器數(shù)據(jù)處理系統(tǒng)內(nèi)的計(jì)算機(jī)可讀存儲介質(zhì)中的計(jì)算機(jī)可用程序代碼,并且其中所述計(jì)算機(jī)可用程序代碼通過網(wǎng)絡(luò)下載到遠(yuǎn)程數(shù)據(jù)處理系統(tǒng),以便在所述遠(yuǎn)程系統(tǒng)的計(jì)算機(jī)可讀存儲介質(zhì)中使用。
[0066]所屬【技術(shù)領(lǐng)域】的技術(shù)人員知道,本發(fā)明的各個(gè)方面可以實(shí)現(xiàn)為系統(tǒng)、方法或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明的各個(gè)方面可以具體實(shí)現(xiàn)為以下形式,即:完全的硬件實(shí)施方式、完全的軟件實(shí)施方式(包括固件、駐留軟件、微代碼等),或軟件和硬件方面結(jié)合的實(shí)施方式,這里可以統(tǒng)稱為“電路”、“模塊”或“系統(tǒng)”。此外,本發(fā)明的各個(gè)方面還可以實(shí)現(xiàn)為在計(jì)算機(jī)可讀介質(zhì)中的計(jì)算機(jī)程序產(chǎn)品的形式,該計(jì)算機(jī)可讀介質(zhì)中包含計(jì)算機(jī)可讀的程序代碼。
[0067]本發(fā)明的一個(gè)方面或其元素可以以裝置的形式實(shí)現(xiàn),所述裝置包括存儲器和至少一個(gè)處理器,所述至少一個(gè)處理器耦合到所述存儲器并且可操作以執(zhí)行示例性方法步驟。
[0068]此外,本發(fā)明的一個(gè)方面可以使用在通用計(jì)算機(jī)或工作站上運(yùn)行的軟件。參考圖7,此類實(shí)施方式例如可以采用處理器702、存儲器704和輸入/輸出接口(例如,由顯示器706和鍵盤708形成)。術(shù)語“處理器”如在此所使用的,旨在包括任何處理設(shè)備,例如包括CPU (中央處理單元)和/或其它形式處理電路的處理設(shè)備。此外,術(shù)語“處理器”可以指多個(gè)單獨(dú)的處理器。術(shù)語“存儲器”旨在包括與處理器或CPU關(guān)聯(lián)的存儲器,例如RAM (隨機(jī)存取存儲器)、ROM (只讀存儲器)、固定存儲設(shè)備(例如,硬盤驅(qū)動(dòng)器)、可移動(dòng)存儲器設(shè)備(例如,軟盤)、閃存等。此外,詞組“輸入/輸出接口”如在此所使用的,旨在包括例如用于將數(shù)據(jù)輸入到所述處理單元中的機(jī)構(gòu)(例如,鼠標(biāo)),以及用于提供與所述處理單元關(guān)聯(lián)的結(jié)果的機(jī)構(gòu)(例如,打印機(jī))。作為數(shù)據(jù)處理單元712的一部分,處理器702、存儲器704和輸入/輸出接口(例如顯示器706和鍵盤708)例如可以通過總線710互連。還可以例如通過總線710為網(wǎng)絡(luò)接口 714 (例如網(wǎng)卡,可以提供網(wǎng)卡以便與計(jì)算機(jī)網(wǎng)絡(luò)連接)以及介質(zhì)接口 716(例如軟盤或⑶-ROM驅(qū)動(dòng)器,可以提供它們以便與介質(zhì)718連接)提供適合的互連。
[0069]因此,如在此所描述的,包括用于執(zhí)行本發(fā)明的所述方法的指令或代碼的計(jì)算機(jī)軟件可以被存儲在關(guān)聯(lián)的存儲設(shè)備(例如,ROM、固定或可移動(dòng)存儲器)中,并且當(dāng)準(zhǔn)備使用時(shí),被部分或全部加載(例如,加載到RAM中)并由CPU實(shí)現(xiàn)。此類軟件可以包括但不限于固件、駐留軟件、微代碼等。
[0070]適合于存儲和/或執(zhí)行程序代碼的數(shù)據(jù)處理系統(tǒng)將包括至少一個(gè)通過系統(tǒng)總線710直接或間接連接到存儲器元件704的處理器702。所述存儲器元件可以包括在程序代碼的實(shí)際執(zhí)行期間采用的本地存儲器、大容量存儲裝置以及提供至少某些程序代碼的臨時(shí)存儲以減少必須在執(zhí)行期間從大容量存儲裝置檢索代碼的次數(shù)的高速緩沖存儲器。
[0071]輸入/輸出或I/O設(shè)備(包括但不限于鍵盤708、顯示器706、指點(diǎn)設(shè)備等)可以直接(例如通過總線710)或通過中間I/O控制器(為清楚起見而被省略)與所述系統(tǒng)相連。
[0072]網(wǎng)絡(luò)適配器(例如網(wǎng)絡(luò)接口 714)也可以被連接到所述系統(tǒng)以使所述數(shù)據(jù)處理系統(tǒng)能夠通過中間專用或公共網(wǎng)絡(luò)變得與其它數(shù)據(jù)處理系統(tǒng)或遠(yuǎn)程打印機(jī)或存儲設(shè)備相連。調(diào)制解調(diào)器、電纜調(diào)制解調(diào)器和以太網(wǎng)卡只是當(dāng)前可用的網(wǎng)絡(luò)適配器類型中的少數(shù)幾種。
[0073]如在此(包括權(quán)利要求)所使用的,“服務(wù)器”包括運(yùn)行服務(wù)器程序的物理數(shù)據(jù)處理系統(tǒng)(例如,如圖7中示出的系統(tǒng)712)。將理解,此類物理服務(wù)器可以包括也可以不包括顯示器和鍵盤。
[0074]如所說明的,本發(fā)明的各個(gè)方面可以采取包含在計(jì)算機(jī)可讀介質(zhì)中的計(jì)算機(jī)程序產(chǎn)品的形式,所述計(jì)算機(jī)可讀介質(zhì)具有包含在其中的計(jì)算機(jī)可讀程序代碼。此外,可以采用計(jì)算機(jī)可讀介質(zhì)的任意組合。計(jì)算機(jī)可讀介質(zhì)可以是計(jì)算機(jī)可讀信號介質(zhì)或計(jì)算機(jī)可讀存儲介質(zhì)。計(jì)算機(jī)可讀存儲介質(zhì)例如可以是一但不限于一電、磁、光、電磁、紅外線、或半導(dǎo)體的系統(tǒng)、裝置或器件,或者上述的任意合適的組合。計(jì)算機(jī)可讀存儲介質(zhì)的更具體的例子(非窮舉的列表)包括:具有一個(gè)或多個(gè)導(dǎo)線的電連接、便攜式計(jì)算機(jī)盤、硬盤、隨機(jī)存取存儲器(RAM)、只讀存儲器(ROM)、可擦式可編程只讀存儲器(EPROM或閃存)、光纖、便攜式緊湊盤只讀存儲器(CD-ROM)、光存儲器件、磁存儲器件、或者上述的任意合適的組合。在本文件中,計(jì)算機(jī)可讀存儲介質(zhì)可以是任何包含或存儲程序的有形介質(zhì),該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用。
[0075]計(jì)算機(jī)可讀的信號介質(zhì)可以包括例如在基帶中或者作為載波一部分傳播的數(shù)據(jù)信號,其中承載了計(jì)算機(jī)可讀的程序代碼。此類傳播的數(shù)據(jù)信號可以采用多種形式,包括一但不限于一電磁信號、光信號或上述的任意合適的組合。計(jì)算機(jī)可讀的信號介質(zhì)還可以是計(jì)算機(jī)可讀存儲介質(zhì)以外的任何計(jì)算機(jī)可讀介質(zhì),該計(jì)算機(jī)可讀介質(zhì)可以發(fā)送、傳播或者傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用的程序。
[0076]計(jì)算機(jī)可讀介質(zhì)上包含的程序代碼可以用適當(dāng)?shù)慕橘|(zhì)傳輸,包括一但不限于一無線、有線、光纜、RF等等,或者上述的任意合適的組合。
[0077]可以以至少一種程序語言的任意組合來編寫用于執(zhí)行本發(fā)明的各個(gè)方面的操作的計(jì)算機(jī)程序代碼,所述程序設(shè)計(jì)語言包括面向?qū)ο蟮某绦蛟O(shè)計(jì)語言一諸如Java、Smalltalk、C++等,還包括常規(guī)的過程式程序設(shè)計(jì)語言一諸如“C”語言或類似的程序設(shè)計(jì)語言。程序代碼可以完全地在用戶計(jì)算機(jī)上執(zhí)行、部分地在用戶計(jì)算機(jī)上執(zhí)行、作為一個(gè)獨(dú)立的軟件包執(zhí)行、部分在用戶計(jì)算機(jī)上部分在遠(yuǎn)程計(jì)算機(jī)上執(zhí)行、或者完全在遠(yuǎn)程計(jì)算機(jī)或服務(wù)器上執(zhí)行。在涉及遠(yuǎn)程計(jì)算機(jī)的情形中,遠(yuǎn)程計(jì)算機(jī)可以通過任意種類的網(wǎng)絡(luò)一包括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN) —連接到用戶計(jì)算機(jī),或者,可以連接到外部計(jì)算機(jī)(例如利用因特網(wǎng)服務(wù)提供商來通過因特網(wǎng)連接)。
[0078]在此將參照根據(jù)本發(fā)明實(shí)施例的方法、裝置(系統(tǒng))和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或框圖描述本發(fā)明的各個(gè)方面。應(yīng)當(dāng)理解,流程圖和/或框圖的每個(gè)方框以及流程圖和/或框圖中各方框的組合,都可以由計(jì)算機(jī)程序指令實(shí)現(xiàn)。這些計(jì)算機(jī)程序指令可以提供給通用計(jì)算機(jī)、專用計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器,從而生產(chǎn)出一種機(jī)器,使得這些計(jì)算機(jī)程序指令在通過計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器執(zhí)行時(shí),產(chǎn)生了實(shí)現(xiàn)流程圖和/或框圖中的一個(gè)或多個(gè)方框中規(guī)定的功能/動(dòng)作的裝置。
[0079]也可以把這些計(jì)算機(jī)程序指令存儲在計(jì)算機(jī)可讀介質(zhì)中,這些指令使得計(jì)算機(jī)、其它可編程數(shù)據(jù)處理裝置、或其它設(shè)備以特定方式工作,從而,存儲在計(jì)算機(jī)可讀介質(zhì)中的指令就產(chǎn)生出包括實(shí)現(xiàn)流程圖和/或框圖中的一個(gè)或多個(gè)方框中規(guī)定的功能/動(dòng)作的指令的制品(article of manufacture)。因此,本發(fā)明的一個(gè)方面包括有形地包含計(jì)算機(jī)可讀指令的制品,當(dāng)執(zhí)行所述計(jì)算機(jī)可讀指令時(shí),導(dǎo)致計(jì)算機(jī)執(zhí)行在此描述的多個(gè)方法步驟。
[0080]也可以把計(jì)算機(jī)程序指令加載到計(jì)算機(jī)、其它可編程數(shù)據(jù)處理裝置、或其它設(shè)備上,使得在計(jì)算機(jī)、其它可編程數(shù)據(jù)處理裝置或其它設(shè)備上執(zhí)行一系列操作步驟,以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的過程,從而使得在計(jì)算機(jī)或其它可編程裝置上執(zhí)行的指令提供實(shí)現(xiàn)流程圖和/或框圖中的一個(gè)或多個(gè)方框中規(guī)定的功能/動(dòng)作的過程。
[0081]附圖中的流程圖和框圖顯示了根據(jù)本發(fā)明的多個(gè)實(shí)施例的系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品的可能實(shí)現(xiàn)的體系結(jié)構(gòu)、功能和操作。在這點(diǎn)上,流程圖或框圖中的每個(gè)方框可以代表一個(gè)模塊、組件段或代碼的一部分,所述模塊、組件段或代碼的一部分包括至少一個(gè)用于實(shí)現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應(yīng)當(dāng)注意,在有些作為替換的實(shí)現(xiàn)中,方框中所標(biāo)注的功能也可以以不同于附圖中所標(biāo)注的順序發(fā)生。例如,兩個(gè)連續(xù)的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時(shí)也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個(gè)方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或動(dòng)作的專用的基于硬件的系統(tǒng)來實(shí)現(xiàn),或者可以用專用硬件與計(jì)算機(jī)指令的組合來實(shí)現(xiàn)。
[0082]應(yīng)當(dāng)注意,在此描述的任何方法都可以包括提供一種系統(tǒng)的另一個(gè)步驟,所述系統(tǒng)包括包含在計(jì)算機(jī)可讀存儲介質(zhì)中的不同軟件模塊;所述模塊例如可以包括圖1中示出的任何或全部組件。然后可以使用所述系統(tǒng)的所述不同軟件模塊和/或子模塊(如上所述,在硬件處理器702上執(zhí)行)執(zhí)行所述方法步驟。此外,計(jì)算機(jī)程序產(chǎn)品可以包括計(jì)算機(jī)可讀存儲介質(zhì),其具有適于被執(zhí)行的代碼以便執(zhí)行在此描述的至少一個(gè)方法步驟,包括為所述系統(tǒng)提供所述不同軟件模塊。
[0083]在任何情況下,應(yīng)當(dāng)理解,在此示出的組件可以以各種形式的硬件、軟件或它們的組合來實(shí)現(xiàn);例如,專用集成電路(多個(gè))(ASIC)、功能電路、具有關(guān)聯(lián)存儲器的經(jīng)過適當(dāng)編程的通用數(shù)字計(jì)算機(jī)等。給予了在此提供的本發(fā)明的教導(dǎo)后,本領(lǐng)域的技術(shù)人員將能夠構(gòu)想本發(fā)明的組件的其它實(shí)現(xiàn)。
[0084]在此使用的術(shù)語只是為了描述特定的實(shí)施例并且并非旨在作為本發(fā)明的限制。如在此所使用的,單數(shù)形式“一”、“一個(gè)”和“該”旨在同樣包括復(fù)數(shù)形式,除非上下文明確地另有所指。還將理解,當(dāng)在此說明書中使用時(shí),術(shù)語“包括”和/或“包含”指定了聲明的特性、整數(shù)、步驟、操作、元素和/或組件的存在,但是并不排除其它特性、整數(shù)、步驟、操作、元素、組件和/或其組的存在或增加。
[0085]以下的權(quán)利要求中的對應(yīng)結(jié)構(gòu)、材料、操作以及所有功能性限定的裝置(means)或步驟的等同替換,旨在包括任何用于與在權(quán)利要求中具體指出的其它單元相組合地執(zhí)行該功能的結(jié)構(gòu)、材料或操作。
[0086]本發(fā)明的至少一個(gè)方面可以提供有益的效果,例如創(chuàng)建云重新配置活動(dòng)的特征以處理虛擬化驅(qū)動(dòng)的重新配置。
[0087]出于示例目的給出了對本發(fā)明的各種實(shí)施例的描述,但所述描述并非旨在是窮舉的或是限于所公開的實(shí)施例。在不偏離所描述的實(shí)施例的范圍和精神的情況下,對于本領(lǐng)域的技術(shù)人員來說許多修改和變化都將是顯而易見的。在此使用的術(shù)語的選擇是為了最佳地解釋實(shí)施例的原理、實(shí)際應(yīng)用或?qū)κ袌鲋械募夹g(shù)的技術(shù)改進(jìn),或者使本領(lǐng)域的技術(shù)人員能夠理解在此公開的實(shí)施例。
【權(quán)利要求】
1.一種用于共享動(dòng)態(tài)云環(huán)境中的問題確定和診斷的方法,所述方法包括: 針對至少一個(gè)度量監(jiān)視所述共享動(dòng)態(tài)云環(huán)境中的每個(gè)虛擬機(jī)和物理服務(wù)器; 根據(jù)所述監(jiān)視來識別問題癥狀并生成事件; 分析所述事件以確定與正常行為的偏差;以及 根據(jù)現(xiàn)有知識將所述事件分類為基于云的異?;驊?yīng)用故障; 其中由計(jì)算機(jī)設(shè)備執(zhí)行上述步驟中的至少一個(gè)步驟。
2.根據(jù)權(quán)利要求1的方法,其中所述至少一個(gè)度量包括與中央處理單元、存儲器、高速緩存、網(wǎng)絡(luò)資源和盤資源中的至少一個(gè)有關(guān)的度量。
3.根據(jù)權(quán)利要求1的方法,其中所述監(jiān)視包括輸出數(shù)據(jù)點(diǎn)流,每個(gè)數(shù)據(jù)點(diǎn)源自與所述共享動(dòng)態(tài)云環(huán)境中的每個(gè)系統(tǒng)和應(yīng)用度量對應(yīng)的監(jiān)視數(shù)據(jù)時(shí)間序列。
4.根據(jù)權(quán)利要求1的方法,其中所述監(jiān)視包括分別在虛擬機(jī)級別和物理主機(jī)級別進(jìn)行監(jiān)視。
5.根據(jù)權(quán)利要求1的方法,其中所述識別包括從時(shí)間序列數(shù)據(jù)中識別趨勢。
6.根據(jù)權(quán)利要求1的方法,包括利用機(jī)器學(xué)習(xí)技術(shù)來構(gòu)建正常應(yīng)用行為的模型。
7.根據(jù)權(quán)利要求6的方法,包括使用所述模型來檢測所監(jiān)視的數(shù)據(jù)中與正常行為的偏差。
8.根據(jù)權(quán)利要求1的方法,其中所述分析包括使用跨虛擬機(jī)和資源的統(tǒng)計(jì)相關(guān)性來定位所述偏差相對于受影響資源和虛擬機(jī)的位置。
9.根據(jù)權(quán)利要求1的方法,包括分析生成所述事件所在的位置的周圍區(qū)域。
10.根據(jù)權(quán)利要求1的方法,其中所述現(xiàn)有知識包括至少一個(gè)故障特征,其中故障特征捕獲一組作為事件特性的、與正常行為的偏差。
11.根據(jù)權(quán)利要求10的方法,包括當(dāng)生成事件時(shí),將所述與正常行為的偏差和故障特征相匹配。
12.根據(jù)權(quán)利要求11的方法,包括如果發(fā)現(xiàn)匹配,則對所述事件進(jìn)行分類。
13.根據(jù)權(quán)利要求11的方法,包括如果未發(fā)現(xiàn)匹配,則將所述事件標(biāo)記為異常行為。
14.一種用于共享動(dòng)態(tài)云環(huán)境中的問題確定和診斷的系統(tǒng),所述系統(tǒng)包括: 適于針對至少一個(gè)度量監(jiān)視所述共享動(dòng)態(tài)云環(huán)境中的每個(gè)虛擬機(jī)和物理服務(wù)器的模塊; 適于根據(jù)所述監(jiān)視來識別問題癥狀并生成事件的模塊; 適于分析所述事件以確定與正常行為的偏差的模塊;以及 適于根據(jù)現(xiàn)有知識將所述事件分類為基于云的異常或應(yīng)用故障的模塊。
15.根據(jù)權(quán)利要求14的系統(tǒng),其中所述適于針對至少一個(gè)度量監(jiān)視所述共享動(dòng)態(tài)云環(huán)境中的每個(gè)虛擬機(jī)和物理服務(wù)器的模塊包括適于輸出數(shù)據(jù)點(diǎn)流的子模塊,每個(gè)數(shù)據(jù)點(diǎn)源自與所述共享動(dòng)態(tài)云環(huán)境中的每個(gè)系統(tǒng)和應(yīng)用度量對應(yīng)的監(jiān)視數(shù)據(jù)時(shí)間序列。
16.根據(jù)權(quán)利要求14的系統(tǒng),其中所述系統(tǒng)包括: 適于利用機(jī)器學(xué)習(xí)技術(shù)來構(gòu)建正常應(yīng)用行為的模型的模塊;以及 適于使用所述模型來檢測所監(jiān)視的數(shù)據(jù)中與正常行為的偏差的模塊。
17.根據(jù)權(quán)利要求14的系統(tǒng),其中所述現(xiàn)有知識包括至少一個(gè)故障特征,其中故障特征捕獲一組作為事件特性的、與正常行為的偏差。
18.根據(jù)權(quán)利要求17的系統(tǒng),其中所述系統(tǒng)包括適于當(dāng)生成事件時(shí),將所述與正常行為的偏差和故障特征相匹配的模塊。
19.一種用于共享動(dòng)態(tài)云環(huán)境中的問題確定和診斷的系統(tǒng),所述系統(tǒng)包括: 存儲器; 耦合到所述存儲器的至少一個(gè)處理器;以及 至少一個(gè)不同軟件模塊,每個(gè)不同軟件模塊被包含在有形的計(jì)算機(jī)可讀介質(zhì)中,所述至少一個(gè)不同軟件模塊包括: 監(jiān)視引擎模塊,其在所述處理器上執(zhí)行,用于針對至少一個(gè)度量監(jiān)視所述共享動(dòng)態(tài)云環(huán)境中的每個(gè)虛擬機(jī)和物理服務(wù)器,并輸出與每個(gè)度量對應(yīng)的監(jiān)視數(shù)據(jù)時(shí)間序列; 事件生成引擎模塊,其在所述處理器上執(zhí)行,用于根據(jù)所述監(jiān)視來識別問題癥狀并生成事件; 問題確定引擎模塊,其在所述處理器上執(zhí)行,用于分析所述事件以確定和定位與正常行為的偏差;以及 診斷引擎模塊,其在所述處理器上執(zhí)行,用于根據(jù)現(xiàn)有知識將所述事件分類為基于云的異?;驊?yīng)用故障。
20.一種用于確定系統(tǒng)中的多個(gè)操作環(huán)境下的虛擬機(jī)行為的方法,所述方法包括: 在系統(tǒng)中的每個(gè)虛擬機(jī)級別監(jiān)視至少一個(gè)資源; 在所述系統(tǒng)中的物理主機(jī)級別監(jiān)視每個(gè)資源的聚合使用; 捕獲多個(gè)度量,所述多個(gè)度量管理每個(gè)資源在所述系統(tǒng)中的每個(gè)物理主機(jī)的所有虛擬機(jī)上的累積使用;以及 分析所述度量以確定所述系統(tǒng)中的多個(gè)操作環(huán)境下的虛擬機(jī)行為; 其中由計(jì)算機(jī)設(shè)備執(zhí)行上述步驟中的至少一個(gè)步驟。
21.根據(jù)權(quán)利要求20的方法,包括根據(jù)多個(gè)操作環(huán)境下的所述虛擬機(jī)行為而檢測所述系統(tǒng)中的問題。
【文檔編號】H04L29/08GK103428026SQ201310174315
【公開日】2013年12月4日 申請日期:2013年5月13日 優(yōu)先權(quán)日:2012年5月14日
【發(fā)明者】P·賈亞錢德蘭, B·沙爾瑪, A·維爾馬 申請人:國際商業(yè)機(jī)器公司