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