數(shù)據(jù)處理裝置的處理器執(zhí)行時,產(chǎn)生了實現(xiàn)流程圖和/或框圖中的一個或多個方框中規(guī)定的功能/動作的裝置。
[0027]也可以把這些計算機(jī)程序指令存儲在計算機(jī)可讀介質(zhì)中,這些指令使得計算機(jī)、其它可編程數(shù)據(jù)處理裝置、或其他設(shè)備以特定方式工作,從而,存儲在計算機(jī)可讀介質(zhì)中的指令就產(chǎn)生出包括實現(xiàn)流程圖和/或框圖中的一個或多個方框中規(guī)定的功能/動作的指令的制造品(article of manufacture)。
[0028]計算機(jī)程序指令還可以加載到計算機(jī)、其它可編程數(shù)據(jù)處理裝置或者其它設(shè)備上,使得一系列操作步驟在計算機(jī)、其它可編程裝置或者其它設(shè)備上執(zhí)行,以產(chǎn)生一種計算機(jī)實現(xiàn)的過程,使得在所述計算機(jī)或者其它可編程裝置上執(zhí)行的指令提供用于實現(xiàn)流程圖和/或框圖中的一個或多個方框中規(guī)定的功能/動作的過程。
[0029]附圖中的流程圖和框圖顯示了根據(jù)本發(fā)明的多個實施例的系統(tǒng)、方法和計算機(jī)程序產(chǎn)品的可能實現(xiàn)的體系架構(gòu)、功能和操作。在這點上,流程圖或框圖中的每個方框可以代表一個模塊、程序段或代碼的一部分,所述模塊、程序段或代碼的一部分包含一個或多個用于實現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應(yīng)當(dāng)注意,在有些作為替換的實現(xiàn)中,方框中所標(biāo)注的功能也可以以不同于附圖中所標(biāo)注的順序發(fā)生。例如,兩個連續(xù)的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或動作的專用的基于硬件的系統(tǒng)來實現(xiàn),或者可以用專用硬件與計算機(jī)指令的組合來實現(xiàn)。
[0030]以下具體描述一般將遵循如上所述的本公開的概述,在必要的時候進(jìn)一步解釋和擴(kuò)展本公開各方面和實施例的定義。
[0031]圖1是示出管理在數(shù)據(jù)中心中的兩個主機(jī)系統(tǒng)之間的多條路徑和路徑權(quán)重的集中式流調(diào)度器的一個例子的圖。計算機(jī)網(wǎng)絡(luò)140是軟件定義的數(shù)據(jù)中心網(wǎng)絡(luò),包括在主機(jī)系統(tǒng),諸如主機(jī)A 100和主機(jī)B 155之間發(fā)送數(shù)據(jù)包的多個交換機(jī)142-150。在一種實施例中,集中式流調(diào)度器180配置交換機(jī)142-150,使得多條網(wǎng)絡(luò)路徑可以讓主機(jī)A 100用于向主機(jī)B 155發(fā)送數(shù)據(jù)。例如,集中式流調(diào)度器180可以配置交換機(jī)142-150每個中的轉(zhuǎn)發(fā)表,使得每個交換機(jī)基于數(shù)據(jù)包的路徑標(biāo)識符知道哪個端口轉(zhuǎn)發(fā)數(shù)據(jù)包(以下討論)。
[0032]圖1示出集中式流調(diào)度器配置了三條讓主機(jī)A 100向主機(jī)B 155發(fā)送數(shù)據(jù)包的可用路徑,這三條路徑是路徑AB1、AB2和AB3。路徑ABl (長虛線)通過交換機(jī)142、144、148、150向主機(jī)B 155發(fā)送數(shù)據(jù)包。路徑AB2(實線)通過交換機(jī)142、146、148、150向主機(jī)B155發(fā)送數(shù)據(jù)包。路徑AB3(短虛線)通過交換機(jī)142、146、150向主機(jī)B 155發(fā)送數(shù)據(jù)包。
[0033]集中式流調(diào)度器180在主加權(quán)表190中為每條可用路徑添加一個表條目,該表條目包括路徑標(biāo)識符、路徑的對應(yīng)鏈路以及初始隨機(jī)路徑權(quán)重(對于更多細(xì)節(jié),見圖2A和對應(yīng)的文字)。集中式流調(diào)度器180又把對應(yīng)于特定主機(jī)的表條目發(fā)送到每個主機(jī)。例如,集中式流調(diào)度器180把對應(yīng)于路徑AB1、AB2和AB3的表條目發(fā)送到主機(jī)A 100,主機(jī)A 100把這些表條目存儲在本地權(quán)重表135中(對于更多細(xì)節(jié),見圖2B和對應(yīng)的文字)。
[0034]主機(jī)A 100的管理程序105處理由虛擬機(jī)115、120和125發(fā)起的數(shù)據(jù)包。當(dāng)管理程序105從虛擬機(jī)115、120或125之一接收到目的地為主機(jī)B 155的虛擬機(jī)160、165或170之一的數(shù)據(jù)包時,管理程序105把數(shù)據(jù)包發(fā)送到虛擬交換機(jī)(vswitch) 110。虛擬交換機(jī)110比較來自數(shù)據(jù)包的頭字段與流表130中配置的數(shù)據(jù)路徑規(guī)則。例如,通過從數(shù)據(jù)包的頭提取5元組信息并且比較流標(biāo)識符與流表130中所包括的跟蹤到分配路徑的現(xiàn)有流的表條目,虛擬交換機(jī)110可以識別對應(yīng)于接收到的數(shù)據(jù)包的數(shù)據(jù)流(對于更多細(xì)節(jié),見圖2C和對應(yīng)的文字)。
[0035]如果數(shù)據(jù)包屬于現(xiàn)有的數(shù)據(jù)流,則虛擬交換機(jī)110把在流表130中規(guī)定的動作應(yīng)用到該包。動作可以包括以使得當(dāng)在網(wǎng)絡(luò)上發(fā)送時數(shù)據(jù)包使用分配給所述數(shù)據(jù)流的具體路徑的這樣一種方式(對于更多細(xì)節(jié),見圖3、5和對應(yīng)的文字)修改數(shù)據(jù)包的頭,并且在端口上把該包發(fā)送出去。修改后的數(shù)據(jù)包又經(jīng)分配路徑遍歷通過計算機(jī)網(wǎng)絡(luò)140并且到達(dá)主機(jī)B 155。管理程序157和虛擬交換機(jī)150接收數(shù)據(jù)包并且把數(shù)據(jù)包轉(zhuǎn)發(fā)到虛擬機(jī)160、165或170當(dāng)中適當(dāng)?shù)囊粋€。
[0036]但是,當(dāng)數(shù)據(jù)包屬于新的數(shù)據(jù)流時,對于該數(shù)據(jù)流,在流表130中不存在匹配的條目,因此數(shù)據(jù)包被發(fā)送到虛擬交換機(jī)控制邏輯。虛擬交換機(jī)110的控制邏輯檢查本地權(quán)重表135有沒有對應(yīng)于該數(shù)據(jù)包的源和目的地的可用路徑并且基于分配給可用路徑的路徑權(quán)重向數(shù)據(jù)流分配路徑。虛擬交換機(jī)110在流表130中生成新的表條目,該新的表條目包括把屬于該數(shù)據(jù)流的數(shù)據(jù)包轉(zhuǎn)發(fā)到分配路徑所需的流標(biāo)識符(例如,5元組)和對應(yīng)動作。照此,當(dāng)虛擬交換機(jī)110接收到屬于相同數(shù)據(jù)流的后續(xù)數(shù)據(jù)包時,虛擬交換機(jī)110訪問流表130并且對數(shù)據(jù)流中每個后續(xù)數(shù)據(jù)包應(yīng)用相同的動作,從而使屬于相同數(shù)據(jù)流的后續(xù)數(shù)據(jù)包沿著相同的分配路徑被轉(zhuǎn)發(fā)。
[0037]當(dāng)數(shù)據(jù)包遍歷通過計算機(jī)網(wǎng)絡(luò)140時,某些鏈路變得被高度利用。這可能是由于來自一個主機(jī)系統(tǒng)的單個數(shù)據(jù)流,或者可能是由于來自多個主機(jī)系統(tǒng)的流的組合(對于更多細(xì)節(jié),見圖6和對應(yīng)的文字)。集中式流調(diào)度器180檢測高度利用的鏈路并且更新主權(quán)重表190中對應(yīng)于高度利用的鏈路的路徑權(quán)重(對于更多細(xì)節(jié),見圖4和對應(yīng)的文字)。例如,如果交換機(jī)144和148之間的鏈路變得被高度利用,則集中式流調(diào)度器180識別包括該鏈路的可用路徑并且更新它們的對應(yīng)路徑權(quán)重。
[0038]照此,集中式流調(diào)度器180識別對應(yīng)于更新的路徑權(quán)重的主機(jī)并且把更新的路徑權(quán)重發(fā)送到對應(yīng)的主機(jī)(例如,主機(jī)A 100)。當(dāng)虛擬交換機(jī)110從虛擬機(jī)115、120或125接收是新數(shù)據(jù)流的一部分的數(shù)據(jù)包時,虛擬交換機(jī)110基于更新的路徑權(quán)重確定哪條路徑要分配給新數(shù)據(jù)流。因此,跨計算機(jī)網(wǎng)絡(luò)140中的多條路徑動態(tài)分配流,從而降低了網(wǎng)絡(luò)擁塞的可能性。
[0039]圖2A是示出由集中式流調(diào)度器生成還管理的主權(quán)重表的一個例子的圖。集中式流調(diào)度器180使用主權(quán)重表190來存儲用于源主機(jī)和目的地主機(jī)的各種路徑的表條目。圖2A示出表190包括源主機(jī)列200、目的地主機(jī)列210、路徑標(biāo)識符列220、鏈路標(biāo)識符225以及路徑權(quán)重列230。
[0040]當(dāng)集中式流調(diào)度器180針對主機(jī)之間的多種路徑選項而配置計算機(jī)網(wǎng)絡(luò)140時,集中式流調(diào)度器180把表條目添加到表190。如可以看到的,表190包括用于主機(jī)A和主機(jī)B之間的路徑的三個表條目,以及用于主機(jī)C和主機(jī)B之間的路徑的三個表條目。當(dāng)集中式流調(diào)度器180檢測到計算機(jī)網(wǎng)絡(luò)140中高度利用的鏈路時,集中式流調(diào)度器180 (經(jīng)列225中的鏈路標(biāo)識符)識別使用該高度利用的鏈路的路徑,并且相應(yīng)地更新對應(yīng)的路徑權(quán)重。集中式流調(diào)度器180又把更新的路徑權(quán)重發(fā)送到對應(yīng)的源主機(jī),使得源主機(jī)可以利用更新的路徑權(quán)重更新它們的本地權(quán)重表(對于更多細(xì)節(jié),見圖4和對應(yīng)的文字)。
[0041]圖2B是示出當(dāng)選擇路徑分配給新數(shù)據(jù)流時主機(jī)系統(tǒng)參考的本地權(quán)重表的一個例子的圖。當(dāng)源主機(jī)A的一個虛擬機(jī)向駐留在主機(jī)B 155上的虛擬機(jī)發(fā)送數(shù)據(jù)包時,主機(jī)A100使用表135在三條路徑(AB1、AB2或AB3)之間選擇。如在圖2B中可以看到的,表135包括目的地主機(jī)列250、路徑標(biāo)識符列255以及路徑權(quán)重列260。當(dāng)虛擬交換機(jī)110接收到開始新數(shù)據(jù)流并且打算送給主機(jī)B 155上的虛擬機(jī)的數(shù)據(jù)包時,虛擬交換機(jī)110使用列260中的路徑權(quán)重來選擇分配給新數(shù)據(jù)流的特定路徑。圖2B示出路徑ABl具有最高權(quán)重.7,這指示路徑ABl是分配給新流的優(yōu)選路徑。照此,虛擬交換機(jī)110把路徑ABl分配給新數(shù)據(jù)流并且修改對應(yīng)于新數(shù)據(jù)流的每個數(shù)據(jù)包的頭,以便遍歷路徑ABl (對于更多細(xì)節(jié),見圖5和對應(yīng)的文字)。
[0042]圖2C是示出由主機(jī)系統(tǒng)用來識別數(shù)據(jù)包的分配路徑的流表的一個例子的圖。當(dāng)虛擬交換機(jī)110把路徑分配給新數(shù)據(jù)流時,虛擬交換機(jī)I1向表130添加流表條目,該流表條目包括用于匹配數(shù)據(jù)包的流標(biāo)識符和對應(yīng)于該流標(biāo)識符的動作。流表130示出對應(yīng)于5元組的字段265至285,在一種實施例中,該5元組用作