一種自適應(yīng)虛擬機間的通信方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及云計算網(wǎng)絡(luò)通信領(lǐng)域,特別是一種自適應(yīng)虛擬機間的通信方法。
【背景技術(shù)】
[0002]云計算利用虛擬化技術(shù)與服務(wù)整合提高了服務(wù)器的資源利用率,降低了服務(wù)的能耗,同時通過動態(tài)擴展或收縮服務(wù)能力來滿足用戶對于資源需求的快速變化。在這種場景下,需要把運行相同應(yīng)用或協(xié)作完成相同任務(wù)的虛擬機劃分到同一個子網(wǎng)里面,同時確保不同子網(wǎng)之間的虛擬機之間不能相互通信。另外,虛擬化使得相互通信的主機數(shù)量變多,月艮務(wù)器上虛擬機之間的通信非常頻繁。
[0003]虛擬機之間的通信機制是通過傳統(tǒng)的虛擬網(wǎng)絡(luò)實現(xiàn)的,相對于傳統(tǒng)物理網(wǎng)絡(luò)來說,還需要承載物理機管理的網(wǎng)絡(luò)壓力,因此這種通信方式難以滿足虛擬機之間高性能通信的要求。
【發(fā)明內(nèi)容】
[0004]本發(fā)明解決的技術(shù)問題在于提供一種自適應(yīng)的高效的虛擬機間的通信方法,解決了傳統(tǒng)網(wǎng)絡(luò)通信方法的低效率問題。
[0005]本發(fā)明解決上述技術(shù)問題的技術(shù)方案是:
[0006]所述的方法包括以下步驟:
[0007]步驟1:對于每一應(yīng)用分配一個安全標(biāo)記;
[0008]步驟2:把運行相同應(yīng)用的虛擬機劃分到一個應(yīng)用組,應(yīng)用組使用應(yīng)用分配的安全標(biāo)記;
[0009]步驟3:當(dāng)屬于同一個應(yīng)用組的虛擬機位于同一臺物理機上時,通過共享內(nèi)存交換信息;
[0010]步驟4:當(dāng)屬于同一個應(yīng)用組的虛擬機位于不同物理機上時,根據(jù)應(yīng)用分配的安全標(biāo)記,對應(yīng)用中虛擬機向外發(fā)送的數(shù)據(jù)幀設(shè)置該安全標(biāo)記;
[0011 ]步驟5:對進入虛擬機的數(shù)據(jù)幀刪除該安全標(biāo)記。
[0012]所述安全標(biāo)記指的是數(shù)據(jù)幀中的一個ID,用于區(qū)別不同應(yīng)用組。
[0013]所述通過共享內(nèi)存交換信息指的是虛擬機管理器中的虛擬機中介通過超級調(diào)用在物理機上建立起共享內(nèi)存,通過共享內(nèi)存實現(xiàn)數(shù)據(jù)的傳遞;連接建立則不需要按照SockeM^流程進行封裝、傳輸與解包,能提高通信的性能。
[0014]所述數(shù)據(jù)幀設(shè)置安全標(biāo)記指的是當(dāng)應(yīng)用組內(nèi)的虛擬機通過物理網(wǎng)卡發(fā)出數(shù)據(jù)幀之前會被加上標(biāo)識該應(yīng)用組的安全標(biāo)記,因此物理網(wǎng)卡能區(qū)別屬于不同應(yīng)用組的數(shù)據(jù)幀。
[0015]所述數(shù)據(jù)幀刪除安全標(biāo)記指的是當(dāng)物理網(wǎng)卡轉(zhuǎn)發(fā)數(shù)據(jù)幀到邏輯子網(wǎng)口的時候,如果該數(shù)據(jù)幀所攜帶的安全標(biāo)記和該應(yīng)用組的安全標(biāo)記相同,則物理網(wǎng)卡去掉該數(shù)據(jù)幀的安全標(biāo)記以便邏輯子網(wǎng)口能夠識別;如果該數(shù)據(jù)幀的安全標(biāo)記同應(yīng)用組的安全標(biāo)記不同,則物理網(wǎng)卡不會去掉該數(shù)據(jù)幀的安全標(biāo)記,邏輯子網(wǎng)口無法識別帶有安全標(biāo)記的數(shù)據(jù)幀,將直接丟棄這些數(shù)據(jù)幀。
[0016]本發(fā)明的方法能產(chǎn)生如下的有益效果:
[0017]1、本發(fā)明方法的虛擬網(wǎng)絡(luò)是跨物理機的,不僅同一臺物理機上的虛擬機可以分配到同一個應(yīng)用組內(nèi),位于不同物理機上的虛擬機也可以分配到同一個應(yīng)用組內(nèi),因此對于虛擬機所處的物理位置沒有要求,便于對虛擬機的規(guī)劃和管理。
[0018]2、本發(fā)明的方法能提高虛擬資源的利用率,應(yīng)用組內(nèi)的虛擬機能夠動態(tài)的創(chuàng)建和刪除,在服務(wù)高峰期能夠創(chuàng)建更多的虛擬機以滿足服務(wù)要求,而在服務(wù)低谷期能把空閑的虛擬機資源釋放給其它應(yīng)用組,合理的調(diào)度有限的資源,提高資源的利用率。
[0019]3、本發(fā)明的方法是一種高效的通信方法,由于同一個應(yīng)用組里的虛擬機可能位于不同的物理服務(wù)器上,虛擬機需要根據(jù)其實際物理位置選擇不同的通信機制。當(dāng)虛擬機位于同一臺物理機時,采用共享內(nèi)存機制進行通信,不需要進行Socket連接,提高了通信的性會K。
【附圖說明】
[0020]下面結(jié)合附圖對本發(fā)明進一步說明:
[0021]圖1為本發(fā)明的網(wǎng)絡(luò)部署結(jié)構(gòu)圖;
[0022]圖2為本發(fā)明的一個應(yīng)用組的劃分示意圖;
[0023]圖3為本發(fā)明的虛擬機之間的通信模型。
【具體實施方式】
[0024]下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整的描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0025]下面以Xen虛擬化為例說明具體的實現(xiàn)方法。如圖1、2、3所示,首先要對虛擬網(wǎng)絡(luò)進行配置,如圖2所示劃分3個應(yīng)用組,應(yīng)用組之間的通信隔離和應(yīng)用組的跨物理機實現(xiàn)。其中,劃分應(yīng)用組是通過Xen上的網(wǎng)橋(Bridge)來實現(xiàn)的,Xen上的Bridge是被創(chuàng)建出來的邏輯設(shè)備,在Xen上通過多個Bridge把不同的虛擬機關(guān)聯(lián)起來構(gòu)成一個個邏輯的VLAN,以此實現(xiàn)不同應(yīng)用組的劃分。
[0026]如圖2所示,通過對進出虛擬機的網(wǎng)絡(luò)幀進行安全標(biāo)記管理來實現(xiàn)的隔離不同應(yīng)用組之的通信物理機的網(wǎng)口ethO上創(chuàng)建了多個邏輯子網(wǎng)口,這些邏輯子網(wǎng)口關(guān)聯(lián)到不同應(yīng)用組的Bridge設(shè)備,同虛擬機在虛擬機管理(Hypervisor)中的虛擬網(wǎng)絡(luò)(vif設(shè)備)橋接起來。當(dāng)應(yīng)用組內(nèi)的虛擬機通過ethO發(fā)出數(shù)據(jù)幀之前會被加上標(biāo)識該應(yīng)用組ID的安全標(biāo)記(以下簡稱Tag),因此ethO能區(qū)別屬于不同應(yīng)組的數(shù)據(jù)幀。而當(dāng)ethO轉(zhuǎn)發(fā)數(shù)據(jù)幀到邏輯子網(wǎng)口的時候,如果該數(shù)據(jù)幀所攜帶的Tag和該應(yīng)用組的ID相同,則ethO去掉該數(shù)據(jù)幀的Tag以便邏輯子網(wǎng)口能夠識別;如果該數(shù)據(jù)幀的Tag同應(yīng)用組的ID不同,則ethO不會去掉該數(shù)據(jù)幀的Tag,邏輯子網(wǎng)口無法識別帶有Tag的數(shù)據(jù)幀,將直接丟棄這些數(shù)據(jù)幀。這樣就保證了應(yīng)用組內(nèi)的消息只能被應(yīng)用組內(nèi)的虛擬機所接收,實現(xiàn)了隔離不同應(yīng)用組的目的。
[0027]至于跨物理機之間的通信,需要在ethO上使用相同的安全標(biāo)記實現(xiàn),不同物理機上的應(yīng)用組通過Bridge關(guān)聯(lián)到ethO上ID相同的邏輯子網(wǎng)口上,這些不同的物理機上的應(yīng)用組就屬于同一個應(yīng)用組,會使用相同的安全標(biāo)記。如圖2所示,虛擬機3和虛擬機4還有虛擬機5都通過Bridge橋接到各自物理主機上的邏輯子網(wǎng)口 eth0.10,它們都屬于同一個應(yīng)用組10,相互之間能夠通信,同時無法同其它應(yīng)用組內(nèi)的虛擬機通信,如屬于組30的虛擬機I無法與屬于組1的虛擬機3通信。
[0028]自適應(yīng)的通信通過使用共享內(nèi)存的機制來實現(xiàn)同一臺物理服務(wù)器上虛擬資源之間的通信,提高系統(tǒng)通信性能。
[0029]如圖3所示,當(dāng)虛擬機I和虛擬機2通信時,虛擬機I的通信代理向通信中介發(fā)起查詢請求,通信中介查詢自己維護的表格,如果虛擬機I和虛擬機2位于同一臺物理機上,且應(yīng)用組ID相同,則通信中介會告知虛擬機I其通信的目標(biāo)虛擬機(虛擬機2)的Domain id,接著虛擬機I將自己內(nèi)存頁的訪問權(quán)限授予虛擬機2,虛擬機2借助HypercalI將這些內(nèi)存頁映射到自己的地址空間中。這樣,共享內(nèi)存就建立起來了。
【主權(quán)項】
1.一種自適應(yīng)虛擬機間的通信方法,其特征在于:所述的方法包括以下步驟: 步驟1:對于每一應(yīng)用分配一個安全標(biāo)記; 步驟2:把運行相同應(yīng)用的虛擬機劃分到一個應(yīng)用組,應(yīng)用組使用應(yīng)用分配的安全標(biāo)記; 步驟3:當(dāng)屬于同一個應(yīng)用組的虛擬機位于同一臺物理機上時,通過共享內(nèi)存交換信息; 步驟4:當(dāng)屬于同一個應(yīng)用組的虛擬機位于不同物理機上時,根據(jù)應(yīng)用分配的安全標(biāo)記,對應(yīng)用中虛擬機向外發(fā)送的數(shù)據(jù)幀設(shè)置該安全標(biāo)記; 步驟5:對進入虛擬機的數(shù)據(jù)幀刪除該安全標(biāo)記。2.根據(jù)權(quán)利要求1所述的方法,其特征在于:所述安全標(biāo)記指的是數(shù)據(jù)幀中的一個ID,用于區(qū)別不同應(yīng)用組。3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述通過共享內(nèi)存交換信息指的是虛擬機管理器中的虛擬機中介通過超級調(diào)用在物理機上建立起共享內(nèi)存,通過共享內(nèi)存實現(xiàn)數(shù)據(jù)的傳遞;連接建立則不需要按照Socket的流程進行封裝、傳輸與解包,能提高通信的性能。4.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述通過共享內(nèi)存交換信息指的是虛擬機管理器中的虛擬機中介通過超級調(diào)用在物理機上建立起共享內(nèi)存,通過共享內(nèi)存實現(xiàn)數(shù)據(jù)的傳遞;連接建立則不需要按照Socket的流程進行封裝、傳輸與解包,能提高通信的性能。5.根據(jù)權(quán)利要求1至4任一項所述的方法,其特征在于,所述數(shù)據(jù)幀設(shè)置安全標(biāo)記指的是當(dāng)應(yīng)用組內(nèi)的虛擬機通過物理網(wǎng)卡發(fā)出數(shù)據(jù)幀之前會被加上標(biāo)識該應(yīng)用組的安全標(biāo)記,因此物理網(wǎng)卡能區(qū)別屬于不同應(yīng)用組的數(shù)據(jù)幀。6.根據(jù)權(quán)利要求1至4任一項所述的方法,其特征在于,所述數(shù)據(jù)幀刪除安全標(biāo)記指的是當(dāng)物理網(wǎng)卡轉(zhuǎn)發(fā)數(shù)據(jù)幀到邏輯子網(wǎng)口的時候,如果該數(shù)據(jù)幀所攜帶的安全標(biāo)記和該應(yīng)用組的安全標(biāo)記相同,則物理網(wǎng)卡去掉該數(shù)據(jù)幀的安全標(biāo)記以便邏輯子網(wǎng)口能夠識別;如果該數(shù)據(jù)幀的安全標(biāo)記同應(yīng)用組的安全標(biāo)記不同,則物理網(wǎng)卡不會去掉該數(shù)據(jù)幀的安全標(biāo)記,邏輯子網(wǎng)口無法識別帶有安全標(biāo)記的數(shù)據(jù)幀,將直接丟棄這些數(shù)據(jù)幀。7.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述數(shù)據(jù)幀刪除安全標(biāo)記指的是當(dāng)物理網(wǎng)卡轉(zhuǎn)發(fā)數(shù)據(jù)幀到邏輯子網(wǎng)口的時候,如果該數(shù)據(jù)幀所攜帶的安全標(biāo)記和該應(yīng)用組的安全標(biāo)記相同,則物理網(wǎng)卡去掉該數(shù)據(jù)幀的安全標(biāo)記以便邏輯子網(wǎng)口能夠識別;如果該數(shù)據(jù)幀的安全標(biāo)記同應(yīng)用組的安全標(biāo)記不同,則物理網(wǎng)卡不會去掉該數(shù)據(jù)幀的安全標(biāo)記,邏輯子網(wǎng)口無法識別帶有安全標(biāo)記的數(shù)據(jù)幀,將直接丟棄這些數(shù)據(jù)幀。
【專利摘要】本發(fā)明涉及云計算網(wǎng)絡(luò)通信領(lǐng)域,特別是一種自適應(yīng)虛擬機間的通信方法。本發(fā)明首先對于每一應(yīng)用分配一個安全標(biāo)記;然后把運行相同應(yīng)用的虛擬機劃分到一個應(yīng)用組,應(yīng)用組使用應(yīng)用分配的安全標(biāo)記;當(dāng)屬于同一個應(yīng)用組的虛擬機位于同一臺物理機上時,通過共享內(nèi)存交換信息;當(dāng)屬于同一個應(yīng)用組的虛擬機位于不同物理機上時,根據(jù)應(yīng)用分配的安全標(biāo)記,對應(yīng)用中虛擬機向外發(fā)送的數(shù)據(jù)幀設(shè)置該安全標(biāo)記并對進入虛擬機的數(shù)據(jù)幀刪除該安全標(biāo)記。本發(fā)明解決了傳統(tǒng)網(wǎng)絡(luò)虛擬機之間通信低效率問題;可以用于虛擬機間的通信。
【IPC分類】H04L12/46, H04L29/06
【公開號】CN105592079
【申請?zhí)枴緾N201510940140
【發(fā)明人】莫展鵬, 楊松, 季統(tǒng)凱
【申請人】國云科技股份有限公司
【公開日】2016年5月18日
【申請日】2015年12月15日