205,等等)中的每一個中。在本文的各種描述通??梢灾傅氖橇鞴芾砥髂K,并且應當理解,除非另外指出,此類描述可以適用于在(例如,如圖1中所示的)管理程序中實施的流管理器模塊或在(例如,如圖2中所示的)VM中實施的流管理器模塊。同樣地,圖1的組件的各種其他描述可以適用于圖2的類似的組件,除非另外指示其他。
[0031]流管理器模塊(例如,224)可以使用多路徑TCP協(xié)議或另一種類型的多路徑傳送協(xié)議。例如,在圖2中,運行在VM (例如,210)中的多路徑協(xié)議可以使用許多虛擬路徑,其中每個虛擬路徑可以與特定優(yōu)先級(例如,高優(yōu)先級和較低優(yōu)先級)相關(guān)聯(lián)。在該示例中,流管理器模塊(例如,224)可以監(jiān)視用于各個VM到VM對的業(yè)務,例如,發(fā)送給第二VM(例如,205)、出自第一 VM(例如,210)的流。對于特定VM到VM對,流管理器模塊224可以基于用于對的流是否已經(jīng)超過用于該對的帶寬保證來將分組路由到不同的虛擬路徑中。在圖2的示例中,附圖標記215可以表示利用兩個虛擬路徑實施多路徑TCP協(xié)議的網(wǎng)絡連接。替換地,附圖標記215可以表示通過管理程序暴露給VM的多個物理路徑和/或多個虛擬網(wǎng)絡接口,如以下更詳細地描述的。應當理解的是,圖1的示例(例如,流管理器模塊124)也可以使用多路徑協(xié)議來跨多個虛擬路徑(例如,具有保證的一些和不具有保證的一些)分發(fā)分組。在該示例中,VM可以僅僅看見單個虛擬網(wǎng)絡接口。
[0032]在一些情形中,兩個VM可以使用多個物理路徑進行通信,在這種情況下,可以跨多個物理路徑路由具有保證的業(yè)務(例如,高優(yōu)先級業(yè)務)和工作保持的業(yè)務(例如,低優(yōu)先級業(yè)務)兩者。在該情形中,可以(例如,由分組分發(fā)器)跨所有物理路徑散布分組,并且可以將多個物理路徑看作單個較大的虛擬路徑。然后,多路徑傳送協(xié)議可以看見或暴露一定數(shù)量的(例如,兩個)虛擬路徑。分組分發(fā)器模塊可以在這些虛擬路徑上(以及跨物理路徑)擴散分組。替換地,可以(例如,通過多路徑協(xié)議)將多個物理路徑中的每一個看作分離的虛擬路徑。在這種情況下,多路徑協(xié)議可以看見或暴露2*N個虛擬路徑,其中N是物理路徑的數(shù)量。這些路徑中的N個路徑可以與有保證的業(yè)務以及具有工作保持的業(yè)務的N相關(guān)聯(lián)??梢詫嵤┮陨蟽蓚€示例的任何組合(例如,一定數(shù)量的虛擬路徑,以及用于每個物理路徑的一個虛擬路徑)。例如,可以通過多路徑傳送協(xié)議暴露N+1個虛擬路徑,例如,用于具有保證的業(yè)務的一個虛擬路徑以及用于工作保持的業(yè)務的N個虛擬路徑。在這種情況下,分組分發(fā)器可以跨多個物理路徑在具有保證的虛擬路徑中散布分組。
[0033]再次參考圖2,在一些示例中,可以向VM提供多個虛擬網(wǎng)絡接口或地址,以指示哪個業(yè)務將被速率限制(例如,低于保證的業(yè)務)以及哪個業(yè)務將是機會性的或工作保持的。例如,網(wǎng)絡設定200的提供商或管理員可以對用于具有帶寬保證的業(yè)務的VM暴露一個虛擬網(wǎng)絡接口或地址,并且對于沒有保證的業(yè)務,提供一個網(wǎng)絡接口或地址??梢?例如,由模塊222)將在兩個VM的兩個保證接口 /地址之間行進的業(yè)務速率限制到保證帶寬。然后,可以將此類業(yè)務路由到高優(yōu)先級隊列一一例如,交換機208中的QO中。可以將在兩個VM的兩個無保證的接口 /地址之間(或在一個有保證的接口 /地址和一個無保證的接口 /地址之間)行進的業(yè)務路由到至少一個較低的優(yōu)先級隊列——例如,交換機208中的Ql中。
[0034]保證確定和速率限制器模塊222可以類似于圖1的模塊122。模塊222可以確保對于移出每個VM的高優(yōu)先級所路由的總業(yè)務(例如,多個流)不超過與出自特定VM的VM到VM對相關(guān)聯(lián)的帶寬保證的總值。在圖2的示例中,每個VM可以根據(jù)優(yōu)先級將分組路由到不同的虛擬路徑中,并且模塊222可以對高優(yōu)先級虛擬路徑(例如,用于低于速率保證的業(yè)務的虛擬路徑)上的業(yè)務進行速率限制。在一些情形中,保證確定和速率限制器模塊222可以確定VM到VM對帶寬保證并且然后可以向VM用信號通知用于每個虛擬路徑的發(fā)送速率。VM然后可以對高優(yōu)先級虛擬路徑執(zhí)行速率限制。替換地,模塊222對高優(yōu)先級虛擬路徑執(zhí)行速率限制。在該情形中,VM可以仍然有效地對它們的高優(yōu)先級虛擬路徑進行速率限制,這是因為VM可以通知丟棄的分組(例如,由于速率限制在模塊222丟棄的)。在該情況下,VM可以發(fā)送對于高優(yōu)先級路由的較少的分組(例如,低于速率保證的業(yè)務)。
[0035]作為又一個示例性網(wǎng)絡設定(在特定圖中未示出),保證確定和速率限制器模塊(例如,222)和流管理器模塊(例如,124、224等等)可以部分地或完全地在[(:(例如,118)內(nèi)部或交換機(例如,208)內(nèi)部實施。因而,在本文提供的保證確定和速率限制器模塊以及流管理器模塊的各種描述可以適用于該示例。另外地,可以基于諸如IP地址或以太網(wǎng)地址之類的源地址和目的地地址在NIC或交換機應用優(yōu)先級。
[0036]圖3是示例性流管理器模塊300的框圖。流管理器模塊300可以類似于流管理器模塊124、224和/或225。流管理器模塊300可以接收由流管理器模塊300監(jiān)視的各個路徑的信息的分組??梢栽趫D3中將信息的此類分組指出為出站流308。出站流308可以表示出自至少一個VM并且發(fā)送給其他VM的分組的流。流管理器模塊300可以輸出信息的分組(例如,所接收的信息的相同的分組)。可以在圖3中將信息的此類分組指出為路由的和/或加標簽的流310??梢砸蕴囟ǚ绞?例如,根據(jù)優(yōu)先級)來對由模塊300輸出的信息的每個分組進行引導(例如,路由和/或加標簽)。流管理器模塊300可以包括許多模塊302、304、306。這些模塊中的每一個可以被實施為在機器可讀存儲介質(zhì)上編碼的并且可由主機計算設備(例如,102)的處理器執(zhí)行的一系列指令。另外或作為替代,這些模塊可以包括一個或多個硬件設備,該一個或多個硬件設備包括用于實施在本文描述的功能的電子電路。圖4是流管理器模塊300可以根據(jù)優(yōu)先級對信息的分組進行引導(例如,路由和/或加標簽)的示例性方案的流程圖400。
[0037]流監(jiān)視器模塊302可以監(jiān)視各個VM到VM路徑上的業(yè)務(例如,出站流308),例如,發(fā)送給第二 VM (例如,1 5或20 5)的、出自第一 VM (例如,110或210)的流。流比較模塊304可以對于特定VM到VM對確定通過該對的分組的流是否超過該路徑的特定帶寬保證。如圖3中所示的,流比較模塊304可以(例如,從模塊122或222)接收由流管理器模塊300監(jiān)視的各個路徑的最小帶寬保證。只要業(yè)務流低于特定對的帶寬保證,分組引導模塊308可以根據(jù)第一優(yōu)先級(例如,高優(yōu)先級)對業(yè)務進行引導(例如,加標簽和/或路由)。然后,當該路徑上的業(yè)務流超過帶寬保證(例如,機會性業(yè)務)時,模塊308可以根據(jù)第二優(yōu)先級(例如,較低優(yōu)先級)引導業(yè)務??梢酝ㄟ^圖3的流310來指示由模塊300輸出的所有引導的(例如,路由和/或加標簽的)業(yè)務。
[0038]參考圖4,流程圖400示出引導的(例如,路由和/或加標簽的)流40 2 (例如,與310類似)可以如何使信息的各個分組被路由到不同的優(yōu)先級隊列(例如,404、408)中。到不同的優(yōu)先級隊列中的此類路由可以發(fā)生在網(wǎng)絡交換機(例如,108或208)中和/或各個主機計算設備(例如,102)的NIC(例如,118)中。能夠在圖4中看出,可以使作為低于帶寬保證被引導的信息的分組被放置到第一隊列QO(例如,高優(yōu)先級隊列)中,并且可以使作為超過帶寬保證被引導的信息的分組(例如,機會性業(yè)務)被放置到第二隊列Q2 (例如,較低的優(yōu)先級隊列)中。通過執(zhí)行此類優(yōu)先級加標簽和/或路由,如果網(wǎng)絡中存在備用帶寬,則可以允許機會性業(yè)務(例如,一旦其達到交換機108或208)行進或移動,這可以允許特定VM到VM對上的總體業(yè)務超過該對的帶寬保證。
[0039]流管理器模塊300可以在例如用于相同的租戶、應用、服務、分組的類型等等的相同的流內(nèi)不同地(例如,利用不同的優(yōu)先級)對信息的分組進行引導(例如,加標簽和/或路由)。相比于使用優(yōu)先級隊列對于不同的租戶、應用、服務、分組的類型等等簡單地實施不同的服務水平的各種其他解決方案,這可以提供附加的好處。因而,流管理器模塊300可以允許VM到VM對機會性地利用來自未完全地利用其帶寬保證的VM的集合的備用帶寬,以發(fā)送超過VM到VM對的帶寬保證的業(yè)務。
[0040]流管理器模塊300(例如,經(jīng)由模塊308)可以以各種方式來引導信息的分組。術(shù)語“引導”、“引導的”、“正在引導”等等通??梢灾傅氖腔谝龑狗纸M到達不同的目的地。加標簽和路由可以是引導的兩個特定示例。作為模塊300可以如何引導分組的第一示例,并且如圖1所示的,流管理器模塊124可以位于主機計算設備(例如,102)的管理程序(例如,116)中。流管理器模塊124可以監(jiān)視各個VM到VM路徑上的業(yè)務,例如,發(fā)送給第二VM(例如,105)的、出自第一VM(例如,110)的流。對于特定對,流管理器模塊124可以利用優(yōu)先級標簽(例如,高優(yōu)先級、低優(yōu)先級,等等)對分組加標簽。術(shù)語“標簽”、“加標簽的”、“加標簽”等等可以指的是利用編碼信息對分組(例如,分組中的數(shù)據(jù)比特)進行標記。可以以各種方式利用優(yōu)先級對分組進行標記。例如,可以將優(yōu)先級編碼為分組報頭,例如,IP報頭中的適當?shù)腄iffServ比特。作為另一個示例,管理程序116中的流管理器模塊124可以處理多路徑TCP連接(或其他多路徑傳送連接),并且可以基于優(yōu)先級將分組路由到連接的各個虛擬路徑中??梢砸耘c關(guān)于VM中的流管理器模塊在本文描述的多路徑TCP連接類似方式來實施此類多路徑連接。
[0041 ]在圖2的示例中,流