一種數(shù)據(jù)中心網(wǎng)絡(luò)更新中數(shù)據(jù)流的遷移方法
【專利摘要】本發(fā)明公開了一種數(shù)據(jù)中心網(wǎng)絡(luò)更新中數(shù)據(jù)流的遷移方法,包括為每一條新數(shù)據(jù)流在網(wǎng)絡(luò)中搜索出所有的可行最短路徑作為候選路徑,或者為每一條新數(shù)據(jù)流在網(wǎng)絡(luò)中搜索出遷移一條數(shù)據(jù)流的情況下能夠容納該條數(shù)據(jù)流的候選路徑。由于不需要考慮如何尋找可行的網(wǎng)絡(luò)狀態(tài),也不需要仔細(xì)地設(shè)計(jì)執(zhí)行一個(gè)更新序列。通過本地調(diào)度每一個(gè)新數(shù)據(jù)流,為他們分配可行的最短路徑。并且僅僅以一條額外的數(shù)據(jù)流的遷移為代價(jià)。同時(shí)選擇一條經(jīng)過了所有瓶頸鏈路的數(shù)據(jù)流來遷移,提高更新效率,保證這條額外的數(shù)據(jù)流的數(shù)據(jù)流量盡可能的少,減小遷移的數(shù)據(jù)流量。不需要進(jìn)行全網(wǎng)搜索目的數(shù)據(jù)流量矩陣,也不需要在網(wǎng)絡(luò)初始和目的狀態(tài)之間尋找一系列的轉(zhuǎn)換狀態(tài)。
【專利說明】
一種數(shù)據(jù)中心網(wǎng)絡(luò)更新中數(shù)據(jù)流的遷移方法
技術(shù)領(lǐng)域
[0001] 本發(fā)明涉及數(shù)據(jù)中心的網(wǎng)絡(luò)更新,特別是指一種數(shù)據(jù)中心網(wǎng)絡(luò)更新中數(shù)據(jù)流的迀 移方法。
【背景技術(shù)】
[0002] 基礎(chǔ)設(shè)施即服務(wù)(IaaS)是一個(gè)云計(jì)算的模型,它允許租戶在數(shù)據(jù)中心當(dāng)中多路復(fù) 用計(jì)算,存儲和網(wǎng)絡(luò)資源。隨著IaaS的快速增長,服務(wù)提供商不得不租用或者建立一個(gè)大規(guī) 模的數(shù)據(jù)中心。在每個(gè)數(shù)據(jù)中心內(nèi)部,一個(gè)特殊的數(shù)據(jù)中心網(wǎng)絡(luò)(DCN)將成千的交換機(jī)和成 百上千的服務(wù)器連接起來。云計(jì)算數(shù)據(jù)中心頻繁的發(fā)生網(wǎng)絡(luò)更新事件,例如,網(wǎng)絡(luò)拓?fù)涓?新,由網(wǎng)絡(luò)操作人員引起的數(shù)據(jù)流更新,應(yīng)用程序甚至交換機(jī)失效引起的網(wǎng)絡(luò)更新。舉例來 說,數(shù)據(jù)中心操作者周期性的升級網(wǎng)絡(luò)中的交換機(jī),并且添加更多的交換機(jī)來支持更多的 服務(wù)器;因此,產(chǎn)生了拓?fù)涞母淖?。對于?yīng)用程序,正常的虛擬機(jī)迀移和負(fù)載均衡的重新配 置導(dǎo)致了數(shù)據(jù)流的更新。
[0003] 對于目前復(fù)雜的情況,DCN更新是一個(gè)很有挑戰(zhàn)性的問題。首先,一個(gè)更新過程包 含多個(gè)階段,每個(gè)階段都需要認(rèn)證對待來保證每個(gè)數(shù)據(jù)包和每條數(shù)據(jù)流在網(wǎng)絡(luò)配置下的一 致性。因此,我們需要提前為每一個(gè)階段指定一個(gè)更新計(jì)劃,來安排所涉及到的數(shù)據(jù)流究竟 需要以何種順序來更新。其次,更新過程必須要保證任何一個(gè)數(shù)據(jù)包,數(shù)據(jù)流僅通過舊的網(wǎng) 絡(luò)配置或新的網(wǎng)絡(luò)配置,而不是而這的結(jié)合。最后,在大規(guī)模的數(shù)據(jù)中心網(wǎng)絡(luò)中執(zhí)行一次更 新需要消耗大量的時(shí)間。快速的網(wǎng)絡(luò)更新有利于實(shí)現(xiàn)更高的網(wǎng)絡(luò)利用率,并且可以加強(qiáng)網(wǎng) 絡(luò)的靈活性。
[0004] 給定一個(gè)DCN更新,之前的工作致力于尋找一個(gè)從初始網(wǎng)絡(luò)狀態(tài)到目的網(wǎng)絡(luò)狀態(tài) 的一個(gè)無損的轉(zhuǎn)換序列。然而,這將需要頻繁的進(jìn)行全網(wǎng)搜索可行的目的網(wǎng)絡(luò)狀態(tài),還需要 大量的時(shí)間來優(yōu)化結(jié)果。這將會(huì)在大規(guī)模網(wǎng)絡(luò)中產(chǎn)生巨大的計(jì)算開銷和決策延遲。更甚,在 每一階段的更新當(dāng)中,一些涉及到的數(shù)據(jù)流需要被重新路由,迀移到其他路徑上去。這些需 要被迀移的數(shù)據(jù)流會(huì)產(chǎn)生額外的開銷,也可能會(huì)影響正在運(yùn)行的應(yīng)用程序。也就是說,這 些需要被迀移的數(shù)據(jù)流,會(huì)導(dǎo)致另外一些額外的數(shù)據(jù)流需要被迀移,從而產(chǎn)生不必要的規(guī) 則需要被安裝到交換機(jī)上。同時(shí),也會(huì)產(chǎn)生鏈路擁塞和丟包。
【發(fā)明內(nèi)容】
[0005] 有鑒于此,本發(fā)明的目的在于提出一種最小化無擁塞網(wǎng)絡(luò)更新過程中需要迀移的 數(shù)據(jù)流的方法。
[0006] 基于上述目的本發(fā)明提供的一種數(shù)據(jù)中心網(wǎng)絡(luò)更新中數(shù)據(jù)流的迀移方法,包括:
[0007] 為每一條新數(shù)據(jù)流在網(wǎng)絡(luò)中搜索出所有的可行最短路徑作為候選路徑,根據(jù)所述 候選路徑的長度對所述候選路徑進(jìn)行升序排序,從第一條所述候選路徑開始,依次檢測所 述候選路徑是否可以在不迀移現(xiàn)有數(shù)據(jù)流的前提下容納所述新數(shù)據(jù)流,直到檢測到能夠在 不迀移現(xiàn)有數(shù)據(jù)流的前提下容納所述新數(shù)據(jù)流的候選路徑,將所述新數(shù)據(jù)流加入到該條路 徑上傳輸;
[0008] 若所有的所述候選路徑都不能在不迀移現(xiàn)有數(shù)據(jù)流的前提下容納所述新數(shù)據(jù)流, 則從第一條所述候選路徑開始,依次檢測所述候選路徑是否可以在僅迀移一條現(xiàn)有數(shù)據(jù)流 的情況下,將所述新數(shù)據(jù)流加入到該條候選路徑上,直到檢測到能夠在僅迀移一條現(xiàn)有數(shù) 據(jù)流的前提下容納所述新數(shù)據(jù)流的候選路徑,迀移該條現(xiàn)有數(shù)據(jù)流,并將所述新數(shù)據(jù)流加 入到該條路徑上傳輸。
[0009] 進(jìn)一步的,還包括:若在迀移一條現(xiàn)有數(shù)據(jù)流的情況下,迀移出數(shù)據(jù)流的路徑仍然 不能傳輸所述新數(shù)據(jù)流,則所述新數(shù)據(jù)流在入口交換機(jī)出等待一段時(shí)間,直到有一些所述 候選路徑完成數(shù)據(jù)流的傳輸或者在迀移一條現(xiàn)有數(shù)據(jù)流的情況下能夠容納所述新數(shù)據(jù)流 時(shí),將所述新數(shù)據(jù)流加入到該候選路徑進(jìn)行傳輸。
[0010] 進(jìn)一步的,所述可行最短路徑為包含最少數(shù)量的為完成所述新數(shù)據(jù)流的傳輸所經(jīng) 過的瓶頸鏈路的可行路徑。
[0011] 進(jìn)一步的,所述迀移該條現(xiàn)有數(shù)據(jù)流為將該條現(xiàn)有數(shù)據(jù)流迀移到其所對應(yīng)的并且 能夠?qū)⒅菁{的最短路徑上去。
[0012] 進(jìn)一步的,所述依次檢測所述候選路徑是否可以在僅迀移一條現(xiàn)有數(shù)據(jù)流的過程 包括:
[0013] 找出分配所述新數(shù)據(jù)流的路徑上的所有瓶頸鏈路;
[0014] 記錄下瓶頸鏈路上所經(jīng)過的數(shù)據(jù)流,并且找出經(jīng)過所有瓶頸鏈路的數(shù)據(jù)流;
[0015] 對找出來的數(shù)據(jù)流按照數(shù)據(jù)流量大小進(jìn)行排序,迀移數(shù)據(jù)流量最小的數(shù)據(jù)流來滿 足所述新數(shù)據(jù)流對于鏈路帶寬的需求。
[0016] 進(jìn)一步的,所述數(shù)據(jù)中心網(wǎng)絡(luò)更新中數(shù)據(jù)流迀移的方法對應(yīng)的數(shù)學(xué)模型為:
[0017] 將網(wǎng)絡(luò)定義為一個(gè)圖G=(V,E),V和E分別代表交換機(jī)和連接這些交換機(jī)的鏈路,D 被定義為網(wǎng)絡(luò)直徑,數(shù)據(jù)流f被定義為f = (sf,df,v(f)),sf是入口交換機(jī),df是出口交換 機(jī),v(f)是數(shù)據(jù)流f的大小,和分別代表由于更新事件產(chǎn)生的需要新加入的數(shù)據(jù)流 和由于新加入的某條數(shù)據(jù)流而需要被迀移的現(xiàn)有數(shù)據(jù)流,ν(?·^)代表數(shù)據(jù)流f在鏈路上 的負(fù)載,If代表了數(shù)據(jù)流f經(jīng)過的跳數(shù),Gf代表包含f經(jīng)過的所有交換機(jī)和鏈路的子圖,F(xiàn)記 錄了網(wǎng)絡(luò)中每條數(shù)據(jù)流的大小,T代表數(shù)據(jù)流量分布矩陣,記錄著每條鏈路上的負(fù)載大小。
[0018] 進(jìn)一步的,所述數(shù)學(xué)模型的優(yōu)化目標(biāo)為:
[0019] 數(shù)據(jù)中心網(wǎng)絡(luò)更新的過程中迀移最小的數(shù)據(jù)流量和最小數(shù)目的數(shù)據(jù)流。
[0020] 從上面所述可以看出,本發(fā)明提供的一種數(shù)據(jù)中心網(wǎng)絡(luò)更新中數(shù)據(jù)流的迀移方 法,由于不需要考慮如何尋找可行的網(wǎng)絡(luò)狀態(tài),也不需要仔細(xì)地設(shè)計(jì)執(zhí)行一個(gè)更新序列。通 過本地調(diào)度每一個(gè)新數(shù)據(jù)流,為他們分配可行的最短路徑。并且僅僅以一條額外的數(shù)據(jù)流 的迀移為代價(jià)。同時(shí)選擇一條經(jīng)過了所有瓶頸鏈路的數(shù)據(jù)流來迀移,提高更新效率,保證這 條額外的數(shù)據(jù)流的數(shù)據(jù)流量盡可能的少,減小迀移的數(shù)據(jù)流量。不需要進(jìn)行全網(wǎng)搜索目的 數(shù)據(jù)流量矩陣,也不需要在網(wǎng)絡(luò)初始和目的狀態(tài)之間尋找一系列的轉(zhuǎn)換狀態(tài),實(shí)現(xiàn)了數(shù)據(jù) 流量迀移最少的無擁塞的網(wǎng)絡(luò)更新。
【附圖說明】
[0021 ]圖1為本發(fā)明流量迀移方法的一種實(shí)施例的流程圖;
[0022]圖2a、圖2b和圖2c為入口交換機(jī)上的數(shù)據(jù)流規(guī)則被異步的安裝導(dǎo)致的網(wǎng)絡(luò)擁塞示 意圖;
[0023]圖3為本發(fā)明更新方法Lupdate的一個(gè)實(shí)施例的示意圖;
[0024]圖4a為在k為8~28的Fat-Tree數(shù)據(jù)中心網(wǎng)絡(luò)評價(jià)迀移的數(shù)據(jù)流的大小的示意圖; [0025]圖4b為鏈路利用率超過90%的鏈路的概率示意圖;
[0026]圖5a為更新方法Lupdate和最短路徑法在任何網(wǎng)絡(luò)規(guī)模下迀移的數(shù)據(jù)流量示意 圖;
[0027]圖5b為鏈路利用率超過90%的鏈路中傳輸數(shù)據(jù)時(shí)流量變化示意圖;
[0028] 圖6a為在k = 20的Fat-Tree網(wǎng)絡(luò)中流量迀移示意圖;
[0029]圖6b為在包含720個(gè)交換機(jī)的ER隨機(jī)網(wǎng)絡(luò)中流量迀移示意圖;
[0030]圖7a為在Fat-Tree網(wǎng)絡(luò)中迀移的數(shù)據(jù)流量大小隨新數(shù)據(jù)流的變化規(guī)律示意圖; [0031 ]圖7b為在ER隨機(jī)網(wǎng)絡(luò)中迀移的數(shù)據(jù)流量大小隨新數(shù)據(jù)流的變化規(guī)律示意圖;
[0032]圖8a為在Fat-Tree網(wǎng)絡(luò)中額外迀移的數(shù)據(jù)流的數(shù)目變化示意圖;
[0033]圖8b為在ER隨機(jī)網(wǎng)絡(luò)中額外迀移的數(shù)據(jù)流的數(shù)目變化示意圖。
【具體實(shí)施方式】
[0034] 為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,以下結(jié)合具體實(shí)施例,并參照 附圖,對本發(fā)明進(jìn)一步詳細(xì)說明。
[0035] 本發(fā)明提供一種最小化無擁塞網(wǎng)絡(luò)更新過程中需要迀移的數(shù)據(jù)流的方法,基本的 思想是在本地給每一個(gè)新數(shù)據(jù)流分配可行的最短路徑,并且要求這些路徑有足夠的鏈路帶 寬來容納那條數(shù)據(jù)流。如果所有的最短路徑都不可行,需要在最短路徑上迀移最小的和最 少數(shù)目的已知數(shù)據(jù)流,以便路徑上的鏈路有足夠的帶寬。
[0036] 本發(fā)明提供的方法包括:為每一條新數(shù)據(jù)流在網(wǎng)絡(luò)中搜索出所有的可行最短路徑 作為候選路徑,根據(jù)所述候選路徑的長度對所述候選路徑進(jìn)行升序排序,從第一條所述候 選路徑開始,依次檢測所述候選路徑是否可以在不迀移現(xiàn)有數(shù)據(jù)流的前提下容納所述新數(shù) 據(jù)流,直到檢測到能夠在不迀移現(xiàn)有數(shù)據(jù)流的前提下容納所述新數(shù)據(jù)流的候選路徑,將所 述新數(shù)據(jù)流加入到該條路徑上傳輸。
[0037] 若所有的所述候選路徑都不能在不迀移現(xiàn)有數(shù)據(jù)流的前提下容納所述新數(shù)據(jù)流, 則從第一條所述候選路徑開始,依次檢測所述候選路徑是否可以在僅迀移一條現(xiàn)有數(shù)據(jù)流 的情況下,將所述新數(shù)據(jù)流加入到該條候選路徑上,直到檢測到能夠在僅迀移一條現(xiàn)有數(shù) 據(jù)流的前提下容納所述新數(shù)據(jù)流的候選路徑,迀移該條現(xiàn)有數(shù)據(jù)流,并將所述新數(shù)據(jù)流加 入到該條路徑上傳輸。
[0038] 若在迀移一條現(xiàn)有數(shù)據(jù)流的情況下,迀移出數(shù)據(jù)流的路徑仍然不能傳輸所述新數(shù) 據(jù)流,則所述新數(shù)據(jù)流在入口交換機(jī)出等待一段時(shí)間,直到有一些所述候選路徑完成數(shù)據(jù) 流的傳輸或者在迀移一條現(xiàn)有數(shù)據(jù)流的情況下能夠容納所述新數(shù)據(jù)流時(shí),將所述新數(shù)據(jù)流 加入到該候選路徑進(jìn)行傳輸。
[0039] 其中,所述可行最短路徑為包含最少數(shù)量的為完成所述新數(shù)據(jù)流的傳輸所經(jīng)過的 瓶頸鏈路的可行路徑。
[0040] 所述迀移該條現(xiàn)有數(shù)據(jù)流為將該條現(xiàn)有數(shù)據(jù)流迀移到其所對應(yīng)的并且能夠?qū)⒅?容納的最短路徑上去。
[0041 ]依次檢測所述候選路徑是否可以在僅迀移一條現(xiàn)有數(shù)據(jù)流的過程包括:
[0042] 找出分配所述新數(shù)據(jù)流的路徑上的所有瓶頸鏈路;
[0043] 記錄下瓶頸鏈路上所經(jīng)過的數(shù)據(jù)流,并且找出經(jīng)過所有瓶頸鏈路的數(shù)據(jù)流;
[0044] 對找出來的數(shù)據(jù)流按照數(shù)據(jù)流量大小進(jìn)行排序,迀移數(shù)據(jù)流量最小的數(shù)據(jù)流來滿 足所述新數(shù)據(jù)流對于鏈路帶寬的需求。
[0045] 所述數(shù)據(jù)中心網(wǎng)絡(luò)更新中數(shù)據(jù)流迀移的方法對應(yīng)的數(shù)學(xué)模型為:
[0046] 將網(wǎng)絡(luò)定義為一個(gè)圖G=(V,E),V和E分別代表交換機(jī)和連接這些交換機(jī)的鏈路,D 被定義為網(wǎng)絡(luò)直徑,數(shù)據(jù)流f被定義為f = (sf,df,v(f)),sf是入口交換機(jī),df是出口交換 機(jī),v(f)是數(shù)據(jù)流f的大小,和分別代表由于更新事件產(chǎn)生的需要新加入的數(shù)據(jù)流 和由于新加入的某條數(shù)據(jù)流而需要被迀移的現(xiàn)有數(shù)據(jù)流,ν(?·^)代表數(shù)據(jù)流f在鏈路上 的負(fù)載,If代表了數(shù)據(jù)流f經(jīng)過的跳數(shù),Gf代表包含f經(jīng)過的所有交換機(jī)和鏈路的子圖,F(xiàn)記 錄了網(wǎng)絡(luò)中每條數(shù)據(jù)流的大小,T代表數(shù)據(jù)流量分布矩陣,記錄著每條鏈路上的負(fù)載大小。
[0047] 上述數(shù)學(xué)模型的優(yōu)化目標(biāo)為:在更新的過程中迀移最小的數(shù)據(jù)流量和最小數(shù)目的 數(shù)據(jù)流來限制負(fù)面的影響。
[0048] 在本發(fā)明中,將一個(gè)網(wǎng)絡(luò)更新事件導(dǎo)致的需要被迀移的數(shù)據(jù)流建模為一組數(shù)據(jù) 流,然后執(zhí)行最小代價(jià)的流量迀移來容納這些新數(shù)據(jù)流。通過本發(fā)明的方法網(wǎng)絡(luò)操作者不 需要考慮如何尋找可行的網(wǎng)絡(luò)狀態(tài),也不需要仔細(xì)地設(shè)計(jì)執(zhí)行一個(gè)更新序列。因?yàn)楸景l(fā)明 的目的就在于本地地調(diào)度每一個(gè)新數(shù)據(jù)流,為他們分配可行的最短路徑。并且僅僅以一條 額外的數(shù)據(jù)流的迀移為代價(jià)。為了提高更新效率,需要選擇一條經(jīng)過了所有瓶頸鏈路的數(shù) 據(jù)流來迀移。為了減小迀移的數(shù)據(jù)流量,還應(yīng)該保證這條額外的數(shù)據(jù)流的數(shù)據(jù)流量盡可能 的少。
[0049] 本發(fā)明提出IaaS數(shù)據(jù)中心網(wǎng)絡(luò)更新的最小數(shù)據(jù)流量迀移問題,并且把它定義為一 個(gè)優(yōu)化問題,該問題描述為:
[0050] 將網(wǎng)絡(luò)定義為一個(gè)圖G=(V,E),V和E分別代表交換機(jī)和連接這些交換機(jī)的鏈路。D 被定義為網(wǎng)絡(luò)直徑。另外,數(shù)據(jù)流f被定義為f =(sf,df,v(f)),sf是入口交換機(jī),df是出口 交換機(jī),v(f)是數(shù)據(jù)流f的大小。和分別代表由于更新事件產(chǎn)生的需要新加入的數(shù) 據(jù)流和由于新加入的某條數(shù)據(jù)流而需要被迀移的現(xiàn)有數(shù)據(jù)流。ν(?·^)代表數(shù)據(jù)流f在鏈路 ew上的負(fù)載。If代表了數(shù)據(jù)流f經(jīng)過的跳數(shù)。Gf代表包含f經(jīng)過的所有交換機(jī)和鏈路的子 圖。F記錄了網(wǎng)絡(luò)中每條數(shù)據(jù)流的大小,T代表數(shù)據(jù)流量分布矩陣,記錄著每條鏈路上的負(fù)載 大小。
[0051 ]給定一個(gè)網(wǎng)絡(luò)更新事件,我們初始化集合匕^作為更新事件所產(chǎn)生的數(shù)據(jù)流集合。 很明顯,迀移的數(shù)據(jù)流的大小將會(huì)影響現(xiàn)行網(wǎng)絡(luò)的功能。因此,更新的過程中應(yīng)該迀移最小 的數(shù)據(jù)流量來限制負(fù)面的影響。因此,第一個(gè)目標(biāo)是:
⑴
[0052]
[0053] 另外,迀移的數(shù)據(jù)流的數(shù)目也會(huì)影響網(wǎng)絡(luò)的功能。當(dāng)數(shù)據(jù)流需要被迀移時(shí),SDN控 制器將會(huì)在不同的交換機(jī)上安裝不同的數(shù)據(jù)流規(guī)則。也就是說,控制器和交換機(jī)之間的通 道將會(huì)產(chǎn)生一個(gè)很長的隊(duì)列,這將會(huì)阻礙控制器和交換機(jī)的正常通信。因此,第二個(gè)目標(biāo) 是:
[0054] min | f move (2)
[0055] 集合包含分配給新數(shù)據(jù)流的路徑上的擁塞鏈路上的所有數(shù)據(jù)流,表示為:
[0056]
[0057] 如果需要在存在瓶頸鏈路的路徑上傳輸新數(shù)據(jù)流,那么將會(huì)產(chǎn)生擁塞。然后,需要 把這條鏈路加入Lf,將Lf被定義為:
[0058]
[0059]給定一個(gè)T,如果滿足以下條件,就說網(wǎng)絡(luò)是正確的:
[0060]
[0061]
[0062]
[0063]
[0064]
[0065]
[0066] 方程(3)計(jì)算需要被迀移的數(shù)據(jù)流的集合,這些數(shù)據(jù)流經(jīng)過了分配給新數(shù)據(jù)流的 路徑上的所有瓶頸鏈路。方程(4)記錄了分配給新數(shù)據(jù)流的路徑上的所有擁塞鏈路。方程 (5)保證了網(wǎng)絡(luò)中的每一條數(shù)據(jù)流都可以在確定的路徑上進(jìn)行傳輸。方程(6)意味著數(shù)據(jù)流 f不會(huì)出現(xiàn)在不屬于子圖Gf中的鏈路和交換機(jī)上。方程(7)表明那些被新數(shù)據(jù)流或者已存在 的數(shù)據(jù)流占用的鏈路都不會(huì)超過鏈路容量。也就是說,所有的鏈路都是無擁塞的。方程(8) 和(9)表明分配給新數(shù)據(jù)流和已存在數(shù)據(jù)流的路徑的長度都不會(huì)超過網(wǎng)絡(luò)直徑。方程(10) 保證需要被迀移的數(shù)據(jù)流最初都是數(shù)據(jù)流經(jīng)擁塞鏈路的?;谶@個(gè)模型,給出一個(gè)T和f new, 新數(shù)據(jù)流可以以最小的迀移代價(jià)被分配路徑。
[0067] 不論何種網(wǎng)絡(luò)更新事件,都將DCN更新問題抽象為一組新數(shù)據(jù)流的重新調(diào)度問題。 在將DCN更新抽象為一組數(shù)據(jù)流的重新調(diào)度問題之后,我們致力于迀移最小的數(shù)據(jù)流量來 實(shí)現(xiàn)最小代價(jià)的數(shù)據(jù)流迀移并且完成無擁塞的網(wǎng)絡(luò)更新。
[0068] 在調(diào)度每一個(gè)新數(shù)據(jù)流時(shí),分配給新數(shù)據(jù)流的路徑上的鏈路的帶寬不足以支持 新數(shù)據(jù)流時(shí)我們的目的是減少因?yàn)榧尤氪藯l新數(shù)據(jù)流所要迀移的已有數(shù)據(jù)流的大小和條 數(shù)。然后將網(wǎng)絡(luò)更新中最小數(shù)據(jù)流量迀移的問題描述為上述優(yōu)化模型。
[0069] 將由網(wǎng)絡(luò)更新事件引起的要迀移的數(shù)據(jù)流抽象為一組需要被重新調(diào)度的新數(shù)據(jù) 流,提出了一種簡單的更新方法Lupdate來解決定義的這個(gè)優(yōu)化問題。這種方法具有很高的 成功率,且代價(jià)為迀移一條額外的已存在的數(shù)據(jù)流。Lupdate更新方法如下:
[0070]
[0071] 對于每一條新數(shù)據(jù)流,首先為它在網(wǎng)絡(luò)中搜索出所有的候選路徑,并且根據(jù)路徑 的長度對他們進(jìn)行升序排序。然后,檢測第一條可行路徑是否可以在不迀移現(xiàn)有數(shù)據(jù)流量 的前提下容納這條新數(shù)據(jù)流。如果可以,那么這條新數(shù)據(jù)流將會(huì)在這條路徑上進(jìn)行傳輸。否 貝1J,將會(huì)去檢測其他的可行路徑,直到有一條路徑可以容納新數(shù)據(jù)流,或者檢測完所有的候 選路徑都不能成功的加入新數(shù)據(jù)流。然后,檢測是否可以在最短路徑上迀移一條已存在的 數(shù)據(jù)流,從而將新數(shù)據(jù)流加入。這條已知數(shù)據(jù)流按照下面的步驟選取:
[0072] 找出分配給新數(shù)據(jù)流f的路徑上的所有瓶頸鏈路;
[0073] 記錄下瓶頸鏈路上所經(jīng)過的數(shù)據(jù)流,并且找出經(jīng)過所有瓶頸鏈路的數(shù)據(jù)流;
[0074] 對找出來的數(shù)據(jù)流按照數(shù)據(jù)流量大小進(jìn)行排序,盡力去迀移最小的數(shù)據(jù)流來滿足 新數(shù)據(jù)流對于鏈路帶寬的需求。
[0075] 那些因?yàn)樾聰?shù)據(jù)流的加入而不得不被迀走的數(shù)據(jù)流同樣需要被迀移到他們所對 應(yīng)的最短路徑上去。理論一證明了 Ludpate方法的時(shí)間復(fù)雜度。
[0076]理論一:給定一個(gè)網(wǎng)絡(luò)和一條新數(shù)據(jù)流,網(wǎng)絡(luò)中對應(yīng)此新數(shù)據(jù)流的可行路徑是α。 分配給每一條數(shù)據(jù)流的路徑長度是|pf|,這條路徑上存在的數(shù)據(jù)流的大小也是固定的。很 明顯,Lupdate的時(shí)間復(fù)雜度是0(V+E + lga+a X ( |pf I +lgk+k))。
[0077]證明:算法一包含更新準(zhǔn)備和迀移兩個(gè)階段。對于更新準(zhǔn)備階段,時(shí)間復(fù)雜度是0 (V+E + lgc〇。首先,搜索出對于新數(shù)據(jù)流的所有可行路徑,利用修訂的深度優(yōu)先搜索策略 產(chǎn)生可行路徑,時(shí)間復(fù)雜度是〇(V+E)。然后,需要對這些路徑進(jìn)行排序,事件復(fù)雜度是0(lg α)。所以,更新準(zhǔn)備階段的時(shí)間復(fù)雜度是〇(V+E + lga)。在迀移階段,盡量在較短的候選路 徑上迀移最小的數(shù)據(jù)流來滿足新數(shù)據(jù)流對鏈路帶寬的要求。這一過程最多被執(zhí)行α次。另 外,可以很容易從控制器上得到<.和每一條擁塞鏈路上的數(shù)據(jù)流。然后,我們用〇(lgk)的時(shí) 間對這些數(shù)據(jù)流進(jìn)行排序并且用〇(k)的時(shí)間找出經(jīng)過所有擁塞鏈路的公共數(shù)據(jù)流,作為迀 移的候選數(shù)據(jù)流。最后,用〇(|pf|)的時(shí)間將選定的數(shù)據(jù)流迀移到其他路徑上去。因此,這一 階段的時(shí)間復(fù)雜度是〇(α X ( I Pf I +lgk + k))??偨Y(jié)得出,整個(gè)算法的時(shí)間復(fù)雜度是0(V + E + lga+a X ( | pf | +lgk+k))。
[0078] 如圖1所示,為本發(fā)明流量迀移方法的一種實(shí)施例的流程圖。包括如下步驟:
[0079] 步驟101:為新數(shù)據(jù)流搜索候選路徑。給出一組已存在的數(shù)據(jù)流,數(shù)據(jù)流量負(fù)載矩 陣,還有一組新數(shù)據(jù)流,Lupdate致力于本地為每一個(gè)新數(shù)據(jù)流從最短路徑中挑選出可行路 徑。
[0080] 步驟102:對候選路徑根據(jù)候選路徑長度進(jìn)行升序排序。對經(jīng)過一條候選鏈路的所 有瓶頸鏈路的數(shù)據(jù)流根據(jù)數(shù)據(jù)流量的大小進(jìn)行排序。
[0081] 步驟103:-次檢查候選路徑是否能夠容納新數(shù)據(jù)流。如果被選中的路徑的鏈路 帶寬剩余容量應(yīng)該足以去容納一條新數(shù)據(jù)流。則進(jìn)入步驟104,否則,進(jìn)入步驟105。
[0082] 步驟104:將新數(shù)據(jù)流加入到該條候選路徑中傳輸。
[0083]步驟105:依次檢測候選路徑是否能夠在迀移一條數(shù)據(jù)流的情況下容納新數(shù)據(jù)流。 當(dāng)所有的路徑的鏈路剩余容量都不足以支持這條新數(shù)據(jù)流的加入。在這種情況下,Lupdate 收集到所有候選路徑上的瓶頸鏈路上的數(shù)據(jù)流,然后找出那些經(jīng)過一條候選鏈路的所有瓶 頸鏈路的數(shù)據(jù)流。如果能在僅迀移一條數(shù)據(jù)流的情況下容納新數(shù)據(jù)流,則進(jìn)入步驟106,否 貝1J,進(jìn)入步驟107。
[0084] 步驟106:將新數(shù)據(jù)流加入到該候選路徑中傳輸。為了保證最小的代價(jià),選擇迀移 一條數(shù)據(jù)流量最小的數(shù)據(jù)流,此時(shí),鏈路的剩余帶寬可以容納這條新數(shù)據(jù)流。同時(shí)還要保證 這條需要被移走的數(shù)據(jù)流可以被迀移到另外一條可行最短路徑上去。如果這條數(shù)據(jù)流不能 被移走,那么需要在候選集中為新數(shù)據(jù)流選擇其他的可行路徑,然后繼續(xù)按照之前的方法 進(jìn)行迀移。
[0085] 步驟107:將新數(shù)據(jù)流在入口交換機(jī)處等待,直到新數(shù)據(jù)流能夠傳輸。最糟糕的情 況就是所有的候選路徑都不能成功地為新數(shù)據(jù)流提供服務(wù),那么,這條新數(shù)據(jù)流應(yīng)該在入 口交換機(jī)處等待一段時(shí)間,直到有一些現(xiàn)有的數(shù)據(jù)流完成了傳輸,從而存在一條可行的路 徑可以為新數(shù)據(jù)流提供服務(wù)。在Lupdate方法的更新過程中,為了限制更新在全網(wǎng)范圍的影 響,僅允許在可行路徑上迀移一條已存在的數(shù)據(jù)流。為了解決這個(gè)重要的問題。基本的思想 就是當(dāng)?shù)谝粋€(gè)數(shù)據(jù)流無法被立刻傳輸時(shí),如果目前的鏈路狀態(tài)可以滿足后面的數(shù)據(jù)流對鏈 路帶寬的要求,首先調(diào)度隊(duì)列后面的數(shù)據(jù)流,以期望縮短整個(gè)網(wǎng)絡(luò)的更新時(shí)間。在一段時(shí)間 之后,按順序檢測隊(duì)列里剩余的數(shù)據(jù)流,并且用同樣的方法處理他們。這將會(huì)極大地縮短一 個(gè)網(wǎng)絡(luò)更新事件的平均完成時(shí)間。
[0086] 網(wǎng)絡(luò)更新問題會(huì)發(fā)生在多個(gè)情景當(dāng)中。一個(gè)共同的問題就是全網(wǎng)規(guī)模的數(shù)據(jù)流量 迀移將會(huì)導(dǎo)致嚴(yán)重的影響。例如,交換機(jī)固件升級或者失效重啟,網(wǎng)絡(luò)操作者需要把經(jīng)過這 些交換機(jī)的數(shù)據(jù)流迀移到其他路徑上去,以便于這些數(shù)據(jù)流對于的應(yīng)用程序可以正確的執(zhí) 行。這些數(shù)據(jù)流的迀移需要在網(wǎng)絡(luò)更新或者關(guān)閉交換機(jī)之前被執(zhí)行,從而防止錯(cuò)誤在網(wǎng)絡(luò) 中的傳播。虛擬機(jī)的迀移是另外一個(gè)例子,它重新設(shè)定虛擬機(jī)所屬的組,同時(shí)把所有與之相 關(guān)的數(shù)據(jù)流迀移到它所在的位置上去。
[0087]這種大規(guī)模的迀移,如果沒有被正確的處理,將會(huì)在網(wǎng)絡(luò)中導(dǎo)致嚴(yán)重的擁塞。原 因是入口交換機(jī)上的數(shù)據(jù)流規(guī)則被異步的安裝。
[0088]如圖2a、圖2b和圖2c所示,為入口交換機(jī)上的數(shù)據(jù)流規(guī)則被異步的安裝導(dǎo)致的網(wǎng) 絡(luò)擁塞示意圖。數(shù)據(jù)流fdPf2分別由源節(jié)點(diǎn)sdPS2產(chǎn)生。為了將網(wǎng)絡(luò)中已存在的數(shù)據(jù)流從如 圖2a的網(wǎng)絡(luò)狀態(tài)迀移到如圖2b所示的網(wǎng)絡(luò)狀態(tài),交換機(jī) 81和82上的規(guī)則需要被同時(shí)安裝。否 貝1J,如圖2c所示,如果S1上的數(shù)據(jù)流規(guī)則的安裝早于s 2,鏈路12將會(huì)負(fù)擔(dān)來自心和5的數(shù)據(jù)流 量。相同的事情也會(huì)發(fā)生如果82上的規(guī)則首先被安裝。
[0089]為了更準(zhǔn)確的表達(dá)本發(fā)明提出的Lupdate更新方法,圖3列舉了一個(gè)例子。如圖3所 示,為本發(fā)明更新方法Lupdate的一個(gè)實(shí)施例的示意圖。在圖3中,網(wǎng)絡(luò)中有6個(gè)交換機(jī),鏈路 容量是10Mbps。目前網(wǎng)絡(luò)中有四條流正在傳輸,他們的需要的帶寬分別是fiSSMbps,^為 5Mbps,f 3為2Mbps,f4為5Mbps。初始路徑由淺色線標(biāo)注在圖中。如果存在一條從A到F,經(jīng)過B, D兩個(gè)交換機(jī),需求帶寬為3Mbps的新流。很明顯,如果我們在路徑A-B-D-F上傳輸新流,擁塞 將會(huì)發(fā)生。因此,我們需要找出此路徑的瓶頸鏈路,也就是鏈路B-D。然后在這條鏈路上傳輸 的流H,f3,f4就是候選的需要被迀移的流。根據(jù)迀移流量最少的準(zhǔn)則,可以知道流Π 將被 迀移,將流Π 的傳輸路徑由D-E-B改為D-A-B,以保證新流的正確傳輸。
[0090]本發(fā)明的更新方法是按序更新由一個(gè)更新事件引起的多條數(shù)據(jù)流。對于并行更新 多條數(shù)據(jù)流,所有的數(shù)據(jù)流應(yīng)該被一起分配路徑同時(shí)需要保證需要被迀移的數(shù)據(jù)流之間不 會(huì)發(fā)生沖突。否則,網(wǎng)絡(luò)中就會(huì)發(fā)生擁塞現(xiàn)象,這甚至?xí)?dǎo)致網(wǎng)絡(luò)應(yīng)用程序發(fā)生不不可想象 的中斷。基于這個(gè)原因,需要提高更新方法便于并行的更新由于更新事件所引起的數(shù)據(jù)流 的迀移。
[0091 ]給定一個(gè)更新事件和由此引起的一組新數(shù)據(jù)流,為每一個(gè)新數(shù)據(jù)流尋找一個(gè)合適 的路徑,并且記錄下來因?yàn)檫@條新數(shù)據(jù)流的加入而被迫迀走的已存在與網(wǎng)絡(luò)中的數(shù)據(jù)流。 同時(shí),還應(yīng)該確保這些被迀走的數(shù)據(jù)流之間不會(huì)有潛在的沖突發(fā)生。之后,應(yīng)該對一個(gè)更新 事件所導(dǎo)致的需要迀移的數(shù)據(jù)流進(jìn)行分組,確保在一組當(dāng)中,所有的數(shù)據(jù)流不會(huì)產(chǎn)生沖突。 因此,以組數(shù)據(jù)流可以被并行的更新。很明顯,這樣一種設(shè)計(jì)可以加速更新事件的完成時(shí) 間。
[0092]本發(fā)明還根據(jù)迀移的數(shù)據(jù)流量大小,迀移的數(shù)據(jù)流的數(shù)目和成功更新的概率這三 個(gè)性能指標(biāo),將提出的更新方法與已存在的最短路徑的方法進(jìn)行比較。對每一個(gè)性能指標(biāo) 來說,試驗(yàn)結(jié)果都取100次實(shí)驗(yàn)的平均值。
[0093] 在實(shí)驗(yàn)中,首先構(gòu)建數(shù)據(jù)中網(wǎng)絡(luò)架構(gòu),比如Fat-Tree和ER隨機(jī)數(shù)據(jù)中心網(wǎng)絡(luò)。兩個(gè) 網(wǎng)絡(luò)的鏈路帶寬都被設(shè)置為lGpb^Fat-Tree數(shù)據(jù)中心網(wǎng)絡(luò)中交換機(jī)的數(shù)目由參數(shù)k來決 定。一個(gè)Fat-Tree拓?fù)溆蒶端口的交換機(jī)組成,包含k個(gè)pod,每個(gè)pod包含兩層,每層k/2個(gè)交 換機(jī),一個(gè)pod-共有5k 3/4個(gè)交換機(jī)并且可以支持k3/4個(gè)主機(jī)。ER隨機(jī)數(shù)據(jù)中心中的交換機(jī) 數(shù)目設(shè)置與Fat-Tree數(shù)目相同。
[0094]給出由更新事件引起的一組數(shù)據(jù)流作為輸入,在創(chuàng)建的兩個(gè)數(shù)據(jù)中心中實(shí)現(xiàn)更新 方法Lupdate。同樣,也實(shí)現(xiàn)了已知的最短路徑方法,它僅僅分配最短路徑給新數(shù)據(jù)流,如果 最短路徑不能容納這條新數(shù)據(jù)流,那么它任意的迀移這條路徑上的多條數(shù)據(jù)流來滿足新數(shù) 據(jù)流對帶寬的需求。在選擇那條數(shù)據(jù)流需要被迀移時(shí),最短路徑的方法不會(huì)去考慮是那條 鏈路及哪些數(shù)據(jù)流導(dǎo)致了新數(shù)據(jù)流的傳輸失敗。一旦鏈路沒有足夠的帶寬來傳輸這條新數(shù) 據(jù)流,它僅僅是任意的迀走一些數(shù)據(jù)流直到鏈路有足夠的容量來容納這些新數(shù)據(jù)流。
[0095] 為了測試對比這兩種種更新方法,向網(wǎng)絡(luò)中注入k3條通過收集得到的數(shù)據(jù)流當(dāng)作 背景數(shù)據(jù)流。將不同的網(wǎng)絡(luò)更新事件產(chǎn)生的數(shù)據(jù)流抽象為將要加入網(wǎng)絡(luò)的新數(shù)據(jù)流。這些 新數(shù)據(jù)流的類型如下面所描述。第一種類型是平均數(shù)據(jù)流,即,它們的源和目的地址任意取 定,而大小則要根據(jù)網(wǎng)絡(luò)已有的背景數(shù)據(jù)流的平均值來設(shè)定。第二種類型是測試數(shù)據(jù)流,他 們的源和目的地址是相對固定的,數(shù)據(jù)流的大小的平均值在5MB和95MB之間變化。
[0096] 在實(shí)驗(yàn)的最后,根據(jù)迀移的數(shù)據(jù)流的平均大小、數(shù)據(jù)流的數(shù)目和成功率三個(gè)性能 指標(biāo),評價(jià)這兩種方法在不同的更新事件下的性能。
[0097] 如圖4a所示,為更新方法Ludpate和最短路徑法迀移流量大小示意圖。在k為8~28 的Fat-Tree數(shù)據(jù)中心網(wǎng)絡(luò)評價(jià)迀移的數(shù)據(jù)流的大小。從中可以看出,無論在任何網(wǎng)絡(luò)規(guī)模 下,Ludpate更新方法可以迀移最小的數(shù)據(jù)流量來容納由更新事件造成數(shù)據(jù)流量的迀移。相 反,為了容納新數(shù)據(jù)流,最短路徑方法迀移的數(shù)據(jù)流量最多,大概是Lupdate方法的40~100 倍。
[0098]在注入了 k3條真實(shí)的追蹤數(shù)據(jù)流作為背景數(shù)據(jù)流量之后,圖4b為鏈路利用率超過 90%的鏈路的概率示意圖。當(dāng)網(wǎng)絡(luò)規(guī)模從k等于8到28變化時(shí),鏈路利用率超過90 %的鏈路 的概率在38%~55 %之間變化示。圖4a和圖4b說明在大多數(shù)的鏈路在鏈路利用率很高的情 況下,Lupdate依然可以迀移最小數(shù)據(jù)流量完成這個(gè)新數(shù)據(jù)流的傳輸。
[0099]在Fat-Tree網(wǎng)絡(luò)中評價(jià)了這些更新方法之后,研究其他數(shù)據(jù)中心網(wǎng)絡(luò)拓?fù)涞挠?響,比如說ER隨機(jī)網(wǎng)絡(luò)。對于任意一個(gè)k,ER網(wǎng)絡(luò)中交換機(jī)的數(shù)目和Fat-Tree中保持一致,都 取5k2/4網(wǎng)絡(luò)中的交換機(jī)以概率p和其他的交換機(jī)相連,也就是說,一個(gè)交換機(jī)和服務(wù)器 連接的概率是1 -p。這個(gè)概率是由k確定的Fat-Tree數(shù)據(jù)中心網(wǎng)絡(luò)中交換機(jī)與交換機(jī)相連的 數(shù)目,與所有鏈路數(shù)目之比來決定的。向ER隨機(jī)網(wǎng)絡(luò)中注入k 3條數(shù)據(jù)流作為背景數(shù)據(jù)流量, 同時(shí)注入上述提到的第一種類型的數(shù)據(jù)流來模仿一種網(wǎng)絡(luò)更新事件。
[0100]圖5a為更新方法Lupdate和最短路徑法在任何網(wǎng)絡(luò)規(guī)模下迀移的數(shù)據(jù)流量示意 圖。從中可以看出,Lupdate方法可以在任何網(wǎng)絡(luò)規(guī)模下迀移最小的數(shù)據(jù)流量。最短路徑方 法迀移的數(shù)據(jù)流量遠(yuǎn)大于Lupadte方法。另外,隨著網(wǎng)絡(luò)規(guī)模的增加,Lupdate和最短路路徑 迀移的數(shù)據(jù)流量的差值在增加。
[0101]從圖5a還可以看出,一般情況下,迀移的數(shù)據(jù)流量大小都會(huì)隨著網(wǎng)絡(luò)規(guī)模的增加 呈現(xiàn)上升趨勢,但是當(dāng)k = 20的時(shí)候,卻發(fā)生了異常??梢愿鶕?jù)圖5b來解釋這一現(xiàn)象。當(dāng)k從8 變化到16時(shí),迀移的數(shù)據(jù)流量大小逐漸的增大,這時(shí)大部分鏈路的利用率都穩(wěn)定在一定范 圍內(nèi)。然而,當(dāng)k到達(dá)20的時(shí)候,鏈路利用率超過90%的鏈路降到了鏈路總數(shù)的6.7%,此時(shí), 兩種方法迀移的數(shù)據(jù)流量大小也是極具的下降。當(dāng)k到達(dá)24和28時(shí),鏈路利用率超過90%的 鏈路迅速增加,隨之兩種方法迀移的數(shù)據(jù)流量也恢復(fù)到了之前的增長趨勢當(dāng)中。這個(gè)現(xiàn)象 表明當(dāng)著鏈路利用率恢復(fù)到正常情況時(shí),兩種方法迀移的數(shù)據(jù)流量大小也按照之前的規(guī)律 逐漸增加。所以,可以推斷出鏈路的利用率情況和網(wǎng)絡(luò)的規(guī)模會(huì)影響迀移的數(shù)據(jù)流量大小, 而拓?fù)洳粫?huì)影響整個(gè)數(shù)據(jù)流量迀移大小的趨勢。
[0102]圖6a為在k = 20的Fat-Tree網(wǎng)絡(luò)中流量迀移示意圖。圖6b為在包含720個(gè)交換機(jī)的 ER隨機(jī)網(wǎng)絡(luò)中流量迀移示意圖。在這兩種網(wǎng)絡(luò)情境之下,向網(wǎng)絡(luò)中注入上述提到的測試類 型的數(shù)據(jù)流作為有更新事件產(chǎn)生的需要被重新調(diào)度的新數(shù)據(jù)流,它的平均大小從10MB變化 到90MB。
[0103]圖7a為在Fat-Tree網(wǎng)絡(luò)中迀移的數(shù)據(jù)流量大小隨新數(shù)據(jù)流的變化規(guī)律示意圖。在 Fat-Tree網(wǎng)絡(luò)中,當(dāng)新數(shù)據(jù)流的平均值為70MB和90MB時(shí),最短路徑的方法產(chǎn)生的數(shù)據(jù)流量 急速下降。之后,隨著新數(shù)據(jù)流均值大小的增加,迀移的數(shù)據(jù)流量基本保持在一定范圍內(nèi)。 在整個(gè)新數(shù)據(jù)流均值大小的變化當(dāng)中,Lupdate方法和最短路徑方法所產(chǎn)生的迀移數(shù)據(jù)流 量均在一定范圍內(nèi)穩(wěn)定變化。
[0104] 產(chǎn)生這種現(xiàn)象有很多種原因。首先,對于每一條新數(shù)據(jù)流來說,網(wǎng)絡(luò)中會(huì)對應(yīng)多條 最短路徑,由于ER隨機(jī)網(wǎng)絡(luò)的特殊性,我們在選擇最短路徑時(shí),也會(huì)隨機(jī)選擇一條最短路 徑;第二,由于兩種方法均是對注入的一系列新數(shù)據(jù)流逐一調(diào)度,所以,隊(duì)列前面的數(shù)據(jù)流 的路徑選擇方案必然會(huì)影響到之后加入網(wǎng)絡(luò)的新數(shù)據(jù)流的調(diào)度方案。同樣,新數(shù)據(jù)流注入 網(wǎng)絡(luò)的順序,也會(huì)影響到最終的調(diào)度結(jié)果。第三,首先被調(diào)度的新數(shù)據(jù)流有可能需要移動(dòng)路 徑上現(xiàn)有的數(shù)據(jù)流量以便加入網(wǎng)絡(luò),而這些需要被移走的數(shù)據(jù)流量同樣可能會(huì)占據(jù)本應(yīng)分 配給隊(duì)列后面的新數(shù)據(jù)流的路徑,從而產(chǎn)生了二次迀移。所以就不難理解在Fat-Tree網(wǎng)絡(luò) 中,隨著新數(shù)據(jù)流均值增大,迀移的數(shù)據(jù)流量反而會(huì)減小的現(xiàn)象。
[0105] 圖7b為在ER隨機(jī)網(wǎng)絡(luò)當(dāng)中迀移的數(shù)據(jù)流量大小隨新數(shù)據(jù)流的變化規(guī)律示意圖。在 ER隨機(jī)網(wǎng)絡(luò)中,新數(shù)據(jù)流均值大小為30MB的時(shí)候,迀移的數(shù)據(jù)流量會(huì)產(chǎn)生巨大的變化。 [0106]無論在何種網(wǎng)絡(luò)中,新數(shù)據(jù)流的平均大小越大,的確會(huì)在一定程度上使Lupdate方 法產(chǎn)生更多的數(shù)據(jù)流量迀移。但是,實(shí)驗(yàn)結(jié)果表明為了容納一系列的新數(shù)據(jù)流,Lupdate方 法始終迀移最小的數(shù)據(jù)流量,最短路徑的方法始終迀移最多的數(shù)據(jù)流量。
[0107] 除了迀移的數(shù)據(jù)流量大小,迀移的數(shù)據(jù)流的數(shù)目也會(huì)影響IaaS數(shù)據(jù)中心服務(wù)的質(zhì) 量。如果存在大量的數(shù)據(jù)流需要迀移,必須分配有充足帶寬的鏈路給這些數(shù)據(jù)流。同時(shí),我 們呢必須合理的安排這些數(shù)據(jù)流的迀移順序,以免發(fā)生擁塞。之后,對應(yīng)每條要迀移的數(shù)據(jù) 流的轉(zhuǎn)發(fā)規(guī)則會(huì)在所涉及到的交換機(jī)上進(jìn)行安裝。另外,每一個(gè)涉及到的交換機(jī)都要消耗 一定時(shí)間來安裝這些轉(zhuǎn)發(fā)規(guī)則。很明顯,需要迀移的數(shù)據(jù)流的數(shù)目越多,交換機(jī)上的負(fù)載也 就會(huì)越重。在這種情況下,很難去僅僅調(diào)整一些已存在的數(shù)據(jù)流來容納一組新數(shù)據(jù)流。
[0108] 圖8a為在Fat-Tree網(wǎng)絡(luò)中額外迀移的數(shù)據(jù)流的數(shù)目變化示意圖。隨著網(wǎng)絡(luò)規(guī)模的 擴(kuò)大,大多數(shù)鏈路的鏈路利用率不斷提高,利用最短路徑方法迀移的數(shù)據(jù)流的數(shù)目也會(huì)隨 之增加,而Lupdate由于方法的特殊性,僅僅迀移一條額外的數(shù)據(jù)流。正像預(yù)料的那樣,在 Fat-Tree網(wǎng)絡(luò)中,為了容納一組新數(shù)據(jù)流,與最短路徑方法相比,最短路徑方法迀移的流量 是Lupdate方法的20~40倍。
[0109]圖8b為在ER隨機(jī)網(wǎng)絡(luò)中額外迀移的數(shù)據(jù)流的數(shù)目變化示意圖。在ER隨機(jī)網(wǎng)絡(luò)中評 價(jià)這兩種方法所導(dǎo)致的需要額外迀移的數(shù)據(jù)流的數(shù)目。在圖8b所示的ER隨機(jī)網(wǎng)絡(luò)中,除了k = 20,隨著網(wǎng)絡(luò)規(guī)模的增大,迀移的數(shù)據(jù)流的數(shù)目也在增加。這是因?yàn)樵趉 = 20時(shí),大多數(shù)鏈 路的鏈路利用率很低,所以相比于鏈路利用率較高的情況,迀移較少的數(shù)據(jù)流,就能輕松地 容納一組新數(shù)據(jù)流。一情況下,隨著網(wǎng)絡(luò)規(guī)模增加,鏈路利用率的增加,迀移的數(shù)據(jù)流的數(shù) 目也會(huì)增加。
[0110] 然而,這個(gè)現(xiàn)象在同樣配置Fat-Tree網(wǎng)絡(luò)中并沒有出現(xiàn),這是由于Fat-Tree網(wǎng)絡(luò) 的鏈路帶寬利用率并沒有出現(xiàn)大幅度的改變。
[0111] 在同樣配置的Fat-Tree網(wǎng)絡(luò)和ER隨機(jī)網(wǎng)絡(luò)中,兩種方法迀移的數(shù)據(jù)流的數(shù)目隨著 新數(shù)據(jù)流的平均值變化而變化的趨勢。不論在哪種網(wǎng)絡(luò)拓?fù)?,新?shù)據(jù)流的平均大小是多少, Ludpate方法平均迀移一條額外的數(shù)據(jù)流來容納新數(shù)據(jù)流。可以從圖7a看出,除了新數(shù)據(jù)流 大小為70MB和90MB的時(shí)候,隨著新數(shù)據(jù)流的大小的平均值的增加,需要被迀移的數(shù)據(jù)流的 數(shù)目也在增加。這是因?yàn)榉峙浣o隊(duì)列前面的數(shù)據(jù)流的路徑和分配給被迀移的已存在的數(shù)據(jù) 流的路徑,都會(huì)影響到隊(duì)列后面的數(shù)據(jù)流的調(diào)度方案,這樣迀移的數(shù)據(jù)流的數(shù)目也會(huì)產(chǎn)生 不同幅度的變化。相反地,Lupdate方法為了容納一條數(shù)據(jù)流,僅允許迀移一條額外的數(shù)據(jù) 流,所以,新數(shù)據(jù)流的平均大小并不會(huì)對它造成任何影響。
[0112] 所屬領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:以上任何實(shí)施例的討論僅為示例性的,并非 旨在暗示本公開的范圍(包括權(quán)利要求)被限于這些例子;在本發(fā)明的思路下,以上實(shí)施例 或者不同實(shí)施例中的技術(shù)特征之間也可以進(jìn)行組合,并存在如上所述的本發(fā)明的不同方面 的許多其它變化,為了簡明它們沒有在細(xì)節(jié)中提供。因此,凡在本發(fā)明的精神和原則之內(nèi), 所做的任何省略、修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【主權(quán)項(xiàng)】
1. 一種數(shù)據(jù)中心網(wǎng)絡(luò)更新中數(shù)據(jù)流的迀移方法,其特征在于,包括: 為每一條新數(shù)據(jù)流在網(wǎng)絡(luò)中搜索出所有的可行最短路徑作為候選路徑,根據(jù)所述候選 路徑的長度對所述候選路徑進(jìn)行升序排序,從第一條所述候選路徑開始,依次檢測所述候 選路徑是否可以在不迀移現(xiàn)有數(shù)據(jù)流的前提下容納所述新數(shù)據(jù)流,直到檢測到能夠在不迀 移現(xiàn)有數(shù)據(jù)流的前提下容納所述新數(shù)據(jù)流的候選路徑,將所述新數(shù)據(jù)流加入到該條路徑上 傳輸; 若所有的所述候選路徑都不能在不迀移現(xiàn)有數(shù)據(jù)流的前提下容納所述新數(shù)據(jù)流,則從 第一條所述候選路徑開始,依次檢測所述候選路徑是否可以在僅迀移一條現(xiàn)有數(shù)據(jù)流的情 況下,將所述新數(shù)據(jù)流加入到該條候選路徑上,直到檢測到能夠在僅迀移一條現(xiàn)有數(shù)據(jù)流 的前提下容納所述新數(shù)據(jù)流的候選路徑,迀移該條現(xiàn)有數(shù)據(jù)流,并將所述新數(shù)據(jù)流加入到 該條路徑上傳輸。2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括:若在迀移一條現(xiàn)有數(shù)據(jù)流的情況 下,迀移出數(shù)據(jù)流的路徑仍然不能傳輸所述新數(shù)據(jù)流,則所述新數(shù)據(jù)流在入口交換機(jī)處等 待一段時(shí)間,直到有一些所述候選路徑完成數(shù)據(jù)流的傳輸或者在迀移一條現(xiàn)有數(shù)據(jù)流的情 況下能夠容納所述新數(shù)據(jù)流時(shí),將所述新數(shù)據(jù)流加入到該候選路徑進(jìn)行傳輸。3. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述可行最短路徑為包含最少數(shù)量的為完 成所述新數(shù)據(jù)流的傳輸所經(jīng)過的瓶頸鏈路的可行路徑。4. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述迀移該條現(xiàn)有數(shù)據(jù)流為將該條現(xiàn)有數(shù) 據(jù)流迀移到其所對應(yīng)的并且能夠?qū)⒅菁{的最短路徑上去。5. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述依次檢測所述候選路徑是否可以在僅 迀移一條現(xiàn)有數(shù)據(jù)流的過程包括: 找出分配所述新數(shù)據(jù)流的路徑上的所有瓶頸鏈路; 記錄下瓶頸鏈路上所經(jīng)過的數(shù)據(jù)流,并且找出經(jīng)過所有瓶頸鏈路的數(shù)據(jù)流; 對找出來的數(shù)據(jù)流按照數(shù)據(jù)流量大小進(jìn)行排序,迀移數(shù)據(jù)流量最小的數(shù)據(jù)流來滿足所 述新數(shù)據(jù)流對于鏈路帶寬的需求。6. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述數(shù)據(jù)中心網(wǎng)絡(luò)更新中數(shù)據(jù)流迀移的方 法對應(yīng)的數(shù)學(xué)模型為: 將網(wǎng)絡(luò)定義為一個(gè)圖G= (V,E),V和E分別代表交換機(jī)和連接這些交換機(jī)的鏈路,D被定 義為網(wǎng)絡(luò)直徑,數(shù)據(jù)流f被定義為f = (sf,df,v(f)),sf是入口交換機(jī),df是出口交換機(jī),V (f)是數(shù)據(jù)流f的大小,fnm和fm。%分別代表由于更新事件產(chǎn)生的需要新加入的數(shù)據(jù)流和由 于新加入的某條數(shù)據(jù)流而需要被迀移的現(xiàn)有數(shù)據(jù)流,V(Au)代表數(shù)據(jù)流f在鏈路 eiu上的負(fù) 載,If代表了數(shù)據(jù)流f經(jīng)過的跳數(shù),Gf代表包含f經(jīng)過的所有交換機(jī)和鏈路的子圖,F(xiàn)記錄了 網(wǎng)絡(luò)中每條數(shù)據(jù)流的大小,T代表數(shù)據(jù)流量分布矩陣,記錄著每條鏈路上的負(fù)載大小。7. 根據(jù)權(quán)利要求1-6所述的方法,其特征在于,所述數(shù)學(xué)模型的優(yōu)化目標(biāo)為: 數(shù)據(jù)中心網(wǎng)絡(luò)更新的過程中迀移最小的數(shù)據(jù)流量和最小數(shù)目的數(shù)據(jù)流。
【文檔編號】H04L12/801GK105897882SQ201610211676
【公開日】2016年8月24日
【申請日】2016年4月6日
【發(fā)明人】郭得科, 屈挺, 劉云飛, 任棒棒, 劉忠
【申請人】中國人民解放軍國防科學(xué)技術(shù)大學(xué)