管理器模塊(例如,224、225)可以位于主機計算設(shè)備的VM (例如,210、212、214、205,等等)中。如上所述,可以通過多路徑TCP連接或其他類型的多路徑傳送協(xié)議來部分地實施流管理器模塊功能的一部分。每個多路徑連接可以具有許多虛擬路徑,其中每個虛擬路徑可以與特定優(yōu)先級(例如,高優(yōu)先級和較低優(yōu)先級)相關(guān)聯(lián)。每個虛擬路徑然后可以與硬件交換機208中的特定優(yōu)先級隊列(例如,用于高優(yōu)先級的QO和用于較低優(yōu)先級的Ql)相關(guān)聯(lián)。對于特定VM到VM對,流管理器模塊224可以基于路徑中的流是否已經(jīng)超過用于該對的帶寬保證來將分組路由到各種虛擬路徑中。在一些示例中,高優(yōu)先級虛擬路徑與低于帶寬保證的業(yè)務(wù)相關(guān)聯(lián),并且因此高優(yōu)先級虛擬路徑可以(例如,由模塊222)進(jìn)行速率限制,如上所述。
[0042]不管對于各個VM到VM對如何對業(yè)務(wù)進(jìn)行引導(dǎo)(例如,路由和/或加標(biāo)簽),業(yè)務(wù)分組可以利用特定標(biāo)簽或經(jīng)由特定虛擬路徑到達(dá)交換機(例如,108或208)。基于這些指定,交換機可以將分組放置在交換機的適當(dāng)優(yōu)先級隊列中。然后,可以根據(jù)交換機的優(yōu)先級方案來處理分組。
[0043]在一些示例中,可以將在本文描述的解決方案擴(kuò)展為實施各種公平方案以將備用帶寬公平地分配給各個VM到VM對。實施公平性例如可以阻止特定租戶、VM或者VM到VM對消耗網(wǎng)絡(luò)中的整個備用帶寬。作為第一公平性示例,圖5示出流管理器模塊300可以根據(jù)優(yōu)先級對信息的分組進(jìn)行引導(dǎo)(例如,路由和/或加標(biāo)簽)的示例性方案的流程圖500。在該示例中,可以使用多于兩個優(yōu)先級隊列(例如,優(yōu)先級隊列QO 504、Q1 506和Q2 508)。在該示例中并且參考圖1和圖2,交換機108和/或208可以包括三個優(yōu)先級隊列(例如,Q0、Q1和Q2)。返回到圖5,能夠看出,公平方案包括用于機會性業(yè)務(wù)(例如,已經(jīng)超過帶寬保證的業(yè)務(wù))的兩個隊列(例如,Ql和Q2)。更具體地,用于機會性業(yè)務(wù)的第一隊列(例如,Ql)可以用于對網(wǎng)絡(luò)擁塞作出響應(yīng)的業(yè)務(wù),并且第二隊列(例如,Q2)可以用于對網(wǎng)絡(luò)擁塞無響應(yīng)的業(yè)務(wù)。隊列Ql和Q2兩者都可以具有與Q0、用于遵守帶寬保證的業(yè)務(wù)的隊列相比較低的優(yōu)先級。
[0044]例如,如果業(yè)務(wù)根據(jù)被設(shè)計為適于網(wǎng)絡(luò)擁塞的數(shù)據(jù)傳送協(xié)議(例如,TCP)進(jìn)行行進(jìn),則業(yè)務(wù)可以對網(wǎng)絡(luò)擁塞作出響應(yīng)。當(dāng)網(wǎng)絡(luò)擁塞(例如,由分組丟失、顯式擁塞通知或ECN,等等所指示的)時,TCP協(xié)議可以限制更多業(yè)務(wù)被發(fā)送。例如,如果業(yè)務(wù)根據(jù)不考慮網(wǎng)絡(luò)擁塞的數(shù)據(jù)傳送協(xié)議(例如,UDP)行進(jìn),或者如果業(yè)務(wù)經(jīng)由惡意流(例如,惡意TCP流)行進(jìn),則業(yè)務(wù)可以對網(wǎng)絡(luò)擁塞無響應(yīng)。甚至當(dāng)網(wǎng)絡(luò)擁塞時,UDP協(xié)議可以繼續(xù)盡可能多地發(fā)送分組。因而,在一個特定示例中,QO可以保持遵守帶寬保證的業(yè)務(wù),Ql可以保持超過帶寬保證的TCP業(yè)務(wù),并且Q2可以保持超過帶寬保證的UDP業(yè)務(wù)。此類公平方案可以激勵租戶使用對擁塞作出響應(yīng)的傳送協(xié)議(例如,TCP)。
[0045]作為第二公平性示例,備用帶寬分配模塊(例如,在管理程序中或在VM中被實施)可以確定如何公平地向各個其他VM到VM對分配(來自第一 VM到VM路徑)的備用帶寬。備用帶寬分配模塊可以使用速率限制器來動態(tài)地增加各個其他VM到VM對上的超過(例如,由模塊122)分配給那些對的保證的流的速率。當(dāng)確定在網(wǎng)絡(luò)中存在很少擁塞或沒有擁塞時,備用帶寬分配模塊可以僅僅增加此類速率。備用帶寬分配模塊可以確定在其監(jiān)視的VM到VM對上是否存在任何備用帶寬,并且然后在各個VM到VM對之間公平地劃分備用帶寬。
[0046]備用帶寬分配模塊可以基于各個VM到VM對的帶寬保證(例如,與其成比例地)在各個VM到VM對之間劃分備用帶寬。例如,假定第一 VM到VM對(例如,從VM X到VM Y)具有200Mbps的最小帶寬,第二VM到VM對(例如,從VM Z到VM T)具有10Mbps的最小帶寬,并且兩個對都共享同一網(wǎng)絡(luò)路徑。備用帶寬分配模塊可以根據(jù)2:1比率來向第一對和第二對分配備用帶寬。備用帶寬分配模塊因此可以使用加權(quán)方案來分配備用帶寬,其可以實施公平性的水平并且可以阻止特定對消耗所有備用帶寬。
[0047]在一些示例中,可以將在本文描述的解決方案擴(kuò)展為提供較低的等待時間保證,例如,擴(kuò)展為“高級”租戶、應(yīng)用,等等。高級租戶、應(yīng)用等等可能仍然使它們的業(yè)務(wù)受限于特定帶寬保證,但是與正常租戶相比,他們可能遇到較低的等待時間。換句話說,主機計算設(shè)備可以(例如,經(jīng)由模塊122、222,等等)仍然確保:對于高級和正常租戶、應(yīng)用等等遵守保證的總業(yè)務(wù)量不超過每個路徑上的帶寬保證。正常租戶、應(yīng)用等等的業(yè)務(wù)可以仍然以最小帶寬保證行進(jìn),但是可以仍然遇到一些延遲/等待時間。
[0048]圖6示出流管理器模塊300可以根據(jù)優(yōu)先級對信息的分組進(jìn)行引導(dǎo)(例如,路由和/或加標(biāo)簽)的示例性方案的流程圖600。在該示例中,可以使用超過兩個優(yōu)先級隊列(例如,優(yōu)先級隊列QP 604,QO 606和Ql 608)。在該示例中并且參考圖1和圖2,交換機108和/或208可以包括三個或更多優(yōu)先級隊列(例如,QP、Q0和Ql)。返回到圖6,能夠看出,該解決方案包括用于遵守帶寬保證的業(yè)務(wù)的兩個隊列(例如,QP和Q0)。更具體地,第一隊列(例如,QP)可以用于針對高級水平的租戶、應(yīng)用等等(例如,業(yè)務(wù)的租戶/應(yīng)用承諾的低等待時間處理)遵守帶寬保證的業(yè)務(wù)。第二隊列(例如,Q0)可以用于針對正常水平的租戶、應(yīng)用等等遵守帶寬保證的業(yè)務(wù)。替換地,對于特定VM到VM對,有保證的業(yè)務(wù)的一部分可以是低等待時間并且有保證的業(yè)務(wù)的一部分可以是正常的;以這種方式,用于VM到VM對的業(yè)務(wù)可以跨越在所有隊列(例如,QP、Q0、Q1)上。交換機例如可以在其處理存儲在QO中的分組之前處理存儲在QP中的分組,并且與Ql以及或許用于機會性業(yè)務(wù)的其他隊列相比,隊列QP和QO兩者都可以具有較高的優(yōu)先級。
[0049]在這些示例中,流管理器模塊300可以基于流是否超過最小帶寬保證并且基于租戶、應(yīng)用等等的水平(例如,正?;蛘吒呒?來對信息的分組進(jìn)行引導(dǎo)(例如,路由和/或加標(biāo)簽)。能夠在圖6中看出,可以使作為低于帶寬保證被引導(dǎo)(例如,加標(biāo)簽和/或路由)并且與高級租戶、應(yīng)用等等相關(guān)聯(lián)的或者通常被確定為低等待時間業(yè)務(wù)的信息的分組被放置到第一隊列QP(例如,最高的優(yōu)先級隊列)中,并且可以使作為低于帶寬保證被引導(dǎo)(例如,加標(biāo)簽和/或路由)并且與正常租戶、應(yīng)用等等相關(guān)聯(lián)的或者通常被確定為不是低等待時間的信息的分組被放置到第二隊列QO(例如,較高的優(yōu)先級隊列)中??梢允棺鳛槌^帶寬保證被引導(dǎo)(例如,加標(biāo)簽和/或路由)的信息的分組(例如,機會性業(yè)務(wù))被放置到另一個隊列Ql(例如,較低的優(yōu)先級隊列)中。通過執(zhí)行此類優(yōu)先級引導(dǎo)(例如,加標(biāo)簽和/或路由),如果網(wǎng)絡(luò)中存在備用帶寬,則可以允許機會性業(yè)務(wù)(例如,一旦其到達(dá)交換機108或者208)行進(jìn)或者移動,并且尚級租戶、應(yīng)用等等可以體驗最佳性能。
[0050]圖7是使用優(yōu)先級進(jìn)行工作保持的帶寬保證的示例性方法700的流程圖。以下參考可以與圖1和/或圖2的主機計算設(shè)備102、104、106、202、204和/或206類似的通用主機計算設(shè)備來描述方法700的執(zhí)行。各種其它適當(dāng)?shù)挠嬎阍O(shè)備一一例如圖8的主機計算設(shè)備800可以執(zhí)行方法700??梢砸源鎯υ谥T如存儲介質(zhì)820之類的機器可讀存儲介質(zhì)上的可執(zhí)行指令的形式,和/或電子電路的形式來實施方法700。在本公開的替代實施例中,可以基本上并行地或以與圖7中示出的順序相比不同的順序來執(zhí)行方法700的一個或多個步驟。在本公開的替代實施例中,方法700可以包括與在圖7中示出的步驟相比更多或更少的步驟。在某些實施例中,方法700的步驟中的一個或多個可以在某些時候是持續(xù)的和/或可以重復(fù)。
[0051]方法700可以開始于步驟702并且繼續(xù)到步驟704,其中主機計算設(shè)備可以(例如,經(jīng)由模塊122或222)確定VM到VM對帶寬保證。在步驟706,主機計算設(shè)備可以(例如,經(jīng)由模塊124或224)監(jiān)視VM到VM對上的分組的流。在步驟708,對于每個VM到VM對,主機計算設(shè)備可以(例如,經(jīng)由模塊124或224)將流與帶寬保證相比較。在步驟710,主機計算設(shè)備可以基于比較、根據(jù)優(yōu)先級(例如,經(jīng)由模塊124或224)對分組進(jìn)行引導(dǎo)(例如,路由和/或加標(biāo)簽)。在步驟712,主機計算設(shè)備可以基于帶寬保證(例如,經(jīng)由模塊122或222)對VM到VM對進(jìn)行速率限制。例如,可以對低于(多個)帶寬保證的業(yè)務(wù)進(jìn)行速率限制。在步驟714,分組的引導(dǎo)(例如,路由和/或加標(biāo)簽)可以(例如,在硬件交換機中)使各個分組被放置到優(yōu)先級隊列中。在步驟716,此類優(yōu)先級隊列和/或硬件交換機可以處理分組的流,例如,在硬件交換機中實施特定優(yōu)先級方案。方法700可以最終繼續(xù)到步驟718,其中方法700可以停止。
[0052]圖8是使用優(yōu)先級進(jìn)行工作保持的帶寬保證的主機計算設(shè)備800的框圖。主機計算設(shè)備800可以是能夠經(jīng)由網(wǎng)絡(luò)與其他計算設(shè)備進(jìn)行通信并且能夠運行虛擬機的任何計算系統(tǒng)或計算設(shè)備??梢岳珀P(guān)于圖1和圖2的主機計算設(shè)備102、104、106、202、204、206來在以上描述關(guān)于各個主機計算設(shè)備的更多詳情。在圖8的實施例中,主機計算設(shè)備800包括處理器810和機器可讀存儲介質(zhì)820。
[0053]處理器810可以是適于調(diào)取和執(zhí)行存儲在機器可讀存儲介質(zhì)820中的指令的一個或多個中央處理單元(CPU)、微處理器和/或其他硬件設(shè)備。處理器810可以運行主機計算設(shè)備的各個組件和/或模塊,例如,管理程序(例如,116)和許多虛擬機(例如,11