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