一種可靠性感知的虛擬數(shù)據(jù)中心跨域映射方法
【技術領域】
[0001] 本發(fā)明屬于虛擬數(shù)據(jù)中屯、跨域映射技術領域,具體設及一種可靠性感知的虛擬數(shù) 據(jù)中屯、跨域映射方法。
【背景技術】
[0002] 近些年,在部署服務應用到大型數(shù)據(jù)中屯、方面,云計算已經(jīng)成為了一種有成本效 益的模型。在云計算的環(huán)境中,有兩個主要的實體:基礎設施提供者(In巧和服務提供者。 基礎設施提供者擁有物理基礎設施,負責將每個數(shù)據(jù)中屯、的物理資源劃分成虛擬資源(例 如,虛擬機),然后將該些虛擬資源組給服務提供者。另一方面,服務提供者租用該些資源, 將其服務應用部署在互聯(lián)網(wǎng)上,向端用戶提供服務應用。用戶可W獲得該項技術所有的好 處,而不需要用基礎設施和服務,W及技術較深的知識。因此,允許基礎設施提供者,服務提 供者和用戶能夠集中注意力到他們自己的事情上。
[0003] 隨著云計算的廣泛使用和計算需求的增長導致了數(shù)據(jù)中規(guī)模的快速增加。但是, 在龐大的數(shù)據(jù)中屯、背后,其資源的平均利用率卻相對較低,大部分設備空閑,給數(shù)據(jù)中屯、增 加巨大的能耗負擔。目前,數(shù)據(jù)中屯、中使用虛擬化技術,可W有效提高數(shù)據(jù)中屯、資源利用 率。在該種新趨勢下,每個租戶的資源請求可抽象為一組虛擬機(VirtualMachine,VM) 和連接虛擬機的虛擬鏈路(VirtualLink)構成的虛擬數(shù)據(jù)中屯、(VirtualDataCenter, VDC),每個VM對應一定的計算資源(包括CPU、內(nèi)存W及硬盤等)。和傳統(tǒng)僅提供VM的方 式相比,VDC能夠提供較好的網(wǎng)絡資源的隔離,因此提高服務應用的性能。
[0004] Qi化ang提出了一個可靠的VDC映射框架,叫做Venice。作者提出用來估計VDC 映射可靠性的技術。作者設計出一個VDC映射算法,算法的目標是最大化CP的總收入,同 時最小化硬件失效帶來的總的花費和不可用的服務??煽啃訴DC映射問題是NP-hard問題, 因此,該問題的解決是非常困難的。作者在Greenhead中解決了可靠性感知的虛擬數(shù)據(jù)中 屯、映射。映射算法保證VDC請求的可靠性。然而,W上方案的主要限制是他們忽略了數(shù)據(jù) 中屯、內(nèi)部和數(shù)據(jù)中屯、之間的帶寬費用的不同,一些特定的VM有位置約束,并且VM之間要交 換數(shù)據(jù)。而且,W上算法不能直接應用在多數(shù)據(jù)中屯、的資源分配。多數(shù)據(jù)中屯、的拓撲規(guī)模 很大。因為我們需要考慮映射在不同數(shù)據(jù)中屯、的VDC中虛擬組件之間的帶寬,該些單個數(shù) 據(jù)中屯、內(nèi)的可靠的VDC映射算法不能應用于跨分布式基礎設施的可靠性感知的VDC映射。
[0005]AhmedAmokrane研究跨分布式基礎設施的虛擬數(shù)據(jù)中屯、映射。作者提出了一個 跨分布式基礎設施VDC映射的管理框架,稱為Greenhead。Greenhead的目標是最小化能源 消耗和最大化InP的總收益,同時盡可能確保環(huán)境友好。然后,作者提出算法將分區(qū)映射 到數(shù)據(jù)中屯、,映射的依據(jù)是不同數(shù)據(jù)中屯、所在地理區(qū)域的電價,數(shù)據(jù)中屯、的CPU,可再生能 源的可用性和單位能源的碳排放量。作者狄浩提出了跨數(shù)據(jù)中屯、的可靠的虛擬網(wǎng)絡映射算 法,保證虛擬網(wǎng)絡映射的生存能力。然而,在一些方面,VDC映射和VN映射存在著差異。例 如,在VN中的VM不能放在同一個物理節(jié)點上,而每個物理節(jié)點可W同時承載VDC中的多個 VM。進一步,不同于ISP網(wǎng)絡,數(shù)據(jù)中屯、網(wǎng)絡的拓撲通常是傳統(tǒng)樹,胖樹,或者Clos拓撲等。 該樣,就導致現(xiàn)存的VN映射算法不能直接應用來解決VDC跨域映射問題。
【發(fā)明內(nèi)容】
[0006] 本發(fā)明的目的是提供一種可靠性感知的虛擬數(shù)據(jù)中屯、跨域映射方法。
[0007] 本發(fā)明所要解決的兩個問題是;首先,由于是可靠性感知的映射,所W要保證VDC 的可靠性請求。該就要求映射完成的VDC的可靠性要不低于VDC請求的可靠性。其次,我 們解決的是VDC的跨域映射問題。骨干網(wǎng)的鏈路承載的是不同數(shù)據(jù)中屯、之間的通信流,它 的單位鏈路通信帶寬的成本要比數(shù)據(jù)中屯、內(nèi)部的單位帶寬高很多。VDC的數(shù)據(jù)傳輸?shù)闹饕?成本是骨干網(wǎng)上的帶寬成本,相比于骨干網(wǎng)的帶寬成本,數(shù)據(jù)中屯、內(nèi)部的帶寬成本可W忽 略不計。所W,減少骨干網(wǎng)通信帶寬是我們要解決的另一個主要問題。
[0008] 本發(fā)明具體采用如下技術方案;
[0009] -種可靠性感知的虛擬數(shù)據(jù)中屯、跨域映射方法,其流程如圖1所示,具體包括W 下步驟:
[0010] 步驟1.劃分服務器等級;客戶提供初始的虛擬機(VirtualMachine,VM)節(jié)點拓 撲圖,總物理計算資源由多個物理數(shù)據(jù)中屯、值ataCenter,DC)組成,每個物理數(shù)據(jù)中屯、由 多個服務器構成;將同一個物理數(shù)據(jù)中屯、的所有服務器,按照其各自的失效率由高至低進 行等級劃分,失效率相同的服務器劃分為同一級,失效率最高的服務器劃分為第一級,且失 效率越低,服務器等級越高,共計N個等級;定義服務器等級集合K={第一級服務器},即 K二 1 ;
[0011] 步驟2.對虛擬機進行分組;
[0012] 步驟2-1.將客戶提供的初始的虛擬機節(jié)點拓撲圖中的每個節(jié)點按順序編號;
[0013] 步驟2-2.從拓撲圖中選擇與1號節(jié)點通信帶寬最大的一個節(jié)點,把該節(jié)點與1號 節(jié)點匯成一個虛擬機分組,然后從所有節(jié)點(包括已經(jīng)匯成一個虛擬機分組的兩個節(jié)點) 中選擇和2號節(jié)點通信帶寬最大的節(jié)點,把該節(jié)點與2號節(jié)點匯成一個虛擬機分組,若該節(jié) 點是已經(jīng)匯成某個虛擬機分組的某個節(jié)點,需要進行W下判斷:若2號節(jié)點和該節(jié)點的通 信帶寬大于該節(jié)點和之前虛擬機分組中節(jié)點的通信帶寬,則將該節(jié)點之前所在的虛擬機分 組拆開,該節(jié)點與2號節(jié)點匯成一個新的虛擬機分組,否則選擇與2號節(jié)點通信帶寬次大的 節(jié)點,把該節(jié)點與2號節(jié)點匯成一個分組;同樣匯成一個虛擬分組前還要檢查該節(jié)點是否 已經(jīng)和其他節(jié)點匯成一個虛擬機分組;
[0014] 按照上述方法處理剩余各個節(jié)點,由此得到多個虛擬機分組;
[0015] 步驟2-3.將得到的每一個虛擬機分組視為一個節(jié)點,由此構成新的節(jié)點拓撲圖, 對該新拓撲圖按照步驟2-2所述方法進行重新分組;
[0016] 步驟2-4.重復執(zhí)行步驟2-3,直到由于限制條件使得不能夠繼續(xù)重新分組來減少 分組間通信帶寬時止,分組結束;
[0017] 步驟3.映射分組內(nèi)的工作虛擬機;從步驟2-4所得的多個虛擬機分組中隨機選取 一個虛擬機分組Pi,并從所述多個DC中選取一個DC,使得該DC中等級最高的服務器相比 于其他DC中等級最高的服務器能夠為所述虛擬機分組Pi提供最高的可靠性,記該DC為所 述虛擬機分組Pi的目標DC;按照本步驟上述方法,分別找出剩余的所有虛擬機分組各自的 目標DC;
[0018] 步驟4.先后映射虛擬機分組Pi沒有備份的VM、有備份的VM;在整個虛擬數(shù)據(jù)中屯、 中,將互相之間為備份關系的VM匯聚為一個復本組,每一個復本組只包含相同備份的VM; 按步驟4-1至步驟4-2所述方法實現(xiàn)虛擬機分組Pi的映射;
[0019] 步驟4-1.從所述虛擬機分組Pi中隨機選取一個沒有備份的VM,將其映射至所述 目標DC的服務器等級集合K中計算資源能夠滿足所選VM、且可靠性最高的服務器,若服務 器等級集合K所包含服務器的計算資源均不滿足所選VM的要求,則由低等級至高等級依次 掃描該DC中的所有服務器直至找到計算資源滿足所選VM的前提下,最低等級服務器中可 靠性最高的服務器作為該VM的映射服務器;按上述方法將所述虛擬機分組Pi中剩余的沒 有備份的VM映射至目標DC中相應的服務器上;
[0020] 步驟4-2.在完成所述虛擬機分組Pi中所有沒有備份的VM的映射工作后,按步驟 4-1上述方法將所述虛擬機分組Pi中有備份的VM映射至目標DC中相應的服務器上;在映 射有備份的VM之前,核實與該VM呈備份關系的VM是否已經(jīng)映射,若是,則該VM不進行映 射,若否,則將該VM映射至相應的服務器上,即保證每一個復本組中只有一個VM進行映射, 將剩余未映射的VM記錄為起備份作用的VM;
[002。 步驟5.當映射完第一個分組后,即完成所述虛擬機分組P沖所有VM的映射后,在 剩余未映射的虛擬機分組中,選取與虛擬機分組Pi的通信帶寬最大的虛擬機分組,按步驟4 所述的映射方法,完成該虛擬機分組的映射;
[0022] 步驟6.從剩余未映射的虛擬機分組中,選取與已完成映射的虛擬機分組之間的 通信帶寬之和最大的虛擬機分組,按步驟4所述的映射方法完成該虛擬機分組的映射,由 此實現(xiàn)所有虛擬機分組的映射;
[0023] 步驟7.完成所有虛擬機分組的映射后,計算整個映射方案提供服務的可靠性,若 可靠性已滿足要求,則整個虛擬數(shù)據(jù)中屯、的映射工作完成,若可靠性低于所需的可靠性 值,則按步驟7-1至步驟7-2所述方法進行可靠性提升;
[0024] 步驟7-1.從記錄為起備份作用的VM中,隨機選取一個尚未映射的VM,將其映射 至該VM所在虛擬機分組對應的目標DC的服務器集合K中計算資源能夠滿足該VM、且可靠 性最高的服務器上,若服務器等級集合K所包含服務器的計算資源均不滿足該VM的要求, 則由低等級至高等級依次掃描該DC中的所有服務器直至找到計算資源滿足所選VM的前提 下,最低等級服務器中可靠性最高的服務器作為該VM的映射服務器;
[00巧]步驟7-2.步驟7-1所選的VM完成映射后,計算整個映射方案提供服務的可靠性, 若可靠性已滿足要求,則整個虛擬數(shù)據(jù)中屯、的映射工作完成,若可靠性低于所需的可靠性 值,則按照步驟7-1所述方法依次逐個增加起備份作用的VM的映射個數(shù)并計算整個映射方 案提供服務的可靠性,直至所述可靠性滿足要求時止,完成整個映射工作;
[0026] 步驟8.若記錄為起備份作用的VM均已完成映射,而整個映射方案提供服務的可 靠性依然未滿足要求,則重新定義服務器等級集合K={第一級服務器,第二級服務器},即 K= 2 ;依次執(zhí)行步驟2至步驟7完成整個虛擬數(shù)據(jù)中屯、的映射工作;
[0027] 步驟9.若K= 2時,按上述方法所得的映射方案的可靠性無法達到要求,則依次 計算K= 3,…,N時按步驟2至步驟7所得映射方案的可靠性直至所述可靠性達到要求時 止,此時的映射方案即為最終的映射方案;若K=N時所得的映射方案的可靠性依然無法滿 足要求,則映射失敗,拒絕該VDC的映射請求。
[0028] 本發(fā)明的有益效果是:
[0029] 本發(fā)明提出的方法能夠在保證滿足VDC可靠性請求的前提下,有效的降低映射所 產(chǎn)生的骨干網(wǎng)帶寬,降低VDC請求的阻塞率;本發(fā)明提供的方法既保證VDC的可靠性,又不 浪費可靠性高的物理資源,進而能夠提高VDC請求的接收率;同時,本發(fā)明還能明顯的降低 骨干網(wǎng)帶寬,降低映射的成本。
【附圖說明】
[0030] 圖1為本發(fā)