潘欣欣
摘 要 基于虛擬化云平臺(tái),提出了一種可擴(kuò)展集成的云平臺(tái)監(jiān)控機(jī)制,并最終實(shí)現(xiàn)了虛擬化云平臺(tái)監(jiān)控系統(tǒng)。從而保證云平臺(tái)穩(wěn)定運(yùn)行,并向用戶提供可靠的服務(wù)。
【關(guān)鍵詞】虛擬化 監(jiān)控 監(jiān)測(cè)機(jī)制 實(shí)時(shí)性 可靠性
1 電信設(shè)備虛擬化
1.1 電信設(shè)備虛擬化的必要性
傳統(tǒng)核心網(wǎng)由于軟硬件耦合度很高,同一個(gè)網(wǎng)元不同設(shè)備商提供不同的軟硬件,新業(yè)務(wù)功能的開(kāi)發(fā)也依賴于設(shè)備商,往往開(kāi)發(fā)耗時(shí)較長(zhǎng),代價(jià)大,且功能的定制化也很繁瑣。虛擬化實(shí)現(xiàn)軟硬件解耦,硬件資源虛擬化為多個(gè)虛擬機(jī),各種應(yīng)用部署于同一個(gè)硬件平臺(tái)上,使得網(wǎng)元容量配置調(diào)整周期從數(shù)周縮短到數(shù)分鐘,從而大大提升了網(wǎng)絡(luò)擴(kuò)容的敏捷性,并實(shí)現(xiàn)設(shè)備容量彈性擴(kuò)充,消除設(shè)備瓶頸。
所以電信設(shè)備虛擬化一問(wèn)世就迅速引起了各大運(yùn)營(yíng)商的關(guān)注,目前歐美一些運(yùn)營(yíng)商已經(jīng)開(kāi)始部署虛擬化設(shè)備。
1.2 傳統(tǒng)電信設(shè)備和虛擬化電信設(shè)備的比較
傳統(tǒng)電信設(shè)備和虛擬化電信設(shè)備的區(qū)別如表1所示。
電信設(shè)備最重要的一條原則就是要保證99.999%的高可靠性。虛擬化后,應(yīng)用之間變?yōu)镮P網(wǎng)絡(luò),要及時(shí)有效的監(jiān)測(cè)各應(yīng)用的正常運(yùn)行,是電信設(shè)備的一條最基本的也是必須具備的功能。
電信設(shè)備的設(shè)備監(jiān)測(cè)對(duì)實(shí)時(shí)性和可靠性要求極高。傳統(tǒng)的電信設(shè)備監(jiān)測(cè)主要是依賴硬件器件做監(jiān)測(cè),通過(guò)監(jiān)測(cè)硬件寄存器,用硬件watch dog監(jiān)測(cè)板卡狀態(tài)是否正常。這種監(jiān)測(cè)實(shí)時(shí)性強(qiáng),可靠性高。虛擬化后的電信設(shè)備,沒(méi)有專用的硬件設(shè)備監(jiān)測(cè),只能用軟件來(lái)實(shí)現(xiàn)監(jiān)測(cè)。如何保證同樣的實(shí)時(shí)性和可靠性?這是虛擬化后要面對(duì)的一個(gè)難題。
虛擬化后的電信設(shè)備為了保證高可靠性一般都是雙機(jī)熱備份的,這也是監(jiān)測(cè)機(jī)制實(shí)現(xiàn)的基礎(chǔ)。如果是不可修復(fù)的錯(cuò)誤先采取主備切換然后再進(jìn)行修復(fù),這樣可以保證正常的電信業(yè)務(wù)不受影響。
2 虛擬化后的監(jiān)測(cè)機(jī)制
虛擬化后的監(jiān)測(cè)機(jī)制有以下幾個(gè)不同的監(jiān)測(cè)級(jí)別:
(1)主機(jī)級(jí)別的監(jiān)控。當(dāng)主機(jī)出現(xiàn)問(wèn)題時(shí),可以及時(shí)觸發(fā)主機(jī)的主備切換。
(2)虛擬機(jī)級(jí)別的監(jiān)控。當(dāng)虛擬機(jī)出現(xiàn)問(wèn)題,可以及時(shí)觸發(fā)虛擬機(jī)級(jí)別的主備切換。
(3)進(jìn)程級(jí)別的監(jiān)控。當(dāng)虛擬機(jī)里面運(yùn)行的進(jìn)程出現(xiàn)問(wèn)題時(shí),可以及時(shí)發(fā)現(xiàn)并觸發(fā)相應(yīng)的恢復(fù)機(jī)制。
上面幾個(gè)級(jí)別的監(jiān)測(cè)是同時(shí)存在,互相配合,可以保證虛擬化后監(jiān)測(cè)機(jī)制的高可靠性和實(shí)時(shí)性。
3 主機(jī)級(jí)別的監(jiān)控
虛擬化的監(jiān)測(cè)首先要保證主機(jī)層面的可靠性。
首先,同一個(gè)應(yīng)用的主備應(yīng)該在不同的主機(jī)上,這樣萬(wàn)一主機(jī)發(fā)生重啟或者掉電,備用的應(yīng)用可以繼續(xù)承載業(yè)務(wù)。其次,當(dāng)主機(jī)重啟或者掉電時(shí),為了保證虛擬機(jī)里面運(yùn)行的應(yīng)用能將及時(shí)觸發(fā)切換,防止業(yè)務(wù)的丟失。通過(guò)英特爾制定的APCI(高級(jí)配置與電源接口),監(jiān)測(cè)到主機(jī)關(guān)閉或者退出時(shí),觸發(fā)主機(jī)上的虛擬機(jī),做相應(yīng)的退出處理,這樣可以做到平滑關(guān)機(jī),不影響業(yè)務(wù)。再次,主機(jī)還要對(duì)運(yùn)行的虛擬機(jī)進(jìn)行監(jiān)控,如果其有異常,及時(shí)觸發(fā)主備切換,然后啟動(dòng)虛擬機(jī)。
對(duì)于主機(jī)突然掉電或者拔出的極端情況,虛擬機(jī)級(jí)別的監(jiān)測(cè)機(jī)制可以監(jiān)測(cè)到這種情況,進(jìn)行相應(yīng)的處理,只不過(guò)業(yè)務(wù)中斷的時(shí)間稍微長(zhǎng)比平滑關(guān)機(jī)的時(shí)間長(zhǎng)一點(diǎn)。
4 虛擬機(jī)級(jí)別的監(jiān)控
一個(gè)網(wǎng)元通常都是有多個(gè)應(yīng)用組成。不同的應(yīng)用運(yùn)行在不同的主機(jī)不同的虛擬機(jī)上,之間是基于IP網(wǎng)絡(luò)的。為了保證各個(gè)應(yīng)用之間的正常運(yùn)行還需要監(jiān)測(cè)各個(gè)應(yīng)用之間的通訊和狀態(tài)。
虛擬機(jī)之間的監(jiān)測(cè)有以下三種:
(1)主用的主控模塊-->其他應(yīng)用+備用的主控模塊。主用的主控模塊會(huì)監(jiān)測(cè)系統(tǒng)中所有虛擬機(jī)的狀態(tài),如果發(fā)現(xiàn)狀態(tài)異常或者網(wǎng)絡(luò)中斷,會(huì)先觸發(fā)各應(yīng)用的主備切換,然后采用自恢復(fù)措施,試圖修復(fù)出問(wèn)題的應(yīng)用。
(2)備用的主控模塊-->主用的主控模塊。備用的主控模塊會(huì)監(jiān)測(cè)主用的主控模塊的狀態(tài),如果發(fā)現(xiàn)異常,會(huì)觸發(fā)主備切換,然后試圖修復(fù)原主用的主控模塊。
(3)應(yīng)用自我監(jiān)測(cè)。每個(gè)應(yīng)用(包括主控模塊)會(huì)監(jiān)測(cè)自己和外界的通訊是否正常。因?yàn)檫@些虛擬機(jī)之間通訊都是通過(guò)網(wǎng)絡(luò)的,如果出現(xiàn)網(wǎng)絡(luò)中斷的情況,虛擬機(jī)之間的控制消息也沒(méi)有辦法通訊。也即,即使主控模塊發(fā)現(xiàn)與這個(gè)應(yīng)用之間的網(wǎng)絡(luò)中斷了,也無(wú)法通知到這個(gè)應(yīng)用。這個(gè)監(jiān)測(cè)主要是針對(duì)這種情況,進(jìn)行自我修復(fù)用的。
5 進(jìn)程級(jí)別的監(jiān)控
一個(gè)虛擬機(jī)對(duì)應(yīng)原來(lái)的一個(gè)業(yè)務(wù)網(wǎng)卡,現(xiàn)在稱為一個(gè)應(yīng)用,每個(gè)虛擬機(jī)上至少要有應(yīng)用進(jìn)程,守護(hù)進(jìn)程和監(jiān)控進(jìn)程三個(gè)進(jìn)程。
(1)應(yīng)用進(jìn)程:負(fù)責(zé)處理網(wǎng)元內(nèi)部的具體業(yè)務(wù)。
(2)守護(hù)進(jìn)程:虛擬機(jī)啟來(lái)后,立即啟動(dòng)該進(jìn)程,負(fù)責(zé)監(jiān)測(cè)監(jiān)控進(jìn)程的狀態(tài)。
(3)監(jiān)控進(jìn)程:監(jiān)測(cè)應(yīng)用進(jìn)程的狀態(tài)。
為了保障高可靠性,首先需要各應(yīng)用自己要能夠監(jiān)測(cè)自己的應(yīng)用運(yùn)行是否正常。在虛擬機(jī)內(nèi)部的監(jiān)測(cè)主要有:
(1)監(jiān)測(cè)監(jiān)控進(jìn)程。守護(hù)進(jìn)程會(huì)監(jiān)測(cè)監(jiān)控進(jìn)程,如果監(jiān)控進(jìn)程不存在,就啟動(dòng)監(jiān)控進(jìn)程。
(2)監(jiān)測(cè)應(yīng)用。監(jiān)控進(jìn)程會(huì)監(jiān)測(cè)應(yīng)用的進(jìn)程是否正常,如果不正常,會(huì)上報(bào),并根據(jù)出錯(cuò)情況采取對(duì)應(yīng)的修復(fù)措施,例如主備切換等。
(3)監(jiān)測(cè)應(yīng)用的線程。監(jiān)控進(jìn)程除了監(jiān)測(cè)應(yīng)用進(jìn)程,還會(huì)對(duì)一些關(guān)鍵的線程進(jìn)行監(jiān)測(cè),如果發(fā)現(xiàn)沒(méi)有正常運(yùn)行或者沒(méi)有響應(yīng)的情況,根據(jù)出錯(cuò)情況采取對(duì)應(yīng)的修復(fù)措施。
有了以上這些監(jiān)測(cè)機(jī)制,可以保證對(duì)每個(gè)虛擬機(jī)內(nèi)部運(yùn)行的進(jìn)程做到實(shí)時(shí)監(jiān)測(cè),一旦發(fā)現(xiàn)問(wèn)題,及時(shí)修復(fù),保證每個(gè)網(wǎng)元上每個(gè)應(yīng)用的高可靠性。
作者單位
上海貝爾軟件有限公司 上海市 201206