◆彭乾煜 王揚(yáng)
(四川大學(xué)網(wǎng)絡(luò)空間安全學(xué)院 四川 610065)
虛擬機(jī)遷移相關(guān)的研究可以按照遷移目的分為四類(lèi):以降低能耗、負(fù)載均衡為目的虛擬機(jī)遷移[3-5]、以提高服務(wù)質(zhì)量為目的的虛擬機(jī)遷移[6-8]、以提升通信性能為目的的虛擬機(jī)遷移[9-10]、以保障虛擬機(jī)安全為目的的虛擬機(jī)遷移[11-13],還有一些綜合多種目的進(jìn)行多目標(biāo)優(yōu)化的虛擬機(jī)遷移。
以降低能耗、負(fù)載均衡為目的的虛擬機(jī)遷移主要是通過(guò)虛擬機(jī)遷移來(lái)減少激活的物理機(jī)的數(shù)量,將空閑的虛擬機(jī)進(jìn)行休眠來(lái)達(dá)到減少能耗的目的[14];通常會(huì)將虛擬機(jī)遷移的問(wèn)題轉(zhuǎn)化為裝箱問(wèn)題[15],采用啟發(fā)式算法來(lái)進(jìn)行求解。文獻(xiàn)[3]采用了一種改進(jìn)的最大最小蟻群算法來(lái)進(jìn)行虛擬機(jī)的初始化放置,達(dá)到減少能耗的目的;文獻(xiàn)[4]提出了一種改進(jìn)的粒子群算法,通過(guò)優(yōu)化粒子初始位置、引入粒子漂移、設(shè)置動(dòng)態(tài)學(xué)習(xí)因子,使粒子群算法跳出局部最優(yōu)解,對(duì)負(fù)載均衡度、魯棒性、能耗三個(gè)方面進(jìn)行了多目標(biāo)優(yōu)化;文獻(xiàn)[5]采用一種基于離散螢火蟲(chóng)算法的虛擬機(jī)遷移策略,得到了能耗與負(fù)載均衡的多目標(biāo)優(yōu)化最優(yōu)解。
以提高服務(wù)質(zhì)量為目的的虛擬機(jī)遷移,則是根據(jù)云服務(wù)商與用戶(hù)簽訂的服務(wù)水平協(xié)議(Service Level Agreement,SLA)以及SLA 中的規(guī)定與用戶(hù)的QoS(Quality of Service)作為判斷指標(biāo)來(lái)進(jìn)行虛擬機(jī)遷移,保證資源的高效利用。文獻(xiàn)[6]提出了一種SLA 資源管理器來(lái)統(tǒng)籌管理數(shù)據(jù)中心,從而將資源的提供與虛擬機(jī)的動(dòng)態(tài)放置分離開(kāi)來(lái)。文獻(xiàn)[7]提出了一種基于SLA 的異構(gòu)負(fù)載虛擬機(jī)管理策略,該策略最大限度地利用資源,并確保用戶(hù)的QoS。文獻(xiàn)[8]提出了一套云計(jì)算環(huán)境管理框架,并結(jié)合了能效和SLA 感知,將優(yōu)化問(wèn)題分為三個(gè)子問(wèn)題:虛擬機(jī)遷移和重構(gòu)、物理機(jī)能耗管理、解決和降低問(wèn)題復(fù)雜度。
以保障虛擬機(jī)安全為目的的虛擬機(jī)遷移,主要以預(yù)防同駐攻擊為主。文獻(xiàn)[11]通過(guò)限制用戶(hù)間同駐次數(shù),提升了用戶(hù)數(shù)據(jù)的安全性;文獻(xiàn)[12]通過(guò)動(dòng)態(tài)化放置虛擬機(jī),增加同駐難度;文獻(xiàn)[13]通過(guò)將敏感數(shù)據(jù)劃分為多個(gè)塊進(jìn)行保護(hù),增加了數(shù)據(jù)安全性,增強(qiáng)了抵抗共存攻擊的防御能力。
以提升通信性能為目的的虛擬機(jī)遷移,主要考慮到在虛擬機(jī)完成任務(wù)退出后,釋放資源,新的虛擬機(jī)部署會(huì)占用這部分資源,這部分虛擬機(jī)占用的資源碎片不一定在同一個(gè)機(jī)架上,導(dǎo)致網(wǎng)絡(luò)通信代價(jià)升高,影響整個(gè)數(shù)據(jù)中心的通信能力。文獻(xiàn)[9]提出了一種基于網(wǎng)絡(luò)感知兩階段啟發(fā)式的虛擬機(jī)遷移方法,其通過(guò)虛擬機(jī)之間的相似性進(jìn)行聚類(lèi),并根據(jù)改進(jìn)的背包算法進(jìn)行放置,優(yōu)化了網(wǎng)絡(luò)流量分布并減少了能耗;文獻(xiàn)[10]基于通信感知的虛擬機(jī)遷移方法,考慮了數(shù)據(jù)中心網(wǎng)絡(luò)拓?fù)鋵?duì)能耗和通信成本的影響,從虛擬機(jī)遷移和放置兩個(gè)階段優(yōu)化了數(shù)據(jù)中心流量在遷移階段的運(yùn)行,該方法選取整體通信消耗最大的虛擬機(jī)進(jìn)行遷移,但沒(méi)有考慮到同一物理機(jī)上的虛擬機(jī)通信不消耗網(wǎng)絡(luò)流量的情況。
本文考慮到針對(duì)通信能力的虛擬機(jī)遷移研究較少,以提升通信性能為目的,針對(duì)數(shù)據(jù)中心的層次網(wǎng)絡(luò)結(jié)構(gòu)以及物理位置對(duì)通信消耗的影響,提出了一種基于流量緊密性的虛擬機(jī)遷移算法。根據(jù)數(shù)據(jù)中心層次網(wǎng)絡(luò)結(jié)構(gòu)的流量關(guān)系提出了一種新的概念——流量緊密性,將流量緊密性作為遷移基準(zhǔn),把虛擬機(jī)遷移到與其流量緊密性更高的虛擬機(jī)組上,達(dá)到減少數(shù)據(jù)中心網(wǎng)絡(luò)消耗,提高數(shù)據(jù)中心網(wǎng)絡(luò)性能的目的。
目前數(shù)據(jù)中心網(wǎng)絡(luò)主要采用三層樹(shù)形結(jié)構(gòu)(如圖1)以及大二層結(jié)構(gòu)(如圖2)。以三層結(jié)構(gòu)為例,底層是接入層,每個(gè)物理機(jī)連接到一個(gè)或兩個(gè)接入交換機(jī),每個(gè)接入交換機(jī)連接到匯聚層上的一個(gè)或兩個(gè)交換機(jī),每個(gè)匯聚交換機(jī)連接到核心層即頂層的多個(gè)交換機(jī),用于互連匯聚交換機(jī)并連接到外部數(shù)據(jù)中心[16]。
娟妹臉一陣紅一陣白:“不是說(shuō)精子的生存溫度在32~36攝氏度之間,溫泉游泳池的溫度也差不多呀。在游泳池里,精子能存活1~2小時(shí)吧,雖然有點(diǎn)兒匪夷所思,可理論上是成立的。”

圖1 數(shù)據(jù)中心三層結(jié)構(gòu)示意圖

圖2 數(shù)據(jù)中心大二層結(jié)構(gòu)示意圖
在分層體系結(jié)構(gòu)中,參與通信路徑的交換機(jī)數(shù)量取決于兩個(gè)物理機(jī)在數(shù)據(jù)中心中的物理位置,所產(chǎn)生的通信開(kāi)銷(xiāo)也相對(duì)不同。研究表明通信成本隨著通過(guò)的交換機(jī)數(shù)量的增加而增加[16]。
目前的研究認(rèn)為,連接在同一接入交換機(jī)的物理機(jī)之間的通信成本為1。由圖1 可知,Rack1 上的物理機(jī)與Rack2 上的物理機(jī)通信時(shí),經(jīng)過(guò)3 個(gè)交換機(jī),故通信代價(jià)為3[16]。所有物理機(jī)都可以獲得數(shù)據(jù)中心中的通信成本值。圖3 給出了三層網(wǎng)絡(luò)結(jié)構(gòu)不同機(jī)架之間的通信成本矩陣及其具體映射關(guān)系[10]。

圖3 通信成本矩陣Traffic
假設(shè)連接在同一臺(tái)接入交換機(jī)的所有虛擬機(jī),全部放置在一個(gè)機(jī)柜(Rack)上,則可以將數(shù)據(jù)中心的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)根據(jù)機(jī)柜進(jìn)行劃分,能夠定量地計(jì)算出所有虛擬機(jī)之間的通信代價(jià)。同一機(jī)柜內(nèi)的虛擬機(jī)進(jìn)行交互時(shí),只需要經(jīng)過(guò)一臺(tái)接入交換機(jī),交換機(jī)帶來(lái)的通信代價(jià)為1。當(dāng)兩臺(tái)虛擬機(jī)放置在同一物理機(jī)上時(shí),其通信消耗為0。不同虛擬機(jī)之間通信的通信代價(jià)也可以從通信成本矩陣Traffic中獲得。定義兩臺(tái)虛擬機(jī)之間進(jìn)行通信消耗的為:

根據(jù)以上分析,本文提出一種基于網(wǎng)絡(luò)拓?fù)涞奶摂M機(jī)遷移方法NTMS(Network Topology Migration Straregy)。在物理機(jī)的網(wǎng)絡(luò)性能突破閾值即過(guò)載后即觸發(fā)該方法。本文提出了一種量化虛擬機(jī)與機(jī)架聯(lián)系緊密程度的概念——流量緊密性,本文所提出的方法根據(jù)流量緊密性從過(guò)載物理機(jī)上選擇合適的一臺(tái)或者多臺(tái)虛擬機(jī)作為待遷移虛擬機(jī),然后再根據(jù)流量緊密性為每臺(tái)待遷移虛擬機(jī)選取合適的機(jī)柜,最后將待遷移虛擬機(jī)放置在與其流量交互最大的物理機(jī)上。
由于同一機(jī)架上的虛擬機(jī)的通信消耗系數(shù)RackCost(Racka,Rackb)最小,將與其他機(jī)架通信消耗更多的虛擬機(jī)進(jìn)行遷移,收益更大。
由這種思想啟發(fā),將與同一機(jī)架通信量較少而與其他機(jī)架通信量更多的虛擬機(jī)遷移到其他機(jī)架上來(lái)減少通信消耗。為了衡量虛擬機(jī)與機(jī)架之間流量關(guān)系的緊密性,找出與當(dāng)前機(jī)架上的虛擬機(jī)交互少卻和其他機(jī)架上的虛擬機(jī)通信頻繁的虛擬機(jī),定義虛擬機(jī)vmi 與機(jī)架Racka 的流量緊密性為 SR(vmi,Racka):

表示虛擬機(jī)vmi 與機(jī)架Racka 上所有虛擬機(jī)的通信消耗與不在機(jī)架Racka 上所有虛擬機(jī)的通信消耗的差。
根據(jù)式(2)依次選取過(guò)載物理機(jī)上所有虛擬機(jī)與過(guò)載物理機(jī)所在機(jī)架的流量緊密性,依次選取流量緊密性最低的虛擬機(jī)作為源虛擬機(jī)加入待遷移虛擬機(jī)組,直到過(guò)載物理機(jī)恢復(fù)至正常負(fù)載情況。
待遷移虛擬機(jī)選擇算法的偽碼描述如下:

算法1:待遷移虛擬機(jī)選擇算法輸入:流量矩陣Traffic,通信成本矩陣RackCost,過(guò)載物理機(jī)n輸出:待遷移虛擬機(jī)組Mir(n)Mir(n)<- null;def sr[];for i in n sr[i]=()SRvmi, Racka ;end for;put sr[]in ascending order;while n is overload mir(n)+=sr[0]sr[i]=sr[i+1]End while;Return mir(n);
通過(guò)待遷移虛擬機(jī)選擇算法得到待遷移虛擬機(jī)組后,需要將虛擬機(jī)組中的每臺(tái)待遷移虛擬機(jī)放置在合適的物理機(jī)上。這里使用的放置算法分為兩步,第一步選取合適的機(jī)柜,第二步在該機(jī)柜上選擇合適的物理機(jī)進(jìn)行放置。
第一步選取機(jī)柜。機(jī)柜的位置影響著RackCost(Racka,Rackb)的值,選取合適的機(jī)柜對(duì)于遷移結(jié)果有著決定性的影響因素。首先遍歷每個(gè)機(jī)柜,計(jì)算如果待遷移虛擬機(jī)vmi 放置在各個(gè)機(jī)柜上后與該機(jī)柜的流量緊密性 SR(vmi,Racka),選擇流量緊密性最大的機(jī)柜作為目的機(jī)柜。
第二步選取物理機(jī)。由于同一臺(tái)物理機(jī)上的虛擬機(jī)之間交互不會(huì)帶來(lái)網(wǎng)絡(luò)流量,所以?xún)?yōu)先選擇機(jī)柜上與待遷移虛擬機(jī)流量交互最高的物理機(jī)作為目的物理機(jī)。由于已經(jīng)確定了遷移機(jī)柜的原因,不用考慮其他流量關(guān)系帶來(lái)的影響。
虛擬機(jī)放置算法的偽碼描述算法2所示中偽碼2 到10 行是選擇合適機(jī)架的部分,11 到18 行是選擇合適物理機(jī)的部分。

算法2:虛擬機(jī)放置算法輸入:流量矩陣Traffic,通信成本矩陣RackCost,待遷移虛擬機(jī)組Mir(n)輸出:無(wú)for i in mir(n)def sr[];def maxRack=a ; maxSR=0;fora inUrack sr(a)=()SRvmi, Racka ;If sr(a)>maxSR maxSR=sr(a);maxRack=a ;end if end for def TotalTra[]for pm in maxRack TotalTra[pm]=(,)vm∑j ∈pm put TotalTra in descending order;While i can’t put in top pm pop top pm;End while put i to top pm end for Tra vmi vmj
使用Clodsim4.0 開(kāi)源仿真平臺(tái)進(jìn)行模擬實(shí)驗(yàn)。將本文遷移方法NTMS 與隨機(jī)算法、最佳適應(yīng)算法(Best Fit)、文獻(xiàn)[9]中的方法VMA-TM 算法以及文獻(xiàn)[10]中的ESBCA 算法進(jìn)行對(duì)比。
數(shù)據(jù)中心設(shè)置為三層結(jié)構(gòu),共60 臺(tái)物理機(jī)分布在6 個(gè)機(jī)柜上,即6 臺(tái)邊接入層交換機(jī);6 臺(tái)交換機(jī)每2 臺(tái)接入1 臺(tái)匯聚層交換機(jī);3 臺(tái)匯聚層交換機(jī)接入2 兩臺(tái)核心層交換機(jī)。為了便于代碼實(shí)現(xiàn),編號(hào)0-9 號(hào)物理機(jī)放置在機(jī)柜a,即接入接入層交換機(jī)a,編號(hào)10-19號(hào)物理機(jī)放置在機(jī)柜b,即接入接入層交換機(jī)b,以此類(lèi)推。
虛擬機(jī)分別設(shè)置為30,60,90,120 臺(tái),進(jìn)行4 組實(shí)驗(yàn),具體物理機(jī)和虛擬機(jī)配置參數(shù)如下表所示:

表1 物理機(jī)與虛擬機(jī)配置參數(shù)
運(yùn)行云任務(wù)數(shù)量設(shè)置為隨機(jī),長(zhǎng)度為5000,文件大小為300,輸出大小為300。虛擬機(jī)之間交互的流量矩陣參考了文獻(xiàn)[16]中的流量模式。物理機(jī)過(guò)載閾值設(shè)置為80%。
通過(guò)計(jì)算對(duì)比數(shù)據(jù)中心處理任務(wù)的平均時(shí)延來(lái)評(píng)價(jià)算法優(yōu)劣。結(jié)果分別如下所示:
圖4 與隨機(jī)算法,最佳適應(yīng)算法這兩種沒(méi)有對(duì)網(wǎng)絡(luò)進(jìn)行優(yōu)化的秀吉遷移方法進(jìn)行對(duì)比實(shí)驗(yàn),比較了三種算法運(yùn)行后數(shù)據(jù)中心處理任務(wù)的平均時(shí)延,其中隨機(jī)算法與最佳適應(yīng)算法沒(méi)有考慮通信消耗的影響。通過(guò)計(jì)算得到,NTMS 算法對(duì)比隨機(jī)算法平均減少了約30%的時(shí)延,對(duì)比最佳適應(yīng)算法平均減少了約12%時(shí)延。
圖5 對(duì)比了NTMS 與其他兩種關(guān)于減少通信消耗的算法ESBCA,VMA-TM 的任務(wù)平均時(shí)延,可以看出,NTMS 算法在同類(lèi)型算法中也有更好的效果。

圖5 與網(wǎng)絡(luò)優(yōu)化方法的時(shí)延對(duì)比
本文根據(jù)數(shù)據(jù)中心網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的特征以及通訊過(guò)程與交換機(jī)之間的關(guān)系設(shè)計(jì)了一種減少數(shù)據(jù)中心網(wǎng)絡(luò)通信消耗的虛擬機(jī)遷移方法。本文提出了一種衡量虛擬機(jī)與機(jī)架之間流量關(guān)系緊密程度的概念:流量緊密性,并根據(jù)流量緊密性進(jìn)行虛擬機(jī)遷移。遷移方法對(duì)于數(shù)據(jù)中心處理任務(wù)的平均時(shí)延有顯著降低,提升了數(shù)據(jù)中心的整體網(wǎng)絡(luò)性能。下一步研究將綜合考慮安全性、能耗、服務(wù)質(zhì)量進(jìn)行多目標(biāo)優(yōu)化。
網(wǎng)絡(luò)安全技術(shù)與應(yīng)用2021年5期