專(zhuān)利名稱(chēng):一種連續(xù)監(jiān)聽(tīng)VMWare事件的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)技術(shù),具體地講是一種連續(xù)監(jiān)聽(tīng)VMWare事件的方法和裝置。
背景技術(shù):
云計(jì)算的一個(gè)重要技術(shù)實(shí)現(xiàn)是虛擬化,即把計(jì)算資源、存儲(chǔ)資源和網(wǎng)絡(luò)資源虛擬化。計(jì)算資源虛擬化,是指云計(jì)算提供的服務(wù)不是固定的基于某臺(tái)具體的物理服務(wù)器,而是動(dòng)態(tài)的基于一臺(tái)或多臺(tái)服務(wù)器提供的服務(wù);存儲(chǔ)資源虛擬化,是指云計(jì)算使用的存儲(chǔ)空間基于任意的存儲(chǔ)設(shè)備;網(wǎng)絡(luò)資源虛擬化,是指網(wǎng)絡(luò)配置是動(dòng)態(tài)的,隨云計(jì)算提供的服務(wù)動(dòng)態(tài)配置。在網(wǎng)絡(luò)資源虛擬化中,云計(jì)算提供的服務(wù)都是通過(guò)虛擬機(jī)(virtual machine)完 成的。網(wǎng)絡(luò)資源的動(dòng)態(tài)配置必須實(shí)時(shí)跟蹤虛擬機(jī)的網(wǎng)絡(luò)接入交換機(jī)(網(wǎng)絡(luò)接入位置),并在網(wǎng)絡(luò)接入交換機(jī)上下發(fā)網(wǎng)絡(luò)配置,比如帶寬保證、安全限制等,確保云計(jì)算給外部提供的服務(wù)能夠連續(xù)運(yùn)行,不被中斷。如圖I所示,虛擬主機(jī)2由物理服務(wù)器I遷移到物理服務(wù)器2時(shí),其對(duì)應(yīng)的網(wǎng)絡(luò)配置也必須從物理交換機(jī)I遷移到物理交換機(jī)2。對(duì)于不支持IEEE802. Iqbg標(biāo)準(zhǔn)的網(wǎng)絡(luò)環(huán)境,要實(shí)現(xiàn)上述網(wǎng)絡(luò)配置遷移必須實(shí)時(shí)跟蹤虛擬機(jī)的遷移情況及增加、刪除情況等,這就要求應(yīng)用程序必須連續(xù)不間斷的接收虛擬網(wǎng)絡(luò)的相關(guān)事件,從而確定虛擬機(jī)是否發(fā)生創(chuàng)建、刪除或遷移等。對(duì)于VMWare虛擬網(wǎng)絡(luò)而言,就是要監(jiān)聽(tīng)vCenter/ESX發(fā)送的VMWare事件,其中,VMWare事件具體是指VMWare公司的vCenter (VMWare公司對(duì)虛擬機(jī)化產(chǎn)品進(jìn)行集中管理的軟件)、ESX (VMWare公司負(fù)責(zé)將物理服務(wù)器虛擬化的軟件系統(tǒng),負(fù)責(zé)仿真實(shí)現(xiàn)虛擬交換機(jī)和虛擬機(jī))產(chǎn)品產(chǎn)生的事件,包括用戶登錄/注銷(xiāo)事件、虛擬機(jī)創(chuàng)建/修改/刪除事件、虛擬交換機(jī)創(chuàng)建/修改/刪除事件等;VMWare事件監(jiān)聽(tīng)的原理如圖2所示。在圖2 中,NMS (Network Management System,網(wǎng)管系統(tǒng)軟件)調(diào)用 VMWare 公司對(duì)外提供的接口和vCenter/ESX建立TCP/IP連接,當(dāng)有新的VMWare事件產(chǎn)生時(shí),vCenter/ESX通過(guò)TCP/IP連接,將VMWare事件發(fā)送給匪S,各VMWare事件中有字段表示事件類(lèi)型和事件包含的變量。由于VMWare提供的上述TCP/IP連接實(shí)際上是一個(gè)https (HypertextTransfer Protocol over Secure Socket Layer)連接。https 目前處理的機(jī)制是,如果連接較長(zhǎng)時(shí)間沒(méi)有報(bào)文收發(fā),將會(huì)自動(dòng)斷開(kāi)遠(yuǎn)程連接。一旦https連接斷開(kāi),將導(dǎo)致VMWare事件無(wú)法監(jiān)聽(tīng),當(dāng)然,在此期間如果虛擬機(jī)發(fā)生創(chuàng)建、刪除或遷移,匪S是感知不到的,從而使得網(wǎng)絡(luò)配置也無(wú)法同步執(zhí)行。對(duì)于任意應(yīng)用程序而言,需要盡量避免自身和VMWare vCenter/ESX之間的TCP/IP連接因?yàn)楦鞣N原因中斷的情況;同時(shí),一旦發(fā)生異常中斷,應(yīng)用程序必須能夠及時(shí)感知到,并采取措施進(jìn)行彌補(bǔ)。應(yīng)用程序除了通過(guò)建立TCP/IP連接常連接的方式監(jiān)聽(tīng)VMWare事件外,還會(huì)通過(guò)主動(dòng)輪詢vCenter/ESX獲取VMWare事件,且輪詢間隔足夠小(比如I分鐘),當(dāng)TCP/IP連接因各種原因中斷時(shí),應(yīng)用程序(只接收并處理VMWare事件的程序,比如網(wǎng)管系統(tǒng)軟件)可以通過(guò)上述輪詢過(guò)程感知到TCP/IP連接中斷,并重新建立一條TCP/IP連接監(jiān)聽(tīng)VMWare事件。上述過(guò)程在正常情況下可以實(shí)時(shí)監(jiān)聽(tīng)VMWare事件;當(dāng)網(wǎng)絡(luò)出現(xiàn)異常時(shí),能夠感知網(wǎng)絡(luò)異常事件,并重新建立VMWare事件監(jiān)聽(tīng)通道,確保所有的VMWare事件都不會(huì)丟失。但是該方案的缺陷在于,應(yīng)用程序輪詢間隔太低,會(huì)加大應(yīng)用程序和vCenter/ESX的處理負(fù)擔(dān),當(dāng)vCenter/ESX組成的虛擬網(wǎng)絡(luò)非常大,將導(dǎo)致應(yīng)用程序和vCenter/ESX處于非常繁忙的狀態(tài)。即使應(yīng)用程序輪詢間隔足夠小,當(dāng)網(wǎng)絡(luò)出現(xiàn)異常時(shí)應(yīng)用程序無(wú)法感知VMWare事件。應(yīng)用程序只有一次輪詢以后才能感知,有可能導(dǎo)致一個(gè)輪詢周期的時(shí)延。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種連續(xù)監(jiān)聽(tīng)VMWare事件的方法和裝置,通過(guò)本發(fā)明,可以實(shí)現(xiàn)對(duì)VMWare事件的連續(xù)實(shí)時(shí)監(jiān)聽(tīng),減小應(yīng)用程序和vCenter的輪詢負(fù)擔(dān)。
圖I所示為虛擬機(jī)遷移示意圖;圖2所示為已有技術(shù)監(jiān)聽(tīng)VMWare事件示意圖。圖3所示為本發(fā)明連續(xù)監(jiān)聽(tīng)VMWare事件的方法流程示意圖;圖4所示所示本發(fā)明提供的連續(xù)監(jiān)聽(tīng)VMWare事件的裝置結(jié)構(gòu)示意圖。
具體實(shí)施例方式本發(fā)明利用VMWare登錄事件實(shí)現(xiàn)VMWare事件的連續(xù)監(jiān)聽(tīng)。在登錄vCenter/ESX時(shí),vCenter/ESX都會(huì)產(chǎn)生一個(gè)用戶登錄事件。如果這個(gè)事件能夠頻繁發(fā)生,通過(guò)監(jiān)聽(tīng)用戶登錄事件,以避免監(jiān)聽(tīng)VMWare事件的TCP/IP連接發(fā)生超時(shí)中斷。本發(fā)明中,應(yīng)用程序和vCenter/ESX建立TCP/IP連接監(jiān)聽(tīng)VMWare事件,并記錄TCP/IP連接最后一次收到VMWare事件的時(shí)間。應(yīng)用程序按照小于HTTPs連接老化周期的第一時(shí)間周期(譬如,20秒),登錄vCenter/ESX,以觸發(fā)用戶登錄事件。應(yīng)用程序按照第二時(shí)間周期,計(jì)算TCP/IP連接最后一次收到VMWare事件時(shí)間與當(dāng)前時(shí)間的時(shí)間差,如果時(shí)間差小于等于第一時(shí)間周期,則TCP/IP連接正常;如果時(shí)間差大于第一時(shí)間周期,則認(rèn)為T(mén)CP/IP連接異常。應(yīng)用程序中斷TCP/IP連接,并與vCenter/ESX建立新TCP/IP連接以監(jiān)聽(tīng)VMWare事件。建立TCP/IP連接過(guò)程可以通過(guò)第三方協(xié)議棧(如gSOAP協(xié)議棧)來(lái)實(shí)現(xiàn),應(yīng)用程序可通過(guò)協(xié)議棧的返回值確定TCP/IP連接建立是否成功。如果TCP/IP連接建立失敗,在下一個(gè)周期內(nèi)繼續(xù)嘗試建立TCP/IP連接;如果TCP/IP連接建立成功,從vCenter/ESX讀取記錄的TCP/IP連接最后一次收到VMWare事件的時(shí)間與當(dāng)前時(shí)間內(nèi)所有VMWare事件,避免VMWare事件丟失。本實(shí)施例的有益效果在于,通過(guò)周期性登錄vCenter/ESX產(chǎn)生用戶登錄事件,并將用戶登錄事件通過(guò)TCP/IP連接發(fā)送給應(yīng)用程序。由于vCenter/ESX向應(yīng)用程序發(fā)送的用戶登錄事件比較頻繁,因此監(jiān)聽(tīng)VMWare事件的TCP/IP連接不會(huì)出現(xiàn)https超時(shí)中斷。本發(fā)明的有益效果還在于,應(yīng)用程序所在服務(wù)器所屬網(wǎng)絡(luò)發(fā)生故障而TCP/IP連接中斷,本申請(qǐng)這種情況能夠馬上感知,并進(jìn)行修復(fù)過(guò)程即重新設(shè)置TCP/IP連接以監(jiān)聽(tīng)VMWare事件,如果設(shè)置成功,從vCenter/ESX讀取TCP/IP連接最后一次收到VMWare事件的時(shí)間到當(dāng)前時(shí)間范圍內(nèi)的所有VMWare事件,避免VMWare事件丟失。如圖4所示,本發(fā)明還提供了一種VMWare事件監(jiān)聽(tīng)裝置,該裝置包括監(jiān)聽(tīng)單元401,通過(guò)應(yīng)用程序與vCenter/ESX建立TCP/IP連接,監(jiān)聽(tīng)VMWare事件,記錄所述TCP/IP連接最后一次收到VMWare事件的時(shí)間。計(jì)算單元402,通過(guò)應(yīng)用程序,按照小于HTTPs連接老化周期的第一時(shí)間周期,周期性登錄vCenter/ESX,觸發(fā)用戶登錄事件;按照小于第一時(shí)間周期的第二時(shí)間周期,周期性計(jì)算所述TCP/IP連接最后一次收到VMWare事件的時(shí)間與當(dāng)前時(shí)間的時(shí)間差??刂茊卧?02,通過(guò)應(yīng)用程序確定所述時(shí)間差小于所述第一時(shí)間周期,則所述TCP/IP連接正常,無(wú)需斷開(kāi)所述TCP/IP連接;通過(guò)應(yīng)用程序確定所述時(shí)間差大于所述第一時(shí)間周期,則中斷所述TCP/IP連接。
控制單元403,通過(guò)應(yīng)用程序與所述vCenter/ESX建立新TCP/IP連接監(jiān)聽(tīng)VMWare事件;通過(guò)應(yīng)用程序確定所述新TCP/IP連接成功,從所述vCenter/ESX讀取所述TCP/IP連接最后一次收到VMWare事件的時(shí)間到當(dāng)前時(shí)間內(nèi)所有VMWare事件。以某具體應(yīng)用場(chǎng)景下的實(shí)例說(shuō)明本發(fā)明的實(shí)施過(guò)程,假設(shè)應(yīng)用程序啟動(dòng)的任務(wù)A的輪詢周期是20秒,TCP/IP連接最后一次收到VMWare事件的時(shí)間是2012/2/2710:49:00,當(dāng)前時(shí)間是2012/2/27 10:49:15,時(shí)間差等于15秒且小于20秒,因此應(yīng)用程序確定TCP/IP連接正常;任務(wù)B運(yùn)行一段時(shí)間后,當(dāng)前時(shí)間是2012/2/27 10:49:22秒,由于當(dāng)前時(shí)間與TCP/IP連接接收VMWare事件的最新時(shí)間的時(shí)間差為22秒且大于20秒,應(yīng)用程序中斷TCP/IP連接并建立新TCP/IP連接,然后從vCenter/ESX讀取[2012/2/2710:49:00, 2012/2/27 10:49:22]期間的所有 VMWare 事件,防止 VMWare 事件丟失。以上所述,僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍,凡在本發(fā)明的精神和原則之內(nèi)所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種連續(xù)監(jiān)聽(tīng)VMWare事件的方法,其特征在于,所述方法包括 通過(guò)應(yīng)用程序與vCenter/ESX建立TCP/IP連接監(jiān)聽(tīng)VMWare事件; 通過(guò)應(yīng)用程序記錄所述TCP/IP連接最后一次收到VMWare事件的時(shí)間; 通過(guò)應(yīng)用程序按照第一時(shí)間周期,登錄vCenter/ESX,觸發(fā)用戶登錄事件;其中,所述第一時(shí)間周期小于HTTPs連接老化周期; 通過(guò)應(yīng)用程序按照第二時(shí)間周期,周期性計(jì)算記錄的所述TCP/IP連接最后一次收到VMWare事件的時(shí)間與當(dāng)前時(shí)間的時(shí)間差,其中所述第二時(shí)間周期小于所述第一時(shí)間周期;通過(guò)應(yīng)用程序確定所述時(shí)間差小于所述第一時(shí)間周期,則所述TCP/IP連接正常。
2.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述方法還進(jìn)一步包括 通過(guò)應(yīng)用程序確定所述時(shí)間差大于所述第一時(shí)間周期,則中斷所述TCP/IP連接; 通過(guò)應(yīng)用程序與所述vCenter/ESX建立新TCP/IP連接監(jiān)聽(tīng)VMWARE事件。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于, 通過(guò)應(yīng)用程序確定所述新TCP/IP連接成功,從所述vCenter/ESX讀取所述TCP/IP連接最后一次收到VMWare事件的時(shí)間到當(dāng)前時(shí)間內(nèi)所有VMWare事件。
4.一種連續(xù)監(jiān)聽(tīng)VMWare事件的裝置,其特征在于,所述裝置包括 監(jiān)聽(tīng)單元,通過(guò)應(yīng)用程序與vCenter/ESX建立TCP/IP連接,監(jiān)聽(tīng)VMWare事件,記錄所述TCP/IP連接最后一次收到VMWare事件的時(shí)間; 計(jì)算單元,通過(guò)應(yīng)用程序,按照第一時(shí)間周期,周期性登錄vCenter/ESX,觸發(fā)用戶登錄事件;按照第二時(shí)間周期,周期性計(jì)算所述TCP/IP連接最后一次收到VMWare事件的時(shí)間與當(dāng)前時(shí)間的時(shí)間差;其中,所述第一時(shí)間周期小于HTTPs連接老化周期,且所述第二時(shí)間周期小于所述第一時(shí)間周期; 控制單元,通過(guò)應(yīng)用程序確定所述時(shí)間差小于所述第一時(shí)間周期,則所述TCP/IP連接正常。
5.根據(jù)權(quán)利要求4所述的裝置,其特征在于, 控制單元,通過(guò)應(yīng)用程序確定所述時(shí)間差大于所述第一時(shí)間周期,則中斷所述TCP/IP連接; 所述監(jiān)聽(tīng)單元,通過(guò)應(yīng)用程序與所述vCenter/ESX建立新TCP/IP連接監(jiān)聽(tīng)VMWare事件。
6.根據(jù)權(quán)利要求5所述的裝置,其特征在于, 所述監(jiān)聽(tīng)單元,通過(guò)應(yīng)用程序確定所述新TCP/IP連接成功,從所述vCenter/ESX讀取所述TCP/IP連接最后一次收到VMWare事件的時(shí)間到當(dāng)前時(shí)間內(nèi)所有VMWare事件。
全文摘要
本發(fā)明提供了一種連續(xù)VMWare事件監(jiān)聽(tīng)方法及裝置,其中該方法包括通過(guò)應(yīng)用程序與vCenter/ESX建立TCP/IP連接監(jiān)聽(tīng)VMWare事件;通過(guò)應(yīng)用程序記錄TCP/IP連接最后一次收到VMWare事件的時(shí)間;通過(guò)應(yīng)用程序按照第一時(shí)間周期,登錄vCenter/ESX,觸發(fā)用戶登錄事件;通過(guò)應(yīng)用程序按照第二時(shí)間周期,周期性計(jì)算TCP/IP連接最后一次收到VMWare事件的時(shí)間與當(dāng)前時(shí)間的時(shí)間差,其中第二時(shí)間周期小于第一時(shí)間周期;通過(guò)應(yīng)用程序確定時(shí)間差小于第一時(shí)間周期,則TCP/IP連接正常。由于vCenter/ESX向應(yīng)用程序發(fā)送的用戶登錄事件比較頻繁,因此監(jiān)聽(tīng)VMWare事件的TCP/IP連接不會(huì)出現(xiàn)https超時(shí)中斷。
文檔編號(hào)H04L29/08GK102801579SQ20121022800
公開(kāi)日2012年11月28日 申請(qǐng)日期2012年6月29日 優(yōu)先權(quán)日2012年6月29日
發(fā)明者曾勇剛, 郭勇, 田瑞利 申請(qǐng)人:杭州華三通信技術(shù)有限公司