一種跨虛擬機(jī)的多服務(wù)調(diào)用方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)虛擬化技術(shù)領(lǐng)域,特別是涉及一種跨虛擬機(jī)的多服務(wù)調(diào)用方法及系統(tǒng)。
【背景技術(shù)】
[0002]虛擬化技術(shù)在計(jì)算機(jī)領(lǐng)域被廣泛使用,是當(dāng)前云計(jì)算環(huán)境的基礎(chǔ)架構(gòu)技術(shù)。通過將一臺(tái)計(jì)算機(jī)硬件資源進(jìn)行統(tǒng)一抽象化管理,虛擬出多臺(tái)相互隔離的虛擬機(jī),從而大幅度提升資源利用率。企業(yè)可在減少額外硬件的采購(gòu)下獲得成本節(jié)約。
[0003]在網(wǎng)絡(luò)功能虛擬化場(chǎng)景中,傳統(tǒng)的多網(wǎng)絡(luò)應(yīng)用部署是將不同的應(yīng)用部署在單獨(dú)的物理機(jī)器中,不同的應(yīng)用通過物理網(wǎng)絡(luò)連接線進(jìn)行通訊。如圖1所示,在流水線型的多網(wǎng)絡(luò)應(yīng)用中,一個(gè)網(wǎng)絡(luò)請(qǐng)求需要依次經(jīng)過防火墻1、認(rèn)證服務(wù)器2,通過認(rèn)證后應(yīng)用業(yè)務(wù)服務(wù)器3對(duì)其進(jìn)行處理,處理完成后將新的網(wǎng)絡(luò)請(qǐng)求發(fā)送到應(yīng)用業(yè)務(wù)服務(wù)器4進(jìn)行處理,最終通過網(wǎng)絡(luò)出口發(fā)出響應(yīng)信息。
[0004]網(wǎng)絡(luò)功能虛擬化技術(shù)(Network Funct1n Virtualizat1n,簡(jiǎn)稱NFV)將不同的網(wǎng)絡(luò)應(yīng)用運(yùn)行在虛擬化環(huán)境中一個(gè)獨(dú)立的虛擬機(jī)里,使得通過物理網(wǎng)絡(luò)連接線進(jìn)行通訊的方式轉(zhuǎn)變?yōu)榭缣摂M機(jī)的通訊方式。如圖2所示,網(wǎng)絡(luò)請(qǐng)求依次經(jīng)過虛擬機(jī)5至8,在每個(gè)虛擬機(jī)中完成相應(yīng)角色的處理,最終發(fā)出響應(yīng)信息。
[0005]然而,云平臺(tái)中虛擬機(jī)之間較高的隔離性使得各虛擬機(jī)間的通訊變得復(fù)雜,完成通訊的時(shí)間也難以預(yù)測(cè)。例如,一個(gè)跨虛擬機(jī)的服務(wù)調(diào)用,即從一個(gè)虛擬機(jī)中調(diào)用另一個(gè)虛擬機(jī)的代碼,需要利用底層虛擬機(jī)監(jiān)控器的調(diào)度從一個(gè)虛擬機(jī)切換到另一個(gè)虛擬機(jī)中執(zhí)行,而調(diào)度本身的時(shí)間并不確定,因?yàn)樘摂M機(jī)監(jiān)控器可能調(diào)度到其他的虛擬機(jī)而不是目標(biāo)虛擬機(jī)中運(yùn)行,在經(jīng)過幾次調(diào)度后才調(diào)度到目標(biāo)虛擬機(jī),執(zhí)行目標(biāo)虛擬機(jī)中的代碼后返回。
[0006]目前,虛擬化環(huán)境中多個(gè)虛擬機(jī)以流水線的方式處理外部請(qǐng)求時(shí),要么以同步調(diào)用的方式借助底層虛擬機(jī)監(jiān)控器將請(qǐng)求依次傳遞給下一個(gè)虛擬機(jī)處理,要么以異步調(diào)用的方式通過共享內(nèi)存的方法將請(qǐng)求交由下一虛擬機(jī)處理。上述兩種方法,前者需經(jīng)過虛擬機(jī)監(jiān)控器的調(diào)度,使得下一個(gè)虛擬機(jī)獲取并處理外部請(qǐng)求的時(shí)間不能確定,在高負(fù)載的情況下延遲較大導(dǎo)致響應(yīng)時(shí)間變長(zhǎng)。后者通過共享內(nèi)存,以輪詢的方式通知下一個(gè)虛擬機(jī),在單核環(huán)境下與前者情況類似;在多核環(huán)境下,當(dāng)系統(tǒng)處于低負(fù)載時(shí),不斷輪詢會(huì)額外消耗處理器資源,導(dǎo)致系統(tǒng)的實(shí)際資源利用率低下。
【發(fā)明內(nèi)容】
[0007]鑒于以上所述現(xiàn)有技術(shù)的缺點(diǎn),本發(fā)明的目的在于提供一種跨虛擬機(jī)的多服務(wù)調(diào)用方法及系統(tǒng),用于解決現(xiàn)有技術(shù)中網(wǎng)絡(luò)請(qǐng)求響應(yīng)時(shí)間不確定,負(fù)載高時(shí)延遲較大,額外耗費(fèi)處理器資源導(dǎo)致利用率低下等問題。
[0008]為實(shí)現(xiàn)上述目的及其他相關(guān)目的,本發(fā)明提供一種跨虛擬機(jī)的多服務(wù)調(diào)用方法,包括:第一虛擬機(jī)接收第一網(wǎng)絡(luò)請(qǐng)求,根據(jù)所述第一網(wǎng)絡(luò)請(qǐng)求執(zhí)行第一任務(wù)后向虛擬機(jī)監(jiān)控器發(fā)送第一上下文切換請(qǐng)求。所述虛擬機(jī)監(jiān)控器接收所述第一上下文切換請(qǐng)求,將所述第一任務(wù)的上下文切換至第二虛擬機(jī)中執(zhí)行第二任務(wù)的上下文。所述第二虛擬機(jī)執(zhí)行所述第二任務(wù),完成后向所述虛擬機(jī)監(jiān)控器發(fā)送關(guān)于所述第一任務(wù)的第二上下文切換請(qǐng)求。所述虛擬機(jī)監(jiān)控器接收所述第二上下文切換請(qǐng)求,將所述第二任務(wù)的上下文切換至所述第一虛擬機(jī)中的第一任務(wù)的上下文。
[0009]可選的,所述方法是在以共享內(nèi)存的方式建立的數(shù)據(jù)共享區(qū)中實(shí)現(xiàn)的。
[0010]可選的,所述第一、第二上下文切換是通過一個(gè)超調(diào)用向所述虛擬機(jī)監(jiān)控器發(fā)送一即時(shí)切換請(qǐng)求實(shí)現(xiàn)的。
[0011]可選的,所述第一、第二上下文切換是通過切換進(jìn)程的頁(yè)表狀態(tài)實(shí)現(xiàn)的。
[0012]可選的,所述虛擬機(jī)監(jiān)控器收到第一或第二上下文切換請(qǐng)求后,對(duì)第一或第二虛擬機(jī)進(jìn)行安全認(rèn)證,認(rèn)證通過時(shí)進(jìn)行相應(yīng)的上下文切換。
[0013]為實(shí)現(xiàn)上述目的及其他相關(guān)目的,本發(fā)明提供一種跨虛擬機(jī)的多服務(wù)調(diào)用系統(tǒng),包括:第一、第二虛擬機(jī)及虛擬機(jī)監(jiān)控器。第一虛擬機(jī)用于接收第一網(wǎng)絡(luò)請(qǐng)求,據(jù)以執(zhí)行第一任務(wù),發(fā)送第一上下文切換請(qǐng)求。第二虛擬機(jī)用于執(zhí)行第二任務(wù),發(fā)送關(guān)于所述第一任務(wù)的第二上下文切換請(qǐng)求。虛擬機(jī)監(jiān)控器用于接收所述第一上下文切換請(qǐng)求,將所述第一任務(wù)的上下文切換至第二虛擬機(jī)中執(zhí)行第二任務(wù)的上下文;接收所述第二上下文切換請(qǐng)求,將所述第二任務(wù)的上下文切換至所述第一虛擬機(jī)中的第一任務(wù)的上下文。
[0014]可選的,所述系統(tǒng)是在以共享內(nèi)存的方式建立的數(shù)據(jù)共享區(qū)中運(yùn)行的。
[0015]可選的,所述第一、第二上下文切換是通過一個(gè)超調(diào)用向所述虛擬機(jī)監(jiān)控器發(fā)送一即時(shí)切換請(qǐng)求實(shí)現(xiàn)的。
[0016]可選的,所述第一、第二上下文切換是通過切換進(jìn)程的頁(yè)表狀態(tài)實(shí)現(xiàn)的。
[0017]可選的,所述虛擬機(jī)監(jiān)控器還用于:收到第一或第二上下文切換請(qǐng)求后,對(duì)第一或第二虛擬機(jī)進(jìn)行安全認(rèn)證,認(rèn)證通過時(shí)進(jìn)行相應(yīng)的上下文切換。
[0018]如上所述,本發(fā)明的一種跨虛擬機(jī)的多服務(wù)調(diào)用方法及系統(tǒng),具有以下有益效果:
[0019]I)相對(duì)于現(xiàn)有的同步調(diào)用,避免了高負(fù)載時(shí)虛擬機(jī)監(jiān)控器在調(diào)度上的不確定性,大大提高了響應(yīng)速度。
[0020]2)相對(duì)于現(xiàn)有的異步調(diào)用,避免了低負(fù)載時(shí)空轉(zhuǎn)輪詢導(dǎo)致的處理器資源浪費(fèi),大大提高了處理器的資源利用率。
【附圖說明】
[0021]圖1顯示為現(xiàn)有技術(shù)中不同物理設(shè)備組成的多網(wǎng)絡(luò)應(yīng)用環(huán)境示意圖;
[0022]圖2顯示為現(xiàn)有技術(shù)中虛擬化環(huán)境下多網(wǎng)絡(luò)應(yīng)用的處理過程示意圖;
[0023]圖3顯示為本發(fā)明一實(shí)施例中跨虛擬機(jī)的多服務(wù)調(diào)用方法流程圖;
[0024]圖4顯示為本發(fā)明一實(shí)施例中跨虛擬機(jī)的多服務(wù)調(diào)用系統(tǒng)示意圖。
[0025]元件標(biāo)號(hào)說明
[0026]I防火墻
[0027]2認(rèn)證服務(wù)器
[0028]3,4 應(yīng)用業(yè)務(wù)服務(wù)器
[0029]5-8虛擬機(jī)
[0030]9一種跨虛擬機(jī)的多服務(wù)調(diào)用系統(tǒng)
[0031]91第一虛擬機(jī)
[0032]92第二虛擬機(jī)
[0033]93虛擬機(jī)監(jiān)控器
[0034]SI ?S4 步驟
[0035]①-⑤順序
【具體實(shí)施方式】
[0036]以下通過特定的具體實(shí)例說明本發(fā)明的實(shí)施方式,本領(lǐng)域技術(shù)人員可由本說明書所揭露的內(nèi)容輕易地了解本發(fā)明的其他優(yōu)點(diǎn)與功效。本發(fā)明還可以通過另外不同的【具體實(shí)施方式】加以實(shí)施或應(yīng)用,本說明書中的各項(xiàng)細(xì)節(jié)也可以基于不同觀點(diǎn)與應(yīng)用,在沒有背離本發(fā)明的精神下進(jìn)行各種修飾或改變。需說明的是,在不沖突的情況下,以下實(shí)施例及實(shí)施例中的特征可以相互組合。
[0037]需要說明的是,以下實(shí)施例中所提供的圖示僅以示意方式說明本發(fā)明的基本構(gòu)想,遂圖式中僅顯示與本發(fā)明中有關(guān)的組件而非按照實(shí)際實(shí)施時(shí)的組件數(shù)目、形狀及尺寸繪制,其實(shí)際實(shí)施時(shí)各組件的型態(tài)、數(shù)量及比例可為一種隨意的改變,且其組件布局型態(tài)也可能更為復(fù)雜。
[0038]請(qǐng)參閱圖3,本發(fā)明提供一種跨虛擬機(jī)的多服務(wù)調(diào)用方法,應(yīng)用于云環(huán)境虛擬化技術(shù)中對(duì)多網(wǎng)絡(luò)應(yīng)用的處理,包括:
[0039]步驟S1:第一虛擬機(jī)接收第一網(wǎng)絡(luò)請(qǐng)求,根據(jù)所述第一網(wǎng)絡(luò)請(qǐng)求執(zhí)行第一任務(wù),當(dāng)?shù)谝蝗蝿?wù)完成后,向虛擬機(jī)監(jiān)控器發(fā)送第一上下文切換請(qǐng)求。在一實(shí)施例中,所述方法還包括初始化步驟,優(yōu)選為首先通過共享內(nèi)存的方式建立一個(gè)數(shù)據(jù)共享區(qū),然后在收到網(wǎng)絡(luò)請(qǐng)求時(shí),按照步驟SI進(jìn)行處理。在一實(shí)施例中,所述第一任務(wù)完成后,所述第一虛擬機(jī)將第二虛擬機(jī)所需要的網(wǎng)絡(luò)請(qǐng)求數(shù)據(jù)寫入共享內(nèi)存中,通過一個(gè)超調(diào)用(hypercall)向所述虛擬機(jī)監(jiān)控器發(fā)送一即時(shí)切換請(qǐng)求進(jìn)而實(shí)現(xiàn)第一上下文切換請(qǐng)求。
[0040]步驟S2:所述虛擬機(jī)監(jiān)控器接收所述第一上下文切換請(qǐng)求,將所述第一任務(wù)的上下文切換至第二虛擬機(jī)中執(zhí)行第二任務(wù)的上下文。需要說明的是,該步驟不同于現(xiàn)有技術(shù)中虛擬機(jī)監(jiān)控器的調(diào)度程序,針對(duì)性更強(qiáng)。針對(duì)多核的情況,系統(tǒng)在啟動(dòng)每個(gè)任務(wù)處理程序時(shí)會(huì)為其創(chuàng)建一個(gè)或多個(gè)非活動(dòng)狀態(tài)的獨(dú)立線程,用于作為上下