一種業(yè)務(wù)需求感知的虛擬數(shù)據(jù)中心映射方法
【專利摘要】本發(fā)明公開了一種業(yè)務(wù)需求感知的虛擬數(shù)據(jù)中心映射方法,數(shù)據(jù)中心網(wǎng)絡(luò)采用胖樹結(jié)構(gòu),當(dāng)用戶發(fā)起虛擬數(shù)據(jù)中心映射請(qǐng)求時(shí),首先從所有物理主機(jī)中篩選出剩余資源容量滿足虛擬機(jī)中最大物理主機(jī)資源需求的作為可用物理主機(jī),將交換機(jī)組和機(jī)架按照可用物理主機(jī)數(shù)進(jìn)行降序排列,選擇鏈路資源需求最大的虛擬機(jī),在物理主機(jī)中依次嘗試映射,映射成功后再選擇已映射虛擬機(jī)與未映射虛擬機(jī)之間鏈路資源需求最大的虛擬鏈路,選擇其對(duì)應(yīng)的未映射虛擬機(jī),依次在與對(duì)應(yīng)已映射虛擬機(jī)所在物理主機(jī)相同機(jī)架、相同交換組、全數(shù)據(jù)中心網(wǎng)絡(luò)中物理主機(jī)中嘗試映射,所有虛擬機(jī)映射完畢后,再進(jìn)行虛擬鏈路映射。本發(fā)明可以實(shí)現(xiàn)低網(wǎng)絡(luò)成本的虛擬數(shù)據(jù)中心映射。
【專利說(shuō)明】一種業(yè)務(wù)需求感知的虛擬數(shù)據(jù)中心映射方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于虛擬網(wǎng)絡(luò)【技術(shù)領(lǐng)域】,更為具體地講,涉及一種業(yè)務(wù)需求感知的虛擬數(shù)據(jù)中心映射方法。
【背景技術(shù)】
[0002]硬件虛擬化技術(shù)以及KVM(Kernel_based Virtual Machine,基于內(nèi)核的虛擬機(jī))、OpenVZ (Operating system-level virtualization,操作系統(tǒng)虛擬化)、QEMU 等虛擬機(jī)技術(shù)的發(fā)展使資源共享能夠以更加方便、安全、靈活的方式進(jìn)行。在云數(shù)據(jù)中心,用戶的計(jì)算任務(wù)通常由一組虛擬機(jī)通過(guò)協(xié)作完成。用戶的需求可以描述為:請(qǐng)求一組擁有指定資源的虛擬機(jī),并為虛擬機(jī)之間配備指定的網(wǎng)絡(luò)帶寬。這樣的用戶需求可以看作是對(duì)虛擬數(shù)據(jù)中心的請(qǐng)求,虛擬數(shù)據(jù)中心被定義為一組擁有虛擬鏈路需求和物理主機(jī)資源需求的虛擬機(jī)集
口 ο
[0003]出于提高資源利用率、減少電力消耗、減少建設(shè)和運(yùn)營(yíng)成本等方面的考慮,云服務(wù)提供商希望使用盡可能少的物理主機(jī)提供能夠滿足所有用戶需求的服務(wù),因此會(huì)將用戶的虛擬機(jī)放置到盡量少的物理主機(jī)上。在這樣的數(shù)據(jù)中心中,位于同一物理主機(jī)上的多個(gè)虛擬機(jī)共享這個(gè)物理主機(jī)的CPU、內(nèi)存、硬盤等物理主機(jī)資源,也共享這個(gè)物理主機(jī)的網(wǎng)卡、接入帶寬等網(wǎng)絡(luò)資源。另一方面,現(xiàn)代云計(jì)算數(shù)據(jù)中心規(guī)模巨大,出于減少建設(shè)成本的考慮,組建數(shù)據(jù)中心的設(shè)備一般采用通用商用硬件,因而物理主機(jī)和網(wǎng)絡(luò)設(shè)備故障并不少見,力口之?dāng)?shù)據(jù)中心規(guī)模龐大,設(shè)備故障宕機(jī)事件十分平常。為了減少設(shè)備故障對(duì)用戶服務(wù)帶來(lái)的影響,隸屬同一用戶的虛擬機(jī)往往部署在不同的物理主機(jī)上。
[0004]云服務(wù)提供商需要將所有用戶的虛擬數(shù)據(jù)中心請(qǐng)求放置到實(shí)際的物理主機(jī)上,并分配對(duì)應(yīng)的計(jì)算、存儲(chǔ)、網(wǎng)絡(luò)等資源實(shí)現(xiàn)服務(wù)的提供。對(duì)于任意一個(gè)虛擬數(shù)據(jù)中心請(qǐng)求而言,云服務(wù)提供商除了需要為所有的虛擬機(jī)請(qǐng)求指定對(duì)應(yīng)的物理主機(jī)、分配資源外,還需要為所有擁有通信需求的虛擬機(jī)之間提供數(shù)據(jù)轉(zhuǎn)發(fā)鏈路、分配網(wǎng)絡(luò)帶寬。由于隸屬同一個(gè)用戶的多個(gè)虛擬機(jī)不能簡(jiǎn)單的聚集在少量的物理服務(wù)器上,因此同一個(gè)物理主機(jī)上一般會(huì)同時(shí)托管多個(gè)用戶的虛擬機(jī)。同一用戶的虛擬機(jī)位于不同的物理主機(jī)上,它們之間的數(shù)據(jù)傳輸需要通過(guò)連接物理主機(jī)的數(shù)據(jù)中心網(wǎng)絡(luò)完成。單純只考慮物理主機(jī)資源限制的虛擬機(jī)放置是經(jīng)典的裝箱問(wèn)題,而網(wǎng)絡(luò)資源分配的引入使得虛擬機(jī)的放置問(wèn)題變得十分困難。因?yàn)樵谶M(jìn)行虛擬數(shù)據(jù)中心放置時(shí),除了需要考慮物理主機(jī)的CPU、內(nèi)存、硬盤、接入帶寬等資源容量限制外,還需要考慮如何為所有的虛擬鏈路需求分配實(shí)際的轉(zhuǎn)發(fā)路徑。由于任何一條路徑所分配到的資源量由組成它的各段鏈路中的最少值決定,因此虛擬鏈路需求的滿足需要同時(shí)考慮每一段鏈路上的資源分配,而每段鏈路上的資源分配除了需要考慮共享當(dāng)前這條鏈路所有用戶的資源需求外,還需要考慮這些用戶在其他鏈路上的資源競(jìng)爭(zhēng)與分配,這使得通信需求的滿足十分困難。另一方面,由于網(wǎng)絡(luò)設(shè)備的轉(zhuǎn)發(fā)能力并不是無(wú)限的(事實(shí)上交換機(jī)的轉(zhuǎn)發(fā)表、緩存空間等資源十分有限),因而在進(jìn)行虛擬數(shù)據(jù)中心虛擬鏈路的映射時(shí),除了需要考慮鏈路的帶寬容量限制外,還需要考慮網(wǎng)絡(luò)設(shè)備轉(zhuǎn)發(fā)能力的限制。[0005]由此看來(lái),虛擬數(shù)據(jù)中心的需求放置和資源分配問(wèn)題集結(jié)了服務(wù)器資源、鏈路帶寬資源、設(shè)備轉(zhuǎn)發(fā)能力等因素的共同限制,該問(wèn)題已經(jīng)被證明是一個(gè)NP難的問(wèn)題。虛擬數(shù)據(jù)中心內(nèi)部各虛擬機(jī)的通信需求在放置過(guò)后被映射為數(shù)據(jù)中心網(wǎng)絡(luò)內(nèi)部流量,當(dāng)前的數(shù)據(jù)中心網(wǎng)絡(luò)一般采用多級(jí)結(jié)構(gòu),如何減少跨區(qū)域的內(nèi)部流量十分的重要。一方面,減少對(duì)核心網(wǎng)絡(luò)設(shè)備的使用可以讓數(shù)據(jù)中心擁有更大的可能接收更多后來(lái)的請(qǐng)求,而減少跨區(qū)域的內(nèi)部流量也為以節(jié)能為目標(biāo)的流量工程等最佳路由創(chuàng)造了優(yōu)化空間。如何設(shè)計(jì)一個(gè)虛擬數(shù)據(jù)中心映射算法,實(shí)現(xiàn)快速地虛擬機(jī)請(qǐng)求放置和虛擬鏈路映射,同時(shí)獲得高資源利用率、低跨域網(wǎng)絡(luò)流量十分重要。
[0006]現(xiàn)有的各類虛擬數(shù)據(jù)中心映射算法都沒有考慮網(wǎng)絡(luò)設(shè)備轉(zhuǎn)發(fā)能力限制的問(wèn)題,因此并不能很好的處理轉(zhuǎn)發(fā)能力受限情形下的虛擬數(shù)據(jù)中心映射問(wèn)題。
【發(fā)明內(nèi)容】
[0007]本發(fā)明的目的在于克服現(xiàn)有技術(shù)的不足,提供一種業(yè)務(wù)需求感知的虛擬數(shù)據(jù)中心映射方法,綜合考慮了物理主機(jī)資源容量、物理鏈路資源、交換機(jī)轉(zhuǎn)發(fā)能力限制,實(shí)現(xiàn)低成本的虛擬數(shù)據(jù)中心映射。
[0008]為實(shí)現(xiàn)上述發(fā)明目的,本發(fā)明業(yè)務(wù)需求感知的虛擬數(shù)據(jù)中心映射方法,包括以下步驟:
[0009]S1:用戶向數(shù)據(jù)中心發(fā)起虛擬數(shù)據(jù)中心請(qǐng)求,請(qǐng)求包括各虛擬機(jī)的物理主機(jī)資源需求、各虛擬機(jī)之間的虛擬鏈路、以及各虛擬鏈路的帶寬需求,其中各虛擬機(jī)具有的虛擬鏈路數(shù)量即為該虛擬機(jī)所需建立的轉(zhuǎn)發(fā)表項(xiàng)數(shù)量;數(shù)據(jù)中心網(wǎng)絡(luò)采用胖樹結(jié)構(gòu),物理主機(jī)與數(shù)據(jù)中心的邊緣交換機(jī)連接,數(shù)據(jù)中心中各物理鏈路配置的初始帶寬資源相同,各個(gè)交換機(jī)配置的轉(zhuǎn)發(fā)表初始容量相同;
[0010]S2:根據(jù)請(qǐng)求中各虛擬機(jī)的物理主機(jī)資源需求中的最大值,以及各物理主機(jī)的剩余資源容量,篩選出剩余資源容量大于等于虛擬機(jī)資源需求最大值的可用物理主機(jī),統(tǒng)計(jì)出數(shù)據(jù)中心中每個(gè)機(jī)架的可用物理主機(jī)數(shù)Ri,其中i表示機(jī)架序號(hào),并將每個(gè)交換機(jī)組中各機(jī)架的可用物理主機(jī)數(shù)相加得到每個(gè)交換機(jī)組的可用物理主機(jī)數(shù)Pj,其中j表示交換機(jī)組序號(hào);
[0011]S3:將交換機(jī)組按照可用物理主機(jī)數(shù)匕進(jìn)行降序排列,每個(gè)交換機(jī)組中的機(jī)架也按照可用物理主機(jī)數(shù)Ri進(jìn)行降序排列;
[0012]S4:選擇帶寬資源需求最大的虛擬機(jī),根據(jù)步驟S3排序得到的物理主機(jī)順序,依次嘗試將該虛擬機(jī)映射到物理主機(jī)上,映射條件為:物理主機(jī)與其連接的邊緣交換機(jī)間的物理鏈路帶寬資源能滿足該虛擬機(jī)帶寬資源需求、以及該邊緣交換機(jī)剩余轉(zhuǎn)發(fā)表容量能滿足該虛擬機(jī)轉(zhuǎn)發(fā)表項(xiàng)的建立;如果存在可映射該虛擬機(jī)的物理主機(jī),則將該虛擬機(jī)映射到找到的第一個(gè)物理主機(jī)上,更新與被映射的物理主機(jī)連接的邊緣交換機(jī)的轉(zhuǎn)發(fā)表容量以及對(duì)應(yīng)物理鏈路的剩余帶寬資源;如果不能找到,返回映射失敗消息,虛擬數(shù)據(jù)中心映射結(jié)束;
[0013]S5:統(tǒng)計(jì)所有已映射和未映射的虛擬機(jī)之間的虛擬鏈路帶寬資源需求,選擇其中帶寬資源需求最大的虛擬鏈路,將該虛擬鏈路對(duì)應(yīng)的已映射虛擬機(jī)標(biāo)記為U,其映射的物理主機(jī)標(biāo)記為a,未映射虛擬機(jī)標(biāo)記為V,根據(jù)步驟S3排序得到的物理主機(jī)順序,依次嘗試將虛擬機(jī)V映射到與物理主機(jī)a位于同一個(gè)機(jī)架的其它可用物理主機(jī)上,如果該機(jī)架存在可映射虛擬機(jī)V的物理主機(jī),進(jìn)入步驟S8,否則進(jìn)入步驟S6 ;
[0014]S6:根據(jù)步驟S3排序得到的物理主機(jī)順序,依次嘗試將虛擬機(jī)V映射到與物理主機(jī)a位于同一個(gè)交換機(jī)組的其它機(jī)架的可用物理主機(jī)上,如果其他機(jī)架存在可映射虛擬機(jī)V的物理主機(jī),進(jìn)入步驟S8 ;否則進(jìn)入步驟S7 ;
[0015]S7:根據(jù)步驟S3排序得到的物理主機(jī)順序,依次嘗試將虛擬機(jī)V映射到物理主機(jī)a的交換機(jī)組外的其它交換機(jī)組的可用物理主機(jī)上,如果其它交換機(jī)組存在可映射虛擬機(jī)V的物理主機(jī),進(jìn)入步驟S8 ;否則返回映射失敗消息,虛擬數(shù)據(jù)中心映射結(jié)束;
[0016]S8:將虛擬機(jī)V映射到找到的第一個(gè)物理主機(jī)上,更新與被映射的物理主機(jī)連接的邊緣交換機(jī)的轉(zhuǎn)發(fā)表容量以及對(duì)應(yīng)物理鏈路的剩余帶寬資源;判斷是否所有虛擬機(jī)都已實(shí)現(xiàn)映射,如果不是,返回步驟S5,如果是,進(jìn)入步驟S9 ;
[0017]步驟S9:根據(jù)所有虛擬機(jī)的映射結(jié)果以及虛擬機(jī)之間的帶寬需求,進(jìn)行虛擬鏈路映射,返回虛擬數(shù)據(jù)中心映射成功消息,虛擬數(shù)據(jù)中心映射結(jié)束。
[0018]其中,轉(zhuǎn)發(fā)表為路由表。
[0019]其中,轉(zhuǎn)發(fā)表為流表。
[0020]進(jìn)一步地,步驟S3還包括將各機(jī)架中可用物理主機(jī)根據(jù)剩余資源容量進(jìn)行降序排列。
[0021]其中,步驟S9中虛擬鏈路映射時(shí)每一跳均選擇剩余帶寬最大的鏈路。
[0022]本發(fā)明是具有業(yè)務(wù)需求感知的虛擬數(shù)據(jù)中心映射方法,數(shù)據(jù)中心網(wǎng)絡(luò)采用胖樹結(jié)構(gòu),數(shù)據(jù)中心中各物理鏈路配置的帶寬資源相同、各個(gè)交換機(jī)配置的轉(zhuǎn)發(fā)表容量相同。當(dāng)有用戶發(fā)起虛擬數(shù)據(jù)中心映射請(qǐng)求時(shí),首先從所有物理主機(jī)中篩選出剩余資源容量大于等于虛擬機(jī)中最大物理主機(jī)資源需求量的作為可用物理主機(jī),將交換機(jī)組和機(jī)架按照可用物理主機(jī)數(shù)進(jìn)行降序排列,選擇鏈路資源需求最大的虛擬機(jī),在所有物理主機(jī)中依次嘗試進(jìn)行映射。映射成功后,再選擇已映射虛擬機(jī)與未映射虛擬機(jī)之間鏈路資源需求最大的虛擬鏈路,選擇其對(duì)應(yīng)的未映射虛擬機(jī),依次在與對(duì)應(yīng)已映射虛擬機(jī)所在物理主機(jī)相同機(jī)架、相同交換機(jī)組、整個(gè)數(shù)據(jù)中心網(wǎng)絡(luò)中的物理主機(jī)中嘗試進(jìn)行映射,所有虛擬機(jī)映射完畢后,再進(jìn)行虛擬鏈路映射,從而完成虛擬數(shù)據(jù)中心映射。
[0023]本發(fā)明具有以下有益效果:
[0024](I)、所有虛擬機(jī)映射的物理主機(jī)各不相同,可以減少物理主機(jī)故障帶來(lái)的影響;
[0025](2)、將交換機(jī)組和機(jī)架按照可用物理主機(jī)數(shù)進(jìn)行降序排列,可以使同屬一個(gè)虛擬數(shù)據(jù)中心的虛擬機(jī)盡可能多地映射在同一個(gè)機(jī)架或者同一個(gè)交換機(jī)組中,減少跨區(qū)域的數(shù)
據(jù)流量;
[0026](3)、綜合考慮了物理主機(jī)資源容量、物理鏈路資源、交換機(jī)轉(zhuǎn)發(fā)能力限制,使虛擬機(jī)的映射更為合理;
[0027]( 4 )、采用本發(fā)明進(jìn)行虛擬數(shù)據(jù)中心映射的網(wǎng)絡(luò)成本較低。
【專利附圖】
【附圖說(shuō)明】
[0028]圖1是本發(fā)明業(yè)務(wù)需求感知的虛擬數(shù)據(jù)中心映射方法的一種【具體實(shí)施方式】流程圖;[0029]圖2是Fat-Tree網(wǎng)絡(luò)結(jié)構(gòu)的示意圖;
[0030]圖3是虛擬數(shù)據(jù)中心的示例圖。
【具體實(shí)施方式】
[0031]下面結(jié)合附圖對(duì)本發(fā)明的【具體實(shí)施方式】進(jìn)行描述,以便本領(lǐng)域的技術(shù)人員更好地理解本發(fā)明。需要特別提醒注意的是,在以下的描述中,當(dāng)已知功能和設(shè)計(jì)的詳細(xì)描述也許會(huì)淡化本發(fā)明的主要內(nèi)容時(shí),這些描述在這里將被忽略。
[0032]實(shí)施例
[0033]圖1是本發(fā)明業(yè)務(wù)需求感知的虛擬數(shù)據(jù)中心映射方法的一種【具體實(shí)施方式】流程圖。如圖1所示,本發(fā)明業(yè)務(wù)需求感知的虛擬數(shù)據(jù)中心映射方法,具體包括以下步驟:
[0034]SlOl:用戶向數(shù)據(jù)中心發(fā)起虛擬數(shù)據(jù)中心請(qǐng)求,請(qǐng)求包括各虛擬機(jī)的物理主機(jī)資源需求、各虛擬機(jī)之間的虛擬鏈路、各虛擬鏈路的帶寬需求,其中各虛擬機(jī)具有的虛擬鏈路數(shù)量即為該虛擬機(jī)所需建立的轉(zhuǎn)發(fā)表項(xiàng)數(shù)量;數(shù)據(jù)中心網(wǎng)絡(luò)采用胖樹結(jié)構(gòu),物理主機(jī)與數(shù)據(jù)中心的邊緣交換機(jī)連接,數(shù)據(jù)中心中各物理鏈路配置的帶寬初始資源相同,各個(gè)交換機(jī)配置的轉(zhuǎn)發(fā)表初始容量相同。
[0035]圖2是Fat-Tree網(wǎng)絡(luò)結(jié)構(gòu)的示意圖。如圖2所示,F(xiàn)at-Tree網(wǎng)絡(luò)是一種類clos網(wǎng)絡(luò)結(jié)構(gòu),其規(guī)模大小可以用組建Fat-Tree網(wǎng)絡(luò)所使用交換機(jī)的端口數(shù)量k來(lái)描述。圖2中為k = 4的Fat-Tree網(wǎng)絡(luò)。Fat-Tree網(wǎng)絡(luò)中一般可被看作由邊緣(edge)、匯聚(aggregation)、核心(core)三級(jí)結(jié)構(gòu)組成。一個(gè)參數(shù)為k的Fat-Tree包含k個(gè)交換機(jī)組(pod) 202,每個(gè)交換機(jī)組由k個(gè)交換機(jī)構(gòu)成,而每個(gè)交換機(jī)具有k個(gè)端口。每個(gè)交換機(jī)內(nèi)的k個(gè)交換機(jī)被分為兩組,分別是邊緣交換機(jī)204和匯聚交換機(jī)203,k/2個(gè)邊緣交換機(jī)204中,每個(gè)交換機(jī)的k/2個(gè)端口與物理主機(jī)205相連,剩下k/2個(gè)端口分別與本交換機(jī)組內(nèi)的k/2個(gè)匯聚交換機(jī)203相連。這k/2個(gè)匯聚交換機(jī)203剩下的k2/4個(gè)端口,分別與k2/4個(gè)核心交換機(jī)201相連。每個(gè)核心交換機(jī)201的k個(gè)端口分別和k個(gè)交換機(jī)組202內(nèi)的對(duì)應(yīng)匯聚交換機(jī)203相連。在數(shù)據(jù)中心中,每個(gè)邊緣交換機(jī)204負(fù)責(zé)將物理主機(jī)205接入到網(wǎng)絡(luò)中,每個(gè)邊緣交換機(jī)204和對(duì)應(yīng)的物理主機(jī)205位于同一個(gè)機(jī)架(rack) 206上。一個(gè)參數(shù)為k的Fat-Tree數(shù)據(jù)中心的構(gòu)建需要5k2/4個(gè)k端口的交換機(jī),能夠支持k3/4個(gè)物理主機(jī)的互聯(lián)。
[0036]交換機(jī)的轉(zhuǎn)發(fā)能力通常包括出入帶寬資源以及轉(zhuǎn)發(fā)表容量,本發(fā)明中數(shù)據(jù)中心中各物理鏈路配置的帶寬初始資源相同,各個(gè)交換機(jī)配置的轉(zhuǎn)發(fā)表初始容量相同。由于邊緣交換機(jī)直接與物理主機(jī)相連,那么任何物理主機(jī)上映射虛擬機(jī)時(shí),與該物理連接的邊緣交換機(jī)的轉(zhuǎn)發(fā)表容量和對(duì)應(yīng)的物理鏈路的帶寬資源都會(huì)消耗,而匯聚交換機(jī)和核心交換機(jī)及其物理鏈路不一定會(huì)被消耗,而且由于Fat-Tree的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)特點(diǎn),只要邊緣交換機(jī)的轉(zhuǎn)發(fā)表容量和其與物理主機(jī)之間的物理鏈路帶寬資源能夠滿足虛擬機(jī)的需求,那么就一定可以在數(shù)據(jù)中心網(wǎng)絡(luò)中找到滿足需求的物理鏈路和中間交換機(jī)以進(jìn)行虛擬鏈路映射。
[0037]轉(zhuǎn)發(fā)表根據(jù)實(shí)際組網(wǎng)設(shè)備的不同而不同,例如如果是采用傳統(tǒng)的路由器組網(wǎng),轉(zhuǎn)發(fā)表即為路由表,如果是采用OpenFlow設(shè)備組網(wǎng),那么轉(zhuǎn)發(fā)表即為流表。
[0038]S102:篩選可用物理主機(jī):
[0039]根據(jù)請(qǐng)求中各虛擬機(jī)的物理主機(jī)資源需求中的最大值,以及各物理主機(jī)的剩余資源容量,篩選出剩余資源容量大于等于虛擬機(jī)資源需求最大值的可用物理主機(jī),統(tǒng)計(jì)出數(shù)據(jù)中心中每個(gè)機(jī)架的可用物理主機(jī)數(shù)Ri,其中i表示機(jī)架序號(hào),并將每個(gè)交換機(jī)組中各機(jī)架的可用物理主機(jī)數(shù)相加得到每個(gè)交換機(jī)組的可用物理主機(jī)數(shù)Pj,其中j表示交換機(jī)組序號(hào)。
[0040]物理主機(jī)的資源通常會(huì)包括CPU、內(nèi)存、硬盤、接入帶寬等,那么可用物理主機(jī)應(yīng)該每一項(xiàng)資源都能夠滿足虛擬機(jī)的需求。
[0041]S103:將交換機(jī)機(jī)組和機(jī)架按可用物理主機(jī)數(shù)量排序:
[0042]將交換機(jī)組按照可用物理主機(jī)數(shù)P」進(jìn)行降序排列,每個(gè)交換機(jī)組中的機(jī)架也按照可用物理主機(jī)數(shù)Ri進(jìn)行降序排列。進(jìn)行排序的主要目的是在進(jìn)行虛擬機(jī)映射時(shí),能盡量映射在同一個(gè)機(jī)架或者同一個(gè)交換機(jī)組內(nèi),從而減少數(shù)據(jù)中心中跨區(qū)域的內(nèi)部流量。
[0043]在進(jìn)行排序時(shí),還可以對(duì)機(jī)架中的物理主機(jī)根據(jù)剩余資源容量進(jìn)行降序排列,虛擬機(jī)會(huì)優(yōu)先映射在剩余資源容量較大的物理主機(jī)上,這樣可以使物理主機(jī)的負(fù)載更加均衡。
[0044]S104:選擇帶寬資源需求最大的虛擬機(jī)進(jìn)行映射:
[0045]選擇帶寬資源需求最大的虛擬機(jī),根據(jù)步驟S103得到的物理主機(jī)順序,依次嘗試將該虛擬機(jī)映射到物理主機(jī)上,映射條件為:物理主機(jī)與其連接的邊緣交換機(jī)間的物理鏈路的剩余帶寬資源能滿足該虛擬機(jī)帶寬資源需求、以及該邊緣交換機(jī)剩余轉(zhuǎn)發(fā)表容量能滿足該虛擬機(jī)轉(zhuǎn)發(fā)表項(xiàng)的建立;如果存在可映射該虛擬機(jī)的物理主機(jī),則將該虛擬機(jī)映射到找到的第一個(gè)物理主機(jī)上。
[0046]圖3是虛擬數(shù)據(jù)中心的示例圖。如圖1所示,該虛擬數(shù)據(jù)中心包含5個(gè)虛擬機(jī)(VM,Virtual Machine),各虛擬機(jī)之間連線上的數(shù)字代表該虛擬鏈路的帶寬資源需求,例如虛擬機(jī)VMl和虛擬機(jī)VM2之間虛擬鏈路的帶寬資源需求為10。帶寬資源需求最大的虛擬機(jī)是指其所有與其他虛擬機(jī)連接的虛擬鏈路的帶寬資源需求總和最大的虛擬機(jī),可見圖3中,虛擬機(jī)VM2的帶寬資源需求最大,第一個(gè)映射的虛擬機(jī)是VM2。
[0047]S105:判斷步驟S104是否映射成功,如果成功,更新與被映射的物理主機(jī)連接的邊緣交換機(jī)的轉(zhuǎn)發(fā)表容量以及對(duì)應(yīng)物理鏈路的剩余帶寬資源,進(jìn)入步驟S106,如果不成功,返回映射失敗消息,虛擬數(shù)據(jù)中心映射結(jié)束。
[0048]如果一個(gè)虛擬機(jī)無(wú)法映射,那么整個(gè)虛擬數(shù)據(jù)中心都無(wú)法成功映射,因此結(jié)束虛擬數(shù)據(jù)中心映射。
[0049]S106:根據(jù)虛擬鏈路帶寬資源需求選擇下一個(gè)未映射虛擬機(jī)進(jìn)行映射:
[0050]統(tǒng)計(jì)所有已映射和未映射的虛擬機(jī)之間的虛擬鏈路帶寬資源需求,選擇其中帶寬資源需求最大的虛擬鏈路,將該虛擬鏈路對(duì)應(yīng)的已映射虛擬機(jī)標(biāo)記為U,其映射的物理主機(jī)標(biāo)記為a,未映射虛擬機(jī)標(biāo)記為V。
[0051]如圖3所示,當(dāng)成功映射了虛擬機(jī)VM2后,與其虛擬鏈路帶寬資源需求最大的虛擬機(jī)為VM3,第二個(gè)應(yīng)該映射的虛擬機(jī)為VM3。依次在虛擬機(jī)VM2映射的物理主機(jī)的相同機(jī)架、相同交換機(jī)組、整個(gè)數(shù)據(jù)中心查找可映射虛擬機(jī)VM3的物理主機(jī)。
[0052]根據(jù)步驟S103得到的物理主機(jī)順序,依次嘗試將虛擬機(jī)V映射到與物理主機(jī)a位于同一個(gè)機(jī)架的其它可用物理主機(jī)上,如果該機(jī)架存在可映射虛擬機(jī)V的物理主機(jī),則將虛擬機(jī)V映射在找到的第一個(gè)物理主機(jī)上,否則再依次嘗試將虛擬機(jī)V映射到與物理主機(jī)a位于同一個(gè)交換機(jī)組的其它機(jī)架的可用物理主機(jī)上,如果其他機(jī)架存在可映射虛擬機(jī)V的物理主機(jī),則將虛擬機(jī)V映射在找到的第一個(gè)物理主機(jī)上,否則再依次嘗試將虛擬機(jī)V映射到物理主機(jī)a的交換機(jī)組外的其它交換機(jī)組的物理主機(jī)上。
[0053]S107:判斷步驟S106是否映射成功,如果成功,更新與被映射的物理主機(jī)連接的邊緣交換機(jī)的轉(zhuǎn)發(fā)表容量以及對(duì)應(yīng)物理鏈路的剩余帶寬資源,進(jìn)入步驟S108,如果不成功,返回映射失敗消息,虛擬數(shù)據(jù)中心映射結(jié)束。
[0054]S108:判斷是否所有虛擬機(jī)都已成功映射,如果不是,返回步驟S106,如果是,進(jìn)入步驟S109。
[0055]S109:根據(jù)所有虛擬機(jī)的映射結(jié)果以及虛擬機(jī)之間的帶寬需求,進(jìn)行虛擬鏈路映射,返回虛擬數(shù)據(jù)中心映射成功消息,虛擬數(shù)據(jù)中心映射結(jié)束。進(jìn)行虛擬鏈路映射時(shí),用現(xiàn)在許多技術(shù)都能實(shí)現(xiàn),可以根據(jù)實(shí)際需要,選擇滿足負(fù)載均衡或者網(wǎng)絡(luò)節(jié)能需求的最佳路由實(shí)現(xiàn),例如需負(fù)載均衡時(shí),可以在虛擬鏈路映射時(shí)每一跳均選擇剩余帶寬最大的鏈路。
[0056]本發(fā)明業(yè)務(wù)需求感知的虛擬數(shù)據(jù)中心映射方法,是綜合考慮了物理主機(jī)資源容量、物理鏈路資源容量、交換機(jī)轉(zhuǎn)發(fā)能力限制的情況下,占用最少的網(wǎng)絡(luò)資源將用戶的虛擬數(shù)據(jù)中心請(qǐng)求映射到物理數(shù)據(jù)中心中。以Gv表示需要映射的虛擬數(shù)據(jù)中心,對(duì)于一個(gè)給定的映射方案π,JI "和分別表示虛擬機(jī)和虛擬鏈路的映射方案,可以用相對(duì)映射成本R(Gv, π)估計(jì)該映射方案的效果。計(jì)算公式為:
【權(quán)利要求】
1.一種業(yè)務(wù)需求感知的虛擬數(shù)據(jù)中心映射方法,其特征在于,包括以下步驟: S1:用戶向數(shù)據(jù)中心發(fā)起虛擬數(shù)據(jù)中心請(qǐng)求,請(qǐng)求包括各虛擬機(jī)的物理主機(jī)資源需求、各虛擬機(jī)之間的虛擬鏈路、以及各虛擬鏈路的帶寬需求,其中各虛擬機(jī)具有的虛擬鏈路數(shù)量即為該虛擬機(jī)所需建立的轉(zhuǎn)發(fā)表項(xiàng)數(shù)量;數(shù)據(jù)中心網(wǎng)絡(luò)采用胖樹結(jié)構(gòu),物理主機(jī)與數(shù)據(jù)中心的邊緣交換機(jī)連接,數(shù)據(jù)中心中各物理鏈路配置的初始帶寬資源相同,各個(gè)交換機(jī)配置的轉(zhuǎn)發(fā)表初始容量相同; 52:根據(jù)請(qǐng)求中各虛擬機(jī)的物理主機(jī)資源需求中的最大值,以及各物理主機(jī)的剩余資源容量,篩選出剩余資源容量大于等于虛擬機(jī)資源需求最大值的可用物理主機(jī),統(tǒng)計(jì)出數(shù)據(jù)中心中每個(gè)機(jī)架的可用物理主機(jī)數(shù)Ri,其中i表示機(jī)架序號(hào),并將每個(gè)交換機(jī)組中各機(jī)架的可用物理主機(jī)數(shù)相加得到每個(gè)交換機(jī)組的可用物理主機(jī)數(shù)Pj,其中j表示交換機(jī)組序號(hào); 53:將交換機(jī)組按照可用物理主機(jī)數(shù)P」進(jìn)行降序排列,每個(gè)交換機(jī)組中的機(jī)架也按照可用物理主機(jī)數(shù)Ri進(jìn)行降序排列; S4:選擇帶寬資源需求最大的虛擬機(jī),根據(jù)步驟S3排序得到的物理主機(jī)順序,依次嘗試將該虛擬機(jī)映射到物理主機(jī)上,映射條件為:物理主機(jī)與其連接的邊緣交換機(jī)間的物理鏈路帶寬資源能滿足該虛擬機(jī)帶寬資源需求、以及該邊緣交換機(jī)剩余轉(zhuǎn)發(fā)表容量能滿足該虛擬機(jī)轉(zhuǎn)發(fā)表項(xiàng)的建立;如果存在可映射該虛擬機(jī)的物理主機(jī),則將該虛擬機(jī)映射到找到的第一個(gè)物理主機(jī)上,更新與被映射的物理主機(jī)連接的邊緣交換機(jī)的轉(zhuǎn)發(fā)表容量以及對(duì)應(yīng)物理鏈路的剩余帶寬資源;如果不能找到,返回映射失敗消息,虛擬數(shù)據(jù)中心映射結(jié)束; S5:統(tǒng)計(jì)所有已映射和未映射的虛擬機(jī)之間的虛擬鏈路帶寬資源需求,選擇其中帶寬資源需求最大的虛擬鏈路,將該虛擬鏈路對(duì)應(yīng)的已映射虛擬機(jī)標(biāo)記為U,其映射的物理主機(jī)標(biāo)記為a,未映射虛擬機(jī)標(biāo)記為V,根據(jù)步驟S3排序得到的物理主機(jī)順序,依次嘗試將虛擬機(jī)V映射到與物理主機(jī)a位于同一個(gè)機(jī)架的其它可用物理主機(jī)上,如果該機(jī)架存在可映射虛擬機(jī)V的物理主機(jī),進(jìn)入步驟`S8,否則進(jìn)入步驟S6 ; 56:根據(jù)步驟S3排序得到的物理主機(jī)順序,依次嘗試將虛擬機(jī)V映射到與物理主機(jī)a位于同一個(gè)交換機(jī)組的其它機(jī)架的可用物理主機(jī)上,如果其他機(jī)架存在可映射虛擬機(jī)V的物理主機(jī),進(jìn)入步驟S8 ;否則進(jìn)入步驟S7 ; 57:根據(jù)步驟S3排序得到的物理主機(jī)順序,依次嘗試將虛擬機(jī)V映射到物理主機(jī)a的交換機(jī)組外的其它交換機(jī)組的可用物理主機(jī)上,如果其它交換機(jī)組存在可映射虛擬機(jī)V的物理主機(jī),進(jìn)入步驟S8 ;否則返回映射失敗消息,虛擬數(shù)據(jù)中心映射結(jié)束; 58:將虛擬機(jī)V映射到找到的第一個(gè)物理主機(jī)上,更新與被映射的物理主機(jī)連接的邊緣交換機(jī)的轉(zhuǎn)發(fā)表容量以及對(duì)應(yīng)物理鏈路的剩余帶寬資源;判斷是否所有虛擬機(jī)都已實(shí)現(xiàn)映射,如果不是,返回步驟S5,如果是,進(jìn)入步驟S9 ; 步驟S9:根據(jù)所有虛擬機(jī)的映射結(jié)果以及虛擬機(jī)之間的帶寬需求,進(jìn)行虛擬鏈路映射,返回虛擬數(shù)據(jù)中心映射成功消息,虛擬數(shù)據(jù)中心映射結(jié)束。
2.根據(jù)權(quán)利要求1所述的虛擬數(shù)據(jù)中心映射方法,其特征在于,所述轉(zhuǎn)發(fā)表為路由表。
3.根據(jù)權(quán)利要求1所述的虛擬數(shù)據(jù)中心映射方法,其特征在于,所述轉(zhuǎn)發(fā)表為流表。
4.根據(jù)權(quán)利要求1所述的虛擬數(shù)據(jù)中心映射方法,其特征在于,所述步驟S3還包括將各機(jī)架中物理主機(jī)根據(jù)剩余資源容量進(jìn)行降序排列。
5.根據(jù)權(quán)利要求1所述的虛擬數(shù)據(jù)中心映射方法,其特征在于,所述步驟S9中虛擬鏈路映射時(shí)每一跳均選擇剩余 帶寬最大的鏈路。
【文檔編號(hào)】H04L12/753GK103560967SQ201310488026
【公開日】2014年2月5日 申請(qǐng)日期:2013年10月17日 優(yōu)先權(quán)日:2013年10月17日
【發(fā)明者】廖丹, 羅壽西, 虞紅芳, 孫罡, 許都, 陸川 申請(qǐng)人:電子科技大學(xué), 東莞電子科技大學(xué)電子信息工程研究院