一種數據中心網絡帶寬保證方法及系統的制作方法
【專利摘要】本發明提出一種數據中心網絡帶寬保證方法及系統,該方法從租戶的請求信息中提取所示租戶的最小帶寬保證信息,由所述服務器節點記錄所述最小帶寬保證信息;所述數據中心中每個虛擬機與相應的遠端虛擬機通信,并組成虛擬機對,所述虛擬機所在的服務器節點獲取所述虛擬機對的最小帶寬保證信息a,所述遠端虛擬機所在的服務器節點獲取所述虛擬機對的最小帶寬保證信息b,將兩者中較小的最小帶寬保證信息作為所述虛擬機對間的數據流的保證帶寬;將所述虛擬機對間的每條數據流切分為多條子流,并為所述多條子流分配各自的優先級,分別限制每個虛擬機發送的所述多條子流的發送速率,根據每個子流的優先級分配與其優先級相對應的交換機端口隊列進行傳輸。
【專利說明】
-種數據中心網絡帶寬保證方法及系統
技術領域
[0001] 本發明設及網絡通信技術領域,特別設及一種數據中屯、網絡帶寬保證方法及系 統。
【背景技術】
[0002] 云計算數據中屯、是互聯網當前和未來的主要發展方向之一,其正逐步發展成為具 有重要戰略意義的新型產業,中國IDC圈最新發布的統計數據指出,2014年中國互聯網數據 中屯、的市場規模高達372.2億元,相較于2013年的增速為41.8%。
[0003] 現有技術條件下,云計算數據中屯、服務器硬件資源W虛擬機的形式提供給租戶使 用,租戶的應用程序運行于數據中屯、虛擬機中,并通過互連數據中屯、內部服務器節點的數 據中屯、網絡實現租戶虛擬機間的數據通信,云計算數據中屯、通過虛擬化技術實現服務器硬 件資源的抽象W及同一物理服務器上不同虛擬機間硬件資源的隔離和性能保證,即一方面 保證虛擬機的性能不低于某一性能下限,另一方面保證該虛擬機所獲得的性能不會受到同 一物理服務器上其它虛擬機的影響,例如,將某一處理器核綁定到租戶虛擬機或者將某一 段固定的內存空間分配給虛擬機并確保同一物理服務器上不同虛擬機所分配的內存地址 空間互不交疊。
[0004] 云計算數據中屯、中所有的虛擬機所產生的通信流量共享數據中屯、網絡帶寬資源, 盡管虛擬化技術可W實現服務器硬件資源的隔離和性能保證,現有技術背景下的云計算數 據中屯、無法有效地實現網絡帶寬資源的隔離和網絡性能保證,例如,Amazon EC2云平臺和 阿里云平臺中,僅僅保證租戶虛擬機訪問因特網時所能獲得的網絡帶寬(即數據中屯、網絡 出口帶寬),而不提供租戶虛擬機間的帶寬保證支持,數據中屯、網絡帶寬資源無監管式的共 享訪問,導致不同虛擬機所產生的通信數據流相互干擾,進而嚴重影響租戶應用程序的網 絡性能,例如,與運行于本地計算機集群系統相比,應用程序運行于Amazon EC2云計算數據 中屯、時所獲得的網絡吞吐量(帶寬)隨著應用的運行時間急劇波動,同時,大量數據中屯、應 用的網絡性能依賴于其所能獲得網絡帶寬,如數據備份和大數據分析處理等,因此,應用程 序所能獲得的網絡帶寬的波動,導致應用程序所獲得的網絡性能急劇波動,進而導致數據 中屯、應用程序的網絡性能無法得到保證,然而,為了滿足租戶的服務等級需求(SLA, Service Level Agreement),云計算數據中屯、需要為大量應用程序提供可預測的網絡性 能,即保證應用程序所獲得的網絡性能不低于其所要求的性能下限。
[0005] 考慮到大量數據中屯、應用的網絡性能依賴于其所能獲得的網絡帶寬,因此為了給 云計算數據中屯、租戶的應用程序提供可預測的網絡性能,本領域技術人員已經提出多種能 夠為云計算數據中屯、租戶提供最小帶寬保證的網絡帶寬資源共享方案,W保證租戶虛擬機 可W獲得的網絡帶寬不低于其所要求的最小帶寬保證值,從而為租戶的應用程序提供可預 測的網絡性能。
[0006] 虛擬機放置算法用于在滿足特定的資源約束條件下將租戶的虛擬機部署到云計 算數據中屯、的物理服務器,即對于任意一個租戶虛擬機,虛擬機放置算法確定其需要部署 到哪一臺物理服務器,資源約束用于確保某一物理服務器上所有虛擬機請求的計算資源的 總量不超過該物理服務器所提供的計算資源的總量,例如某一物理服務器上部署的所有虛 擬機請求的內存大小的總和不能超過該物理服務器所能提供的內存空間總量,為了滿足云 計算數據中屯、租戶的帶寬保證需求,虛擬機放置算法需要確保任意鏈路1上分配的保證帶 寬的總和不超過鏈路1的帶寬容量,目
其中N為通信數據流經鏈路1路由的 "源-目的"虛擬機對的數目,Bi為虛擬機對i請求的保證帶寬,Cl為鏈路1的帶寬容量。
[0007]靜態資源預留方案通過將指定容量的帶寬資源分配給租戶虛擬機的方式保證租 戶虛擬機可W獲得的最小可用帶寬不小于其所請求的保證帶寬,圖1給出了靜態資源預留 方案的實例,圖1中,鏈路L的帶寬容量為IGbps(約為1000Mbps),該鏈路上存在Ξ條數據流, 假設Ξ條數據流屬于不同的通信虛擬機對,同時假設給運Ξ條數據流F1、F2和F3分配的保 證帶寬分別為200Mbps、100Mbps和300Mbps,那么,靜態資源預留技術下,每條數據流可W固 定地獲得為其分配的保證帶寬,即分別為200Mbps、100Mbps和300Mpbs,雖然靜態資源預留 方案可W為租戶提供最小帶寬保證支持,然而該方案的實現是W犧牲網絡帶寬利用率為代 價的,運一現象主要由W下兩方面的原因造成:1)某一鏈路的未分配帶寬無法被該鏈路上 的通信數據流使用,W圖1為例,圖中鏈路L的已分配帶寬的總和為600Mbps,因此,鏈路L的 未分配帶寬為400Mbps,此時,即使其中某條數據流的帶寬需求超過為其保證的帶寬,該部 分未分配帶寬也無法被該數據流使用,例如,假設數據流F1的帶寬需求為250Mbps,由于為 數據流F1分配的帶寬為200Mbps,所WF1可W獲得的帶寬僅為200Mbps,因此,圖1所示情形 下鏈路L的鏈路帶寬資源利用率僅為60%; 2)分配給某一租戶的帶寬無法被其它租戶使用, 即使該租戶并未充分地使用為其分配的帶寬資源,W圖1為例,假設數據流F3的需求帶寬僅 為100Mbps,由于為數據流F3分配的保證帶寬為300Mbps,因此,數據流F3的未使用帶寬為 200Mbps,然而,由于運部分帶寬固定地分配給數據流F3,所W運部分帶寬無法分配給其它 租戶使用,考慮到數據中屯、中租戶數據流具有突發特性,同時應用程序的平均帶寬遠低于 其峰值帶寬,因此,靜態資源預留方案嚴重降低了網絡帶寬的利用率。
[000引 在參考文獻l''Alan 化ieh,S;rikanth Kandula,A化ert Greenberg,化an曲oon Kim,and Bikas Saha.Sharing the data center network.In Proceedings of the 8th USENIX conference on Networked systems design and implementation.2011: 309- 322."中,Shieh等人提出數據中屯、中租戶虛擬機間通信數據流的帶寬隔離方案,不同于W TCP為代表的流級鏈路帶寬公平共享方案,該文獻提出的方案可W實現虛擬機級的鏈路帶 寬公平共享,然而,由于該文獻提出的帶寬共享方案缺乏接入許可控制機制,因此,該文獻 提出的方案僅能實現數據流間的帶寬隔離,而無法為數據中屯、"源-目的"虛擬機對間的通 信數據流提供最小帶寬保證支持,例如,將某一新的"源-目的"虛擬機對間的通信數據流經 鏈路1路由,會降低該鏈路上其它虛擬機對間通信數據流可獲得的帶寬,從而導致某些虛擬 機對間的通信數據流的帶寬低于其所請求的最小保證帶寬。
[0009]在參考文獻2''Vimalkuma;r J巧akuma;r,Mohammad Alizadeh,David Mazi紅es, Balaji Prabhakar,Albert G.Greenberg,Changhoon Kim.EyeQ:Practical Network Performance Isolation at the Edge. In Proceedings of the 10th USENIX conference on Networked Systems Design and Implementation. 2013:297-312中, Jeyakumar等人提出數據中屯、網絡性能隔離方案EyeQ,EyeQ通過實現于服務器端虛擬化管 理軟件化ypervisor)中的速率限制器控制每條虛擬機對間的通信數據流的發送速率,W實 現不同虛擬機對間數據流的帶寬隔離和帶寬保證的目的,由于EyeQ方案中數據流可W競爭 網絡空閑帶寬,因此EyeQ可W克服靜態資源預留方案中帶寬無法得到充分利用的問題,然 而,EyeQ要求數據中屯、網絡拓撲在網絡內部是沒有擁塞的,但是,由于當前仍然存在大量的 數據中屯、采用在網絡內部存在較大的過度訂閱(Oversubscription)比的網絡拓撲結構,因 此,EyeQ無法廣泛地部署到當前的數據中屯、中。
[0010] 在參考文獻3"Lucian Popa,Praveen 化lagandula,Sujata Banerjeejeffr巧 C.Mogul,Yoshio Turner,and Jose Renato Santos.BlasticSwitch:practical work- conserving bandwidth guarantees for cloud computing.In Proceedings of the ACM SIGCOMM conf erence. 2013 :351-362 中Popa等人提出拓撲無關的帶寬保證方案 ElasticSwitch,W克服上述EyeQ方案無法廣泛部署到現有數據中屯、網絡的缺陷,同樣地, ElasticSwitch采用實現于Hypervisor的速率限制器控制每條虛擬機對間通信數據流的發 送速率,同時,該速率限制器使用基于TCP-CUBIC的控制協議調整數據流的發送速率W競爭 網絡的空閑帶寬,因此,ElasticSwitch可W在實現最小帶寬保證的同時,克服靜態資源預 留方案帶來的低效帶寬利用問題,然而,由于需要競爭鏈路空閑帶寬,因此當鏈路上分配的 保證帶寬的總和接近鏈路容量時,帶寬爭用通常會導致部分租戶虛擬機所獲得的網絡帶寬 小于該虛擬機要求的最小帶寬保證值,即導致帶寬保證需求無法得到滿足,為了緩解帶寬 爭用對帶寬保證的影響,ElasticSwitch為所有鏈路預留部分帶寬空間,運部分帶寬不會W 保證帶寬的形式分配給租戶虛擬機,例如,該文獻中為每條鏈路保留10%的鏈路容量作為 預留帶寬空間,然而,預留部分帶寬空間會降低數據中屯、服務提供商同一時刻可W服務的 租戶數量,進而降低服務提供商的利潤。
[0011] 綜上所述,現有的技術存在或者無法有效地利用網絡帶寬,或者無法工作于常用 的數據中屯、網絡拓撲,或者降低服務提供商的收益等缺陷,因而現有的技術無法有效地為 云計算數據中屯、提供帶寬保證支持。
[0012] 與本發明相關的現有技術,如下所示:
[0013] 現有技術一,如圖9所示:保證分割模塊按照租戶的請求為虛擬機計算指定帶寬, 即需要保證的帶寬,比率分配模塊采用類似TCP的速率調整方法動態調整虛擬機的發送速 率,W實現帶寬保證和工作保持的特性。現有技術的不足:為了減少速率調整對帶寬保證的 影響,網絡中的鏈路需要保留部分帶寬作為保留帶寬,運部分帶寬不能W保證帶寬的形式 分配給租戶使用,因此降低了數據中屯、同一時刻可W服務的租戶數量,因而降低了數據中 屯、提供商的有效收益。
[0014] 現有技術二,如圖10所示:調度器根據虛擬機的QoS策略動態地調整每個虛擬機的 令牌桶隊列中的令牌數量,從而實現控制虛擬機發送速率的目的,進而達到各個虛擬機按 照QoS策略公平共享網絡資源的目的。現有技術的不足:該方案的目標是實現資源的公平共 享和隔離,而無法實現帶寬保證的目的,例如,假設某臺物理服務器中部署4臺虛擬機,每臺 虛擬機請求的保證帶寬為250Mbps,所有的虛擬機具有相同的權重,并且假設NIC的帶寬為 1000Mbps,那么,此時,每臺虛擬機獲得的帶寬為1000/4 = 250Mbps,可W滿足虛擬機的請求 帶寬,然而,假設另一臺虛擬機被部署到該服務器,此時,每臺虛擬機獲得的帶寬為1000/5 =200Mbps,從而無法滿足租戶的帶寬保證需求。
【發明內容】
[0015] 針對現有技術的不足,本發明提出一種數據中屯、網絡帶寬保證方法及系統。
[0016] 本發明提出一種數據中屯、網絡帶寬保證方法,包括:
[0017] 步驟1,從租戶的請求信息中提取所述租戶的最小帶寬保證信息,將所述最小帶寬 保證信息分發到相應的服務器節點,并由所述服務器節點記錄所述最小帶寬保證信息;
[001引步驟2,所述數據中屯、中每個虛擬機與相應的遠端虛擬機通信,并組成虛擬機對, 所述虛擬機所在的服務器節點獲取所述虛擬機對的最小帶寬保證信息a,所述遠端虛擬機 所在的服務器節點獲取所述虛擬機對的最小帶寬保證信息b,將所述最小帶寬保證信息a與 所述最小帶寬保證信息b進行比較,并將兩者中較小的最小帶寬保證信息作為所述虛擬機 對間的數據流的保證帶寬;
[0019] 步驟3,將所述虛擬機對間的每條數據流切分為多條子流,并為所述多條子流分配 各自的優先級,為每個虛擬機創建多個速率限制器,分別限制每個虛擬機發送的所述多條 子流的發送速率,根據每個子流的優先級分配與其優先級相對應的交換機端口隊列進行傳 輸。
[0020] 所述步驟1中,所述請求信息中包括所述租戶需求的虛擬機的數目、每個虛擬機需 求的硬件資源信息W及需要為每個所述虛擬機提供的最小保證帶寬信息。
[0021] 所述步驟2中通過虛擬化管理軟件記錄最小帶寬保證信息,其中所述虛擬化管理 軟件運行于服務器節點。
[0022] 所述步驟3中每條子流包括擁塞控制窗口并計算每條子流對應的RTT值;
[0023] 傳輸層協議為每條子流發送的數據段添加傳輸層序列號,所述傳輸層序列號用于 記錄數據段的發送順序;
[0024] 每條子流為所述數據段添加子流級序列號,所述子流級序列號用于記錄數據段在 每個子流內的發送順序。
[0025] 所述步驟3中所述速率限制器包括靜態速率限制器與動態速率限制器。
[00%]本發明還提出一種數據中屯、網絡帶寬保證系統,包括:
[0027]記錄最小帶寬保證信息模塊,用于從租戶的請求信息中提取所述租戶的最小帶寬 保證信息,將所述最小帶寬保證信息分發到相應的服務器節點,并由所述服務器節點記錄 所述最小帶寬保證信息;
[00%]獲取保證帶寬模塊,用于所述數據中屯、中每個虛擬機與相應的遠端虛擬機通信, 并組成虛擬機對,所述虛擬機所在的服務器節點獲取所述虛擬機對的最小帶寬保證信息a, 所述遠端虛擬機所在的服務器節點獲取所述虛擬機對的最小帶寬保證信息b,將所述最小 帶寬保證信息a與所述最小帶寬保證信息b進行比較,并將兩者中較小的最小帶寬保證信息 作為所述虛擬機對間的數據流的保證帶寬;
[0029]傳輸模塊,用于將所述虛擬機對間的每條數據流切分為多條子流,并為所述多條 子流分配各自的優先級,為每個虛擬機創建多個速率限制器,分別限制每個虛擬機發送的 所述多條子流的發送速率,根據每個子流的優先級分配與其優先級相對應的交換機端口隊 列進行傳輸。
[0030] 所述記錄最小帶寬保證信息模塊中,所述請求信息中包括所述租戶需求的虛擬機 的數目、每個虛擬機需求的硬件資源信息W及需要為每個所述虛擬機提供的最小保證帶寬 信息。
[0031] 所述獲取保證帶寬模塊中通過虛擬化管理軟件記錄最小帶寬保證信息,其中所述 虛擬化管理軟件位于服務器節點。
[0032] 所述傳輸模塊中每條子流包括擁塞控制窗口并計算每條子流對應的RTT值;
[0033] 傳輸層協議為每條子流發送的數據段添加傳輸層序列號,所述傳輸層序列號用于 記錄數據段的發送順序;
[0034] 所述子流級序列號用于記錄數據段在每個子流內的發送順序。
[0035] 所述傳輸模塊中所述速率限制器包括靜態速率限制器與動態速率限制器。
[0036] 由W上方案可知,本發明的優點在于:
[0037] 本發明能夠同時為云計算數據中屯、網絡應用提供帶寬保證支持,并有效地降低延 遲敏感型應用數據流的流完成時間。
[0038] 本發明在取得最小帶寬保證的同時不需要為任意鏈路預留帶寬空間,因此本發明 可W提高數據中屯、提供商的收益。
[0039] 與現有技術中的靜態資源預留方案不同,本發明通過低優先級子流競爭網絡中的 空閑帶寬,從而可W有效地利用網絡中的空閑帶寬資源W提高網絡帶寬的資源利用率,其 次,同現有技術中的EyeQ方案相比,本發明是拓撲無關的,即只要虛擬機放置算法保證任意 鏈路1上分配的保證帶寬的總和不超過該鏈路的容量,本發明可W工作于任意的網絡拓撲, 最后,與現有技術中的BlasticSwitch相比,本發明的帶寬保證需求由高優先級子流實現, 而用于實現網絡帶寬有效利用的低優先級子流的數據包不會影響高優先級子流數據包的 傳輸,因此,本發明不需要為任意鏈路預留帶寬空間,所W,本發明可W為數據中屯、網絡應 用提供精確的帶寬保證支持并有效地提高云數據中屯、服務提供商的收益。
【附圖說明】
[0040] 圖1為靜態資源預留方案實例圖;
[0041] 圖2為多租戶云數據中屯、架構圖;
[0042] 圖3為計算資源虛擬化抽象圖;
[0043] 圖4為數據通信實例圖;
[0044] 圖5為與某一虛擬機通信的虛擬機的數量更新流程圖;
[0045] 圖6為靜態速率控制器圖;
[0046] 圖7為令牌桶機制圖;
[0047] 圖8為優先級隊列圖;
[0048] 圖9為現有技術一的示例圖;
[0049] 圖10為現有技術二的示例圖;
[0050] 圖11為本發明系統結構圖。
【具體實施方式】
[0051] 本發明的目的在于克服現有的技術中靜態資源預留方案W及采用預留帶寬空間 機制實現帶寬保證方法所存在的缺陷,從而提供一種有效地數據中屯、網絡帶寬保證方法。
[0052] 為了實現上述目的,本發明提供了一種云計算數據中屯、網絡帶寬保證方法,該方 法包括:
[0053] 步驟1)、所述云計算數據中屯、網絡中,數據中屯、資源管理系統從租戶的請求信息 中提取租戶的最小帶寬保證信息;
[0054] 步驟2)、所述數據中屯、資源管理系統將最小帶寬保證信息分發到相應的服務器, 并由服務器節點根據記錄該最小帶寬保證信息;
[0055] 步驟3)、所述數據中屯、中每個虛擬機與相應的遠端虛擬機通信,并組成虛擬機對, 所述虛擬機所在的服務器節點獲取所述虛擬機對的最小帶寬保證信息a,所述遠端虛擬機 所在的服務器節點獲取所述虛擬機對的最小帶寬保證信息b。所述每個虛擬機所在的服務 器的虛擬化管理軟件獲得每個與該虛擬機通信的遠端虛擬機所在的服務器虛擬化管理軟 件記錄的該虛擬機對的最小帶寬保證信息;
[0056] 步驟4)、將所述最小帶寬保證信息a與所述最小帶寬保證信息b進行比較,并將兩 者中較小的最小帶寬保證信息作為所述虛擬機對間的數據流的保證帶寬。所述每個虛擬機 W該虛擬機所在的服務器的虛擬化管理軟件記錄的所述虛擬機對間數據流的保證帶寬和 所述虛擬機對的遠端虛擬機所在的服務器的虛擬化管理軟件記錄的所述虛擬機對間數據 流的保證帶寬中的較小者作為所述虛擬機對間數據流的保證帶寬;
[0057] 步驟5)、所述虛擬機中的傳輸層協議將每條數據流切分為多條子流,并為其分配 各自的優先級;
[0058] 步驟6)、所述服務器中為每個虛擬機創建多個速率限制器,分別限制該虛擬機發 送的高低優先級子流的發送速率;
[0059] 步驟7)、所述數據中屯、網絡中,不同優先級子流的數據包通過不同優先級的交換 機端口隊列傳輸。
[0060] 上述技術方案中,在所述的步驟1)中,每個租戶虛擬機的請求帶寬信息可W由租 戶的請求信息中直接獲得。即,租戶的請求信息中包含其所需求的虛擬機的數目、每個虛擬 機需求的硬件資源信息W及需要為每個通信虛擬機提供的最小保證帶寬信息。
[0061] 上述技術方案中,在所述的步驟2)中,本端虛擬機所在的服務器k的虛擬化管理軟 件記錄本端虛擬機i的最小帶寬保證信息Bi,遠端虛擬機j所在服務器的虛擬化管理軟件記 錄遠端虛擬機j的最小帶寬保證信息Bj。
[0062] 上述技術方案中,在所述的步驟3)中,本端虛擬機所在的服務器k的虛擬化管理軟 件根據本端虛擬機i的最小帶寬保證信息Bi和與該虛擬機通信的遠端虛擬機的數目的十算 本端虛擬機i到遠端虛擬機j之間數據流的最小保證帶寬信息Bi^j,計算公式如下:
[0063]
[0064] 同樣的,遠端虛擬機j所在服務器的虛擬化管理軟件計算遠端虛擬機j和本端虛擬 機i之間通信數據流的最小保證帶寬B戶1。
[0065] 上述技術方案中,所述的步驟3)中,虛擬機j所在服務器的虛擬化管理軟件將上述 最小保證帶寬B戶1通過網絡消息通告給虛擬機i所在的服務器k的虛擬化管理軟件。
[0066] 上述技術方案中,所述的步驟4)中服務器k根據虛擬機對i和j得到的本端和對端 數據流帶寬保證信息計算對應于該虛擬機對間數據流的最小保證帶寬,計算公式如下:
[0067] Bu=min(Bi^j,Bj4)
[0068] 上述技術方案中,所述的步驟5)包括:
[0069] 步驟5-1)傳輸層協議將每條數據連接切分為兩條子流。
[0070] 步驟5-2)所述的傳輸層協議將第一條子流設置為高優先級子流,并將第二條子流 設置為低優先級子流。
[0071] 步驟5-3)所述每條子流包含一個用于該連接的擁塞控制窗口并計算該子流對應 的RTT值。
[0072] 步驟5-4)所述的傳輸層協議將來自上層應用的數據優先發送到具有較大地擁塞 控制窗口和較小RTT值的子流。
[0073] 步驟5-5)所述的傳輸層協議為發送的數據段添加傳輸層序列號用于記錄數據段 的發送順序。
[0074] 步驟5-6)所述的每條子流為該子流發送的數據段添加子流級序列號,用于記錄數 據段在該子流內的發送順序。
[0075] 上述技術方案中,所述的步驟6)包括:
[0076] 步驟6-1)為了方便闡述本發明,本發明中W兩個速率限制器為例進行說明,所述 兩個速率限制器中,其中一個為靜態速率限制器,其限制對應虛擬機對間所有高優先級子 流的聚合速率為該虛擬機對間數據流的最小保證帶寬。所述高優先級子流的聚合發送速率 為該虛擬機對間所有高優先級子流的發送速率之和。
[0077] 步驟6-2)所述兩個速率限制器中,另外一個為動態速率限制器,其根據某種策略 動態的調整對應虛擬機對間所有低優先級子流的聚合發送速率。所述低優先級子流的聚合 發送速率為該虛擬機對間所有低優先級子流的發送速率之和。
[0078] 上述技術方案中,所述的步驟7)包括:
[0079] 步驟7-1)所述數據中屯、網絡中,所有交換設備的端口隊列配置為優先級隊列的工 作方式。
[0080] 步驟7-2)所述數據中屯、網絡中,高優先級子流的數據包通過交換機端口隊列的最 高優先級隊列傳輸。
[0081] 步驟7-3)所述數據中屯、網絡中,低優先級子流的數據包通過交換機端口隊列的次 最高優先級隊列傳輸。
[0082] 如圖11所述,本發明還提出一種數據中屯、網絡帶寬保證系統,包括:
[0083] 記錄最小帶寬保證信息模塊,用于從租戶的請求信息中提取所示租戶的最小帶寬 保證信息,將所述最小帶寬保證信息分發到相應的服務器節點,并由所述服務器節點記錄 所述最小帶寬保證信息;
[0084] 獲取保證帶寬模塊,用于所述數據中屯、中每個虛擬機與相應的遠端虛擬機通信, 并組成虛擬機對,所述虛擬機所在的服務器節點獲取所述虛擬機對的最小帶寬保證信息a, 所述遠端虛擬機所在的服務器節點獲取所述虛擬機對的最小帶寬保證信息b,將所述最小 帶寬保證信息a與所述最小帶寬保證信息b進行比較,并將兩者中較小的最小帶寬保證信息 作為所述虛擬機對間的數據流的保證帶寬;
[0085] 傳輸模塊,用于將所述虛擬機對間的數據流切分為多條子流,并為所述多條子流 分配各自的優先級,為每個虛擬機創建多個速率限制器,分別限制每個虛擬機發送的所述 多條子流的發送速率,根據每個子流的優先級分配與其優先級相對應的交換機端口隊列進 行傳輸。
[0086] 所述記錄最小帶寬保證信息模塊中,所述請求信息中包括所述租戶需求的虛擬機 的數目、每個虛擬機需求的硬件資源信息W及需要為每個所述虛擬機提供的最小保證帶寬 信息。
[0087] 所述獲取保證帶寬模塊中通過虛擬化管理軟件記錄最小帶寬保證信息,其中所述 虛擬化管理軟件位于服務器節點。
[0088] 所述傳輸模塊中每條子流包括擁塞控制窗口并計算每條子流對應的RTT值;
[0089] 傳輸層協議為每條子流發送的數據段添加傳輸層序列號,所述傳輸層序列號用于 記錄數據段的發送順序;
[0090] 每條子流為所述數據段添加子流級序列號,所述子流級序列號用于記錄數據段在 每個子流內的發送順序。
[0091] 所述傳輸模塊中所述速率限制器包括靜態速率限制器與動態速率限制器。
[0092] 下面結合附圖和【具體實施方式】對本發明加 W說明。
[0093] 在對本發明方法的實現過程進行說明之前,首先對本發明的應用環境進行說明, 本發明的方法主要適用于多租戶和多應用共享的云計算數據中屯、。
[0094] 圖2給出了可W應用本發明的多租戶云計算數據中屯、的架構示意圖,從該圖可W 看出,租戶向數據中屯、資源管理系統提交請求信息,W請求一定量的計算資源和相應的保 證帶寬。數據中屯、資源管理系統在云計算數據中屯、基礎設施中為租戶分配滿足該租戶請求 的硬件資源,并在租戶請求完成后釋放為該租戶分配的硬件資源,在進行硬件資源分配時, 數據中屯、資源管理系統需要確保任意鏈路1上分配的保證帶寬的總和不超過該鏈路1的帶 寬容量,如果數據中屯、的硬件資源無法滿足當前租戶的請求,則數據中屯、管理系統拒絕該 租戶請求。
[00M]云計算數據中屯、利用虛擬機技術將數據中屯、服務器硬件資源W虛擬機的形式提 供給租戶使用,圖3給出了計算資源虛擬化抽象的示意圖,從該圖可W看出,服務器中的虛 擬化管理軟件化ypervisor)管理該服務器的所有硬件資源,并提供給上層虛擬機使用,虛 擬機通過Hypervisor實現對硬件資源的使用,租戶應用運行于其所租賃的虛擬機中。
[0096] 下面結合圖4、圖5、圖6、圖7和圖8對本發明進行說明,如下所示:
[0097] 租戶的應用程序運行于租戶租賃的虛擬機中,發送端虛擬機中的應用程序通過虛 擬機中的操作系統提供的套接口層編程接口建立與目的端虛擬機中的應用程序的數據連 接,發送端虛擬機中的應用程序通過虛擬機中的操作系統提供的套接口層編程接口將數據 發送到該操作系統的傳輸層協議。
[0098] 虛擬機中的操作系統采用的傳輸層協議為擴展的TCP化xtensive TCP,E-TCP)協 議,E-TCP協議將虛擬機操作系統傳輸層中的每條TCP連接切分為兩條TCP子流(subflow): subflowl和subflow2,E-TCP協議通過將每條子流的sock結構體中的tos域設置為不同的取 值的方式將兩條子流設置為不同的優先級,其中所述subflowl為具有較高優先級的子流, 所述subflow2為具有較低優先級的子流,發送端虛擬機操作系統的E-TCP協議將應用程序 發送的所有數據分發到兩條子流,并分別通過兩條子流傳輸到目的端虛擬機操作系統的E- TCP協議,最后,目的端操作系統的E-TCP協議將收到數據按序提交到上層的應用程序。
[0099] E-TCP的每條子流均包含一個屬于該子流的擁塞控制窗口,同時,該子流獨立地測 量該子流的RTT值,E-TCP協議將應用程序傳輸的數據發送到具有較大的擁塞控制窗口和較 小的RTT測量值的子流,W將應用程序傳輸的數據分發到兩條子流。
[0100] E-TCP協議發送的每一個數據段包含兩個序列號:socket級序列號和子流級序列 號,所述socket級序列號用于標識該數據段由應用程序的發送順序;所述子流級序列號用 于標記該數據段在發送該數據段的子流內的發送順序,另外,所述子流級序列號用于標識 該子流內的數據包的亂序傳輸,當某一子流內部出現數據包亂序傳輸時,發送端的E-TCP協 議根據某種策略減少該子流的擁塞控制窗口的大小。
[0101] E-TCP協議將每條子流內的數據段傳輸到虛擬機操作系統的IP層協議,IP層協議 構建要發送數據的IP數據包,同時,IP層協議根據每條子流的優先級設置IP數據包包頭信 息中的ToS域的值,W將發送的IP數據包設置為相應的優先級,即高優先級子流的數據包設 置為高優先級,而低優先級子流的數據包設置為低優先級。
[0102] 每臺服務器的虛擬化管理軟件化ypervisor)中記錄該服務器中運行的虛擬機的 數目、每個虛擬機要求的最小保證帶寬,W及與每個虛擬機通信的虛擬機數目。
[0103] 云計算數據中屯、中,租戶的請求信息包括其所要求的虛擬機數目、每個虛擬機的 資源需求信息(如該虛擬機需要多少個處理器核W及需要多大的內存空間等)W及每個虛 擬機的最小保證帶寬,因此,所述每個虛擬機要求的最小保證帶寬可W由數據中屯、資源管 理系統從租戶的請求信息中直接獲得。
[0104] 服務器的虛擬化管理軟件記錄的信息如表1所示。
[0105]
[0106] 表1
[0107] 如表1所述,該服務器中當前包含的虛擬機的數目為N,虛擬機實例的標識如上表 中第一列所示,本端虛擬機所在服務器的虛擬化管理軟件記錄該虛擬機要求的最小保證帶 寬信息如表中第二列數據所示。上表中,分別與N個虛擬機通信的虛擬機對的數目為Pi、P2··· Pn,W上表為例,本端虛擬機1所在的服務器的虛擬化管理軟件記錄的與虛擬機1通信的遠 端虛擬機的數目為Pi。
[0108] 對于某一通信虛擬機一本端虛擬機i-虛擬機i所在服務器的Hypervisor根據虛 擬機i請求的保證帶寬Bi和與該虛擬機通信的遠端虛擬機對的數目Pi計算的與該虛擬機i通 信的每一個虛擬機對一本端虛擬機i和遠端虛擬機j-的保證帶寬
如表中第Ξ 列數據所示。
[0109] 同上所述,虛擬機j所在的服務器的虛擬化管理軟件計算并記錄的該虛擬機對一 虛擬機j和虛擬機i-的保證帶寬為同時,假設虛擬機i為源端虛擬機(即數據的發送 端),虛擬機j為目的端虛擬機(即數據的接收端),虛擬機i所在服務器的hypervisor將其記 錄的81-^直傳輸到虛擬機j所在服務器的hypervisor,同時虛擬機j所在服務器的 hypervisor將其記錄的Bj~^i值傳輸到虛擬機i所在服務器的hypervisor,虛擬機i和虛擬機j 所在服務器的hypervisor分別基于神郵值計算虛擬機i和虛擬機j之間通信數據流的 最小保證帶寬Bu=min(Bi-j,Bw),并記錄該最小保證帶寬值,如上表中第四列數據所示。
[0110] 服務器的Hypervisor為每個通信虛擬機對建立兩個速率限制器:靜態速率限制器 和動態速率限制器,所述速率限制器接收來自虛擬機操作系統IP協議的數據包,其中高優 先級子流的數據包傳輸到靜態速率限制器,而低優先級子流的數據包傳輸到動態速率限制 器。對于通信虛擬機對一虛擬機i和虛擬機j-假設虛擬機i為本端虛擬機,虛擬機j為遠端 虛擬機,上述應用于該對虛擬機的靜態速率限制器調整由虛擬機i發送到虛擬機j的數據流 中所有高優先級子流的數據包的聚合發送速率為上述計算得到的該虛擬機對的最小保證 帶寬值,動態速率限制器根據某種策略調整由虛擬機i發送到虛擬機j的數據中所有低優先 級子流的數據包的聚合發送速率,上述高優先級的數據包的聚合發送速率指的是由虛擬機 i到虛擬機j的所有高優先級子流的數據包的發送速率的總和,類似地,上述低優先級的數 據包的聚合發送速率指的是由虛擬機i到虛擬機j的所有低優先級子流的數據包的發送速 率的總和,所述動態速率限制器直接將低優先級子流的數據包發送到網絡接口卡驅動程序 的隊列,而不進行速率調整。
[01川服務器hypervisor中靜態速率限制器的結構如圖6所示,該速率限制器所控制的 虛擬機中所有應用程序的高優先級子流的數據包均通過該速率控制器控制,同時,該速率 限制器控制所有高優先級子流的數據包的聚合發送速率為該通信虛擬機對的最小保證帶 見。
[0112]上述靜態速率限制器通過基于令牌桶的機制實現速率控制,如圖7所示,靜態速率 限制器包含一個數據包隊列用于緩存接收虛擬機發出的數據包,當靜態速率限制器接收到 來自虛擬機發送的數據包時,如果數據包緩存隊列中存在剩余空間,該數據包被緩存到該 數據包緩存隊列的尾端,否則,如果數據包緩存隊列已滿,則丟棄新到達的數據包,令牌桶 機制中,每個時間周期內產生一個新的令牌,該時間周期值由需要控制的數據包發送速率 確定,傳輸數據包時,假設待傳輸的數據包的大小為K(單位為比特),如果當前令牌桶中總 令牌的數量大于或者等于κ,則發送該數據包,并相應的減少令牌桶中令牌的數量,如果當 前令牌桶中令牌的總數量小于待傳輸數據包的大小Κ,則等待系統產生足夠的令牌后再發 送該數據包,上述靜態速率限制器中令牌桶的容量為S,用于控制數據突發,當產生新的令 牌時,如果當前令牌桶中令牌的數目為S,則丟棄新到達的令牌,否則,將新產生的令牌放入 令牌桶中,并相應地更新令牌桶中令牌的總數量,假設靜態速率限制器控制的虛擬機對的 最小保證帶寬為Abps,即靜態速率限制器調整每秒發送A比特的數據,那么,產生令牌的時 間周期為1/A秒,即每1/A秒產生一個新的令牌,靜態速率限制器將要傳輸的數據包發送到 服務器網絡接口卡的驅動程序的傳輸隊列,并通過網絡接口卡發送到數據中屯、網絡中。
[0113] 網絡中,所有交換設備的端口隊列均配置為優先級工作方式,如圖8所示,交換設 備的每個端口中包含多個虛擬隊列,當交換設備端口隊列配置為優先級工作方式時,每個 隊列被賦予一個不同的優先級,當交換設備轉發數據包時,其首先轉發具有較高優先級的 隊列中的數據包,只有當所有比該隊列的優先級具有更高優先級的隊列中沒有數據包時才 會發送該隊列中的數據包,W圖8為例,圖中所示交換設備的每個端口包含3個優先級隊列, 分別為最高優先級隊列、次高優先級隊列和最低優先級隊列,當有數據包發送時,該交換設 備首先發送最高優先級隊列中的數據包,只有當最高優先級隊列為空時,交換設備才會發 送次高優先級隊列中的數據包,同時,只有當最高優先級隊列和次高優先級隊列均為空時, 交換設備才會發送最低優先級隊列中的數據包。
[0114] 當數據包經由網絡傳輸時,交換設備根據數據包的優先級信息將不同優先級的數 據包經由該交換設備的不同端口隊列傳輸,所述數據包的優先級信息由數據包IP頭中的 ToS域標識,其中高優先級子流的數據包經由某一具有較高優先級的端口隊列傳輸,而低優 先級子流的數據包經由某一具有較低優先級的端口隊列傳輸。
[0115] 數據包到達接收端服務器的網卡,該數據包經由該服務器的Hypervisor傳輸到目 的虛擬機并進一步傳輸到該虛擬機操作系統的IP層協議,目的虛擬機操作系統的IP層協議 將數據包傳輸到E-TCP協議,E-TCP協議根據數據包的不同優先級將數據包傳輸到不同的子 流,即高優先級子流的數據包傳輸到高優先級子流,而低優先級子流的數據包傳輸到低優 先級子流,最后E-TCP將收到的數據包按序提交到接收端虛擬機中的應用程序。
[0116] 最后所應說明的是,W上實施例僅用于說明本發明的技術方案而非限制。盡管參 照實施例對本發明進行了詳細說明,本領域的普通技術人員應當理解,對本發明的技術方 案進行修改或者等同替換,都不脫離本發明技術方案的精神和范圍,其均應涵蓋在本發明 的權利要求范圍當中。
【主權項】
1. 一種數據中心網絡帶寬保證方法,其特征在于,包括: 步驟1,從租戶的請求信息中提取所述租戶的最小帶寬保證信息,將所述最小帶寬保證 信息分發到相應的服務器節點,并由所述服務器節點記錄所述最小帶寬保證信息; 步驟2,所述數據中心中每個虛擬機與相應的遠端虛擬機通信,并組成虛擬機對,所述 虛擬機所在的服務器節點獲取所述虛擬機對的最小帶寬保證信息a,所述遠端虛擬機所在 的服務器節點獲取所述虛擬機對的最小帶寬保證信息b,將所述最小帶寬保證信息a與所述 最小帶寬保證信息b進行比較,并將兩者中較小的最小帶寬保證信息作為所述虛擬機對間 的數據流的保證帶寬; 步驟3,將所述虛擬機對間的每條數據流切分為多條子流,并為所述多條子流分配各自 的優先級,為每個虛擬機創建多個速率限制器,分別限制每個虛擬機發送的所述多條子流 的發送速率,根據每個子流的優先級分配與其優先級相對應的交換機端口隊列進行傳輸。2. 如權利要求1所述的數據中心網絡帶寬保證方法,其特征在于,所述步驟1中,所述請 求信息中包括所述租戶需求的虛擬機的數目、每個虛擬機需求的硬件資源信息以及需要為 每個所述虛擬機提供的最小保證帶寬信息。3. 如權利要求1所述的數據中心網絡帶寬保證方法,其特征在于,所述步驟2中通過虛 擬化管理軟件記錄最小帶寬保證信息,其中所述虛擬化管理軟件運行于服務器節點。4. 如權利要求1所述的數據中心網絡帶寬保證方法,其特征在于,所述步驟3中每條子 流包括擁塞控制窗口并計算每條子流對應的RTT值; 傳輸層協議為每條子流發送的數據段添加傳輸層序列號,所述傳輸層序列號用于記錄 數據段的發送順序; 每條子流為所述數據段添加子流級序列號,所述子流級序列號用于記錄數據段在每個 子流內的發送順序。5. 如權利要求1所述的數據中心網絡帶寬保證方法,其特征在于,所述步驟3中所述速 率限制器包括靜態速率限制器與動態速率限制器。6. -種數據中心網絡帶寬保證系統,其特征在于,包括: 記錄最小帶寬保證信息模塊,用于從租戶的請求信息中提取所述租戶的最小帶寬保證 信息,將所述最小帶寬保證信息分發到相應的服務器節點,并由所述服務器節點記錄所述 最小帶寬保證信息; 獲取保證帶寬模塊,用于所述數據中心中每個虛擬機與相應的遠端虛擬機通信,并組 成虛擬機對,所述虛擬機所在的服務器節點獲取所述虛擬機對的最小帶寬保證信息a,所述 遠端虛擬機所在的服務器節點獲取所述虛擬機對的最小帶寬保證信息b,將所述最小帶寬 保證信息a與所述最小帶寬保證信息b進行比較,并將兩者中較小的最小帶寬保證信息作為 所述虛擬機對間的數據流的保證帶寬; 傳輸模塊,用于將所述虛擬機對間的每條數據流切分為多條子流,并為所述多條子流 分配各自的優先級,為每個虛擬機創建多個速率限制器,分別限制每個虛擬機發送的所述 多條子流的發送速率,根據每個子流的優先級分配與其優先級相對應的交換機端口隊列進 行傳輸。7. 如權利要求6所述的數據中心網絡帶寬保證系統,其特征在于,所述記錄最小帶寬保 證信息模塊中,所述請求信息中包括所述租戶需求的虛擬機的數目、每個虛擬機需求的硬 件資源信息以及需要為每個所述虛擬機提供的最小保證帶寬信息。8. 如權利要求6所述的數據中心網絡帶寬保證系統,其特征在于,所述獲取保證帶寬模 塊中通過虛擬化管理軟件記錄最小帶寬保證信息,其中所述虛擬化管理軟件位于服務器節 點。9. 如權利要求6所述的數據中心網絡帶寬保證系統,其特征在于,所述傳輸模塊中每條 子流包括擁塞控制窗口并計算每條子流對應的RTT值; 傳輸層協議為每條子流發送的數據段添加傳輸層序列號,所述傳輸層序列號用于記錄 數據段的發送順序; 每條子流為所述數據段添加子流級序列號,所述子流級序列號用于記錄數據段在每個 子流內的發送順序。10. 如權利要求6所述的數據中心網絡帶寬保證系統,其特征在于,所述傳輸模塊中所 述速率限制器包括靜態速率限制器與動態速率限制器。
【文檔編號】H04L12/917GK105871751SQ201610177881
【公開日】2016年8月17日
【申請日】2016年3月25日
【發明人】李龍, 付斌章, 陳明宇, 張立新
【申請人】中國科學院計算技術研究所