專利名稱:數據中心間透明實時流量壓縮方法和系統的制作方法
技術領域:
本發明涉及計算機技術領域,特別涉及一種數據中心間透明實時流量壓縮方法和系統。
背景技術:
在量級為IOGbps的高速鏈路下,數據包的實時壓縮將面臨很大挑戰,下面分三個層面對實時壓縮的挑戰進行說明。(一)、在系統實現中,一般采用硬件加速設備輔助卸載(Offload)系統處理壓力,然而,作為外設的加速設備在參與系統交互時,將面臨巨額的系統開銷,例如I/o效率(包括PCIe帶寬利用效率、高延遲的設備寄存器訪存優化等)、操作系統開銷(包括系統調用開銷,內核態與用戶態數據包拷貝開銷等)。(二)、在通用多核平臺下,IOGbps量級線速處理需求必然導致并發設計。根據Amdahl定律,系統串行部分將最·終將制約系統的并發加速比。因此,優化并發設計至關重要。然而,目前部分壓縮卡驅動從硬件和驅動兩個層面均未能很好的應用于高速并發的處理場景。雖然增大待壓縮數據包長度可以優化壓縮設備的效率,但同時也增加了額外數據包的處理延。基于阻塞式的I/O通信模式不能充分駕馭通用處理器與加速設備之間的并發處理效率。(三)、在網絡設計層面,透明化壓縮設計需要滿足對稱式的壓縮/解壓縮部署。這帶來了如何最大程度利用應用特性,依據不同應用的數據冗余特性進行不同策略的壓縮處理的問題。一般為了優化壓縮帶寬和壓縮效率,采用多包聚集同時壓縮,但是潛在的IP網絡的不可靠性造成的丟包可能會同時影響多業務的TCP性能,因此優化丟包導致的性能損失也至關重要。設計時還要考慮如何自適應的進行控制。為了傳輸多包聚集同時壓縮后的數據包,還需要重新封裝報文頭部,但是傳統的tunnel模式導致的流單一特性可能會影響數據包在數據中心核心層的傳輸效率,因此如何設計高效的tunnel系統也至關重要。現有技術一般主要用于高延遲的傳輸鏈路,如衛星鏈路中。由于無數據中心間的高帶寬需求,因此沒有對壓縮引擎的系統開銷進行優化的專利和技術。現有的壓縮技術中,為了提高壓縮效率,采用了基于數據塊(block)的壓縮配置,多個數據包一起參與壓縮。采用虛擬鏈路方法實現數據包的透明壓縮,壓縮后的數據報文在虛擬鏈路中傳輸,壓縮解壓縮分別對應虛擬鏈路兩端,因此實現了透明壓縮。現有技術有如下缺點:(一)、現有基于block壓縮的壓縮技術雖然一定程度提高加速設備的壓縮效率,但是沒有細粒度的控制,這在一定程度上增加了丟包等異常對網絡性能的影響。例如可能同時影響到多個TCP流,或者同時影響到多個業務性能。此外,沒有細粒度的控制,很難挖掘不同TCP流和不同業務的數據冗余特性,導致壓縮效率有限。(二)、在數據中心核心網絡中,單一的虛擬鏈路可能導致高速流量不能充分駕馭基礎網絡。
(三)、沒有高吞吐量設計需求,因此很難體現系統開銷,尤其在基于通用多核的并行化平臺對應用加速中更難體現。萬兆(IOGbps)量級的高性能實時系統設計,需要優化系統開銷,尤其側重于高效的并行策略優化。
發明內容
本發明旨在至少解決現有技術中存在的技術問題之一。為此,本發明的一個目的在于提出一種數據中心間透明實時流量壓縮方法。本方法壓縮特定業務的冗余信息,充分挖掘數據中心間傳輸鏈路的帶寬利用率,優化系統開銷,靈活性好,效率高,性能優勢明顯。本發明的第二個目的在于提出一種數據中心間透明實時流量壓縮系統。為達到上述目的,本發明第一方面的實施例提出了一種數據中心間透明實時流量壓縮方法。包括如下步驟:對數據流進行基于流的細粒度壓縮,包括:根據數據流的端口屬性對所述數據流進行基于流劃分的對應的壓縮策略進行壓縮以獲得多個壓縮數據塊;根據所述多個壓縮數據塊的流類型,將多個流類型的壓縮數據塊分別通過不同的隧道同時傳輸,其中,采用批處理策略和局部緩沖池方法對所述壓縮數據塊進行傳輸。根據本發明實施 例的數據中心間透明實時流量壓縮方法采用了細粒度控制的優化策略,根據承載的應用屬性進行更細粒度的性能優化,壓縮特定業務的冗余信息,充分挖掘數據中心間帶寬資源,提高帶寬利用率,優化成本,減少不可靠網絡導致丟包現象的影響,提供了靈活性和性能優勢。優化輸性能。在數據中心網絡中,為了提高網絡傳輸效率和冗余,不同流數據包可以經過不同的路由路徑同時傳播,提高了傳播效率,優化系統開銷。在本發明的一個實施例中,所述隧道的量級與所述數據流的數據包的量級相等。優化了隧道設計。多隧道模式設計優化了限制,充分利用了數據中心網絡的帶寬。在本發明的一個實施例中,所述對數據流進行基于流的細粒度壓縮采用流水策略運轉,其中,中央處理器CPU接收請求壓縮隊列,有壓縮卡對所述請求壓縮隊列進行壓縮,并將壓縮后數據送入響應出隊隊列,所述中央處理器CPU獲取所述響應出隊隊列中的所述壓縮數據。采用流水策略可以實現CPU和壓縮卡同時高負荷的運作,充分挖掘通用多核CPU和壓縮卡的使用效率,從而避免空轉,達到降低系統性能的目的。在本發明的一個實施例中,利用所述中央處理器CPU和壓縮卡之間的緩沖系統,根據系統負載抖動幅度增加所述中央處理器CPU和壓縮卡之間的緩沖區大小。在本發明的一個實施例中,對所述請求壓縮隊列和所述響應出隊隊列進行輪詢操作。對請求壓縮隊列和響應出隊隊列進行輪詢操作,可以減少系統中斷開銷和系統切換開銷。在本發明的一個實施例中,還包括如下步驟:采用用戶態驅動的I/O模型對所述壓縮數據塊進行傳輸。可以優化系統調用開銷、內核態和用戶態之間的包拷貝通信開銷等,優化大包長應用下的拷貝過程帶來的CPU消耗和高速緩存污染問題,進而提高系統性能。本發明第二方面的實施例提出了一種數據中心間透明實時流量壓縮系統,包括壓縮處理裝置和流管理裝置。其中,壓縮處理裝置用于對數據流進行基于流的細粒度壓縮,其中,所述壓縮處理裝置根據數據流的端口屬性對所述數據流進行基于流劃分的對應的壓縮策略進行壓縮以獲得多個壓縮數據塊;流管理裝置用于根據所述多個壓縮數據塊的流類型,將多個流類型的壓縮數據塊分別通過不同的隧道同時傳輸,其中,采用批處理策略和局部緩沖池方法對所述壓縮數據塊進行傳輸。根據本發明實施例的數據中心間透明實時流量壓縮系統,采用了細粒度控制的優化策略,根據承載的應用屬性進行更細粒度的性能優化,壓縮特定業務的冗余信息,充分挖掘數據中心間帶寬資源,提高帶寬利用率,優化成本,減少不可靠網絡導致丟包現象的影響,提供了靈活性和性能優勢。優化輸性能。在數據中心網絡中,為了提高網絡傳輸效率和冗余,不同流數據包可以經過不同的路由路徑同時傳播,提高了傳播效率,優化系統開銷。在本發明的一個實施例中,所述隧道的量級與所述數據流的數據包的量級相等。優化了隧道設計。多隧道模式設計優化了限制,充分利用了數據中心網絡的帶寬。在本發明的一個實施例中,所述壓縮處理裝置對所述數據流進行基于流的細粒度壓縮采用流水策略運轉,其中,所述壓縮處理裝置包括中央處理器CPU和壓縮卡,其中,所述中央處理器CPU用于接收請求壓縮隊列;所述壓縮卡用于對所述請求壓縮隊列進行壓縮,并將壓縮后數據送入響應出隊隊列;其中,所述中央處理器CPU還用于獲取所述響應出隊隊列中的所述壓縮數據。采用流水策略可以實現CPU和壓縮卡同時高負荷的運作,充分挖掘通用多核CPU和壓縮卡的使用效率,從而避免空轉,達到降低系統性能的目的。在本發明的一個實施例中,所述壓縮處理裝置還包括緩沖系統,其中,所述緩沖系統位于所述中央處理器CPU和壓縮卡之間,用于根據系統負載抖動幅度增加所述中央處理器CPU和壓縮卡之間的緩沖區大小。在本發明的一個實施例中,所述壓縮處理裝置還用于對所述請求壓縮隊列和所述響應出隊隊列進行輪詢操作。對請求壓縮隊列和響應出隊隊列進行輪詢操作,可以減少系統中斷開銷和系統切換開銷。在本發明的一個實施例中,所述流處理裝置采用用戶態驅動的I/O模型對所述壓縮數據塊進行傳輸。可以優化系統調用開銷、內核態和用戶態之間的包拷貝通信開銷等,優化大包長應用下的拷貝過程帶來的CPU消耗和高速緩存污染問題,進而提高系統性能。本發明的附加方面和優點將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過本發明的實踐了解到。
本發明的上述和/或附加的方面和優點從結合下面附圖對實施例的描述中將變得明顯和容易理解,其中:圖1是根據本發明實施例的數據中心間透明實時流量壓縮方法流程圖;圖2是根據本發明實施例的流水策略的流程圖;圖3是根據本發明實施例的系統的總體框圖;和圖4是根據本發明實施例的數據中心間透明實時流量壓縮系統的結構示意圖。
具體實施方式
下面詳細描述本發明的實施例,所述實施例的示例在附圖中示出,其中自始至終相同或類似的標號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描述的實施例是示例性的,僅用于解釋本發明,而不能理解為對本發明的限制。下面參考圖1描述根據本發明實施例的數據中心間透明實時流量壓縮方法,包括如下步驟:步驟SllO:對數據流進行基于流的細粒度壓縮,包括:根據數據流的端口屬性對數據流進行基于流劃分的對應的壓縮策略進行壓縮以獲得多個壓縮數據塊。在本發明的一個實施例中,對數據流進行基于流的細粒度壓縮采用流水策略運轉,其中,中央處理器CPU接收請求壓縮隊列,有壓縮卡對請求壓縮隊列進行壓縮,并將壓縮后數據送入響應出隊隊列,中央處理器CPU獲取響應出隊隊列中的壓縮數據。利用中央處理器CPU和壓縮卡之間的緩沖系統,根據系統負載抖動幅度增加中央處理器CPU和壓縮卡之間的緩沖區大小。其中,對請求壓縮隊列和響應出隊隊列進行輪詢操作。步驟S120:根據多個壓縮數據塊的流類型,將多個流類型的壓縮數據塊分別通過不同的隧道同時傳輸,其中,采用批處理策略和局部緩沖池方法對壓縮數據塊進行傳輸。
其中,隧道的量級與數據流的數據包的量級相等。還包括如下步驟:采用用戶態驅動的I/O模型對壓縮數據塊進行傳輸。下面以具體的例子來對根據本發明實施例的數據中心間透明實時流量壓縮方法進行說明。可以理解的是,下述說明僅出于示例目的,根據本發明的實施例不限于此。步驟S210:對數據流進行基于流的細粒度壓縮。其中,基于流(Flow)的細粒度壓縮設計如下:根據數據流的端口屬性對數據流進行劃分,并對不同劃分實施不同的壓縮策略,獲得多個壓縮數據塊。利用同一數據流內數據冗余特征相似的特征,來提高壓縮效率,優化帶寬。在多包聚合壓縮調高帶寬時,可以確保丟包對系統的影響范圍僅僅局限在一個TCP流內,避免多條流同時出發丟包,從而避免多個連接同時進入擁塞避免過程,進而優化整體傳輸性能。步驟S220:根據多個壓縮數據塊的流類型,將多個流類型的壓縮數據塊分別通過不同的隧道同時傳輸。單一的隧道模式將限制高流量在數據中心網絡中的傳播效率,為了提高網絡傳輸效率和冗余。在數據中心網絡中,不同流數據包可以經過不同的路由路徑同時傳播。具體地,基于多隧道(Tunnel)模式的虛擬傳輸鏈路設計采用類NAT的設計策略,利用端口和IP地址共同映射隧道的方式,減少IP地址的占用率。極端情況下,隧道的量級與數據流的數據包的量級相等,優化了隧道設計。多隧道模式設計優化了限制,充分利用了數據中心網絡的帶寬。為了優化萬兆量級下每包平均開銷(Per-Packet Bookkeeping),例如加速卡PCIe設備的高延遲寄存器訪存開銷、包內存分配開銷等系統開銷,采用批處理策略和局部緩沖池方法對壓縮數據塊進行傳輸,來優化競爭和平均系統開銷。根據本方法設計的無鎖并發系統在不同層次上的設計如下:(一)、應用層面:為了充分挖掘通用多核系統的并發處理能力,根據細粒度流親和性策略,滿足不同流的數據包并行、無鎖的壓縮過程。基于流級(Flow level Based)的劃分策略確保了多核處理器的不同物理核可以無鎖、完全并發的實現壓縮/解壓縮過程。
(二)、驅動層面:采用線程安全且完全并發的驅動系統,避免驅動系統中串行代碼成為系統并發的瓶頸。驅動應該充分利用加速卡設備提供的硬件并發訪問支持,優化鎖競爭,確保高流量實時壓縮全并發的進行。(三)、硬件層次:選用支持硬件多隊列的加速硬件,確保驅動和應用程序可以無鎖的進行加速硬件的并發訪問。對于沒有硬件多隊列支持的加速卡,高度并發的驅動和上層軟件應用在訪問硬件加速設備時,將不可避免的進行串行互斥的訪問,該串行執行時間將直接影響到多核多線程系統的加速比。(四)、數據結構層次:壓縮系統中潛在內存分配過程均采用每核數據結構(Per-Core Data Structure)軟件高速緩存(Cache)和全局無鎖(Lock-free)隊列的數據結構完成,最大程度上提高系統的并發度和靈活性。其中,對數據流進行基于流的細粒度壓縮采用流水策略運轉,采用流水(pipelining)策略可以實現CPU和壓縮卡同時高負荷的運作,充分挖掘通用多核CPU和壓縮卡的使·用效率,從而避免空轉,達到降低系統性能的目的。具體設計如圖2所示,包括CPU、Request Ring buffer、Response Ring buffer 和 HW。中央處理器 CPU 為圖 2 中 CPU,緩沖區由Request Ring buffer和Response Ring buffer組成,圖2中HW表不壓縮卡。具體的設計包括:(—)、充分利用CPU和壓縮卡之間的緩沖系統。根據系統負載抖動的幅度,適當增加緩沖區大小。(二)、將壓縮過程劃分為三個處理過程,分別包括由中央處理器CPU處理的請求壓縮入隊列過程、壓縮卡處理的壓縮過程和中央處理器CPU處理的響應出隊過程。具體步驟如圖2所示:步驟S1:中央處理器CPU接收請求壓縮隊列Request Ring buffer。步驟S2:壓縮卡HW對請求壓縮隊列Request Ring buffer進行壓縮步驟S3:壓縮卡HW將壓縮后數據送入響應出隊隊列Response Ring buffer。步驟S4:中央處理器CPU獲取響應出隊隊列中的壓縮數據。圖2中,流水設計目標使得CPU和壓縮卡硬件HW均保持在相對繁忙busy的狀態,可以充分挖掘流水的吞吐量。(三)、I/O模式上,避免使用阻塞式(Block)通信模式。阻塞模式在極端情況下,(PU會被阻塞直到數據包壓縮完成,這會減低流水的效率。可以采用用戶態驅動的I/O模型對壓縮數據塊進行傳輸。為了優化系統調用開銷、內核態和用戶態之間的包拷貝通信開銷等,采用用戶態驅動(User Space Driver, U10)設計的1/0模型,實現零拷貝的1/0驅動模型,從而優化大包長應用下的拷貝過程帶來的CPU消耗和高速緩存污染問題(CachePollution),進而提高系統性能。(四)、輪詢(Polling)請求壓縮隊列和響應出隊隊列,最大程度發揮流水性能。對請求壓縮隊列和響應出隊隊列進行輪詢操作,可以減少系統中斷開銷和系統切換開銷。圖3為根據本方法實現的一個系統的總體框圖,可以理解的是,圖3僅出于示例目的,根據本發明的實施例不限于此。系統分為流管理模塊和壓縮處理模塊。細粒度流管理過程為壓縮處理模塊提供連續的基于流劃分的壓縮數據塊Chunk,中間通過多條隧道進行高效的壓縮數據傳送,該對稱的系統提供了透明的壓縮處理過程。由于系統的解壓端流程與壓縮端具有一定對稱性,下面以圖3左邊的壓縮流程為例進行說明。Flows Management表示流管理模塊,CO、Cl、C2表示多核平臺的處理器物理核,其中,根據協議并行化策略,每個物理核擁有一定數目的session上下文,圖3中以flows表示。一般以哈希表形式組織session上下文,根據策略組織來自不同flows的數據報文,通過圖3的Flows chunk構成待壓縮的chunk,提交到壓縮引擎Compress Engine ;最終結果New data通過重新封裝新報文頭部,如圖3中+header所示,通過Tunnel隧道,傳送到對端進行解壓。根據本發明實施例的數據中心間透明實時流量壓縮方法主要應用于統一數據中心間高性能數據優化傳輸平臺,用于具有高延遲帶寬積特性鏈路的包傳輸性能優化,包括帶寬利用率優化、延遲性能優化等用途。通過壓縮特定業務的冗余信息,實時的數據壓縮設計,充分挖掘數據中心間帶寬資源,提高某些數據冗余量高的業務的帶寬利用率,優化成本,提供了靈活性和性能優勢。采用了細粒度控制的優化策略,根據承載的應用屬性進行更細粒度的性能優化。采用了從性能角度高度優化的I/o系統,避免高量級的系統設計額外引入高昂的系統開銷。下面參考圖4描述根據本發明實施例的數據中心間透明實時流量壓縮系統100,包括壓縮處理裝置110和 流管理裝置120。其中,壓縮處理裝置110用于對數據流進行基于流的細粒度壓縮,其中,壓縮處理裝置110根據數據流的端口屬性對數據流進行基于流劃分的對應的壓縮策略進行壓縮以獲得多個壓縮數據塊;流管理裝置120用于根據多個壓縮數據塊的流類型,將多個流類型的壓縮數據塊分別通過不同的隧道同時傳輸,其中,采用批處理策略和局部緩沖池方法對壓縮數據塊進行傳輸。其中,隧道的量級與數據流的數據包的量級相等。壓縮處理裝置110對數據流進行基于流的細粒度壓縮采用流水策略運轉,其中,壓縮處理裝置110包括中央處理器CPUlll和壓縮卡112,其中,中央處理器CPUlll用于接收請求壓縮隊列;壓縮卡112用于對請求壓縮隊列進行壓縮,并將壓縮后數據送入響應出隊隊列;其中,中央處理器CPUlll還用于獲取響應出隊隊列中的壓縮數據。壓縮處理裝置110還包括緩沖系統113113,其中,緩沖系統113位于中央處理器CPUlll和壓縮卡112之間,用于根據系統負載抖動幅度增加中央處理器CPUlll和壓縮卡112之間的緩沖區大小。壓縮處理裝置110還用于對請求壓縮隊列和響應出隊隊列進行輪詢操作。流處理裝置采用用戶態驅動的1/0模型對壓縮數據塊進行傳輸。下面以具體的例子來對根據本發明實施例的數據中心間透明實時流量壓縮系統進行說明。可以理解的是,下述說明僅出于示例目的,根據本發明的實施例不限于此。壓縮處理裝置110對數據流進行基于流的細粒度壓縮。其中,壓縮處理裝置110包括中央處理器CPU111、壓縮卡112和緩沖系統113,緩沖系統113位于中央處理器CPUlll和壓縮卡112之間。壓縮處理裝置110中基于流(Flow)的細粒度壓縮設計如下:壓縮處理裝置110根據數據流的端口屬性對數據流進行劃分,并對不同劃分實施不同的壓縮策略,獲得多個壓縮數據塊。壓縮處理裝置110利用同一數據流內數據冗余特征相似的特征,來提高壓縮效率,優化帶寬。在多包聚合壓縮調高帶寬時,可以確保丟包對系統的影響范圍僅僅局限在一個TCP流內,避免多條流同時出發丟包,從而避免多個連接同時進入擁塞避免過程,進而優化整體傳輸性能。流管理裝置120根據多個壓縮數據塊的流類型,將多個流類型的壓縮數據塊分別通過不同的隧道同時傳輸。 單一的隧道模式將限制高流量在數據中心網絡中的傳播效率,為了提高網絡傳輸效率和冗余。在數據中心網絡中,不同流數據包可以經過不同的路由路徑同時傳播。具體地,流管理裝置120中基于多隧道(Tunnel)模式的虛擬傳輸鏈路設計采用類NAT的設計策略,利用端口和IP地址共同映射隧道的方式,減少IP地址的占用率。極端情況下,隧道的量級與數據流的數據包的量級相等,優化了隧道設計。多隧道模式設計優化了限制,充分利用了數據中心網絡的帶寬。為了優化萬兆量級下每包平均開銷(Per-Packet Bookkeeping),例如加速卡PCIe設備的高延遲寄存器訪存開銷、包內存分配開銷等系統開銷,流管理裝置120采用批處理策略和局部緩沖池方法對壓縮數據塊進行傳輸,來優化競爭和平均系統開銷。根據本系統設計的無鎖并發系統在不同層次上的設計如下:
(一)、應用層面:為了充分挖掘通用多核系統的并發處理能力,根據壓縮處理裝置110細粒度流親和性策略,滿足不同流的數據包并行、無鎖的壓縮過程。基于流級(Flowlevel Based)的劃分策略確保了多核處理器的不同物理核可以無鎖、完全并發的實現壓縮/解壓縮過程。(二)、驅動層面:采用線程安全且完全并發的驅動系統,避免驅動系統中串行代碼成為系統并發的瓶頸。驅動應該充分利用加速卡設備提供的硬件并發訪問支持,優化鎖競爭,確保高流量實時壓縮全并發的進行。(三)、硬件層次:選用支持硬件多隊列的加速硬件,確保驅動和應用程序可以無鎖的進行加速硬件的并發訪問。對于沒有硬件多隊列支持的加速卡,高度并發的驅動和上層軟件應用在訪問硬件加速設備時,將不可避免的進行串行互斥的訪問,該串行執行時間將直接影響到多核多線程系統的加速比。(四)、數據結構層次:壓縮系統中潛在內存分配過程均采用每核數據結構(Per-Core Data Structure)軟件高速緩存(Cache)和全局無鎖(Lock-free)隊列的數據結構完成,最大程度上提高系統的并發度和靈活性。其中,壓縮處理裝置110對數據流進行基于流的細粒度壓縮采用流水策略運轉。采用流水(pipelining)策略可以實現中央處理器CPUlll和壓縮卡112同時高負荷的運作,充分挖掘通用多核CPU和壓縮卡112的使用效率,從而避免空轉,達到降低系統性能的目的。具體設計如圖 2 所不,包括 CPU、Request Ring buffer、Response Ring buffer 和 HW。中央處理器CPUlll為圖中CPU,緩沖系統113由Request Ring buffer和Response Ringbuffer組成,圖中HW表示壓縮卡112。具體的設計包括:(一)、充分利用CPU和壓縮卡112之間的緩沖系統113。根據系統負載抖動的幅度,適當增加緩沖區大小。(二)、將壓縮過程劃分為三個處理過程,分別包括由中央處理器CPUlll處理的請求壓縮入隊列過程、壓縮卡112處理的壓縮過程和中央處理器CPUlll處理的響應出隊過程。
具體步驟如圖2所示:步驟S1:中央處理器CPUlll接收請求壓縮隊列Request Ring buffer。步驟S2:壓縮卡112HW對請求壓縮隊列Request Ring buffer進行壓縮步驟S3:壓縮卡112HW將壓縮后數據送入響應出隊隊列Response Ring buffer。步驟S4:中央處理器CPUlll獲取響應出隊隊列中的壓縮數據。圖2中,流水設計目標使得CPU和壓縮卡112硬件HW均保持在相對繁忙busy的狀態,可以充分挖掘流水的吞吐量。(三)、1/0模式上,避免使用阻塞式(Block)通信模式。阻塞模式在極端情況下,CPU會被阻塞直到數據包壓縮完成,這會減低流水的效率。可以采用用戶態驅動的I/o模型對壓縮數據塊進行傳輸。為了優化系統調用開銷、內核態和用戶態之間的包拷貝通信開銷等,流處理裝置采用用戶態驅動(User Space Driver, U10)設計的I/O模型,實現零拷貝的I/O驅動模型,從而優化大包長應用下的拷貝過程帶來的CPU消耗和高速緩存污染問題(CachePollution),進而提高系統性能 。(四)、輪詢(Polling)請求壓縮隊列和響應出隊隊列,最大程度發揮流水性能。壓縮處理裝置110對請求壓縮隊列和響應出隊隊列進行輪詢操作,可以減少系統中斷開銷和系統切換開銷。根據本發明實施例的數據中心間透明實時流量壓縮系統主要應用于統一數據中心間高性能數據優化傳輸平臺,用于具有高延遲帶寬積特性鏈路的包傳輸性能優化,包括帶寬利用率優化、延遲性能優化等用途。通過壓縮特定業務的冗余信息,實時的數據壓縮設計,充分挖掘數據中心間帶寬資源,提高某些數據冗余量高的業務的帶寬利用率,優化成本,提供了靈活性和性能優勢。采用了細粒度控制的優化策略,根據承載的應用屬性進行更細粒度的性能優化。采用了從性能角度高度優化的I/o系統,避免高量級的系統設計額外引入高昂的系統開銷。在本說明書的描述中,參考術語“一個實施例”、“一些實施例”、“示例”、“具體示例”、或“一些示例”等的描述意指結合該實施例或示例描述的具體特征、結構、材料或者特點包含于本發明的至少一個實施例或示例中。在本說明書中,對上述術語的示意性表述不一定指的是相同的實施例或示例。而且,描述的具體特征、結構、材料或者特點可以在任何的一個或多個實施例或示例中以合適的方式結合。盡管已經示出和描述了本發明的實施例,對于本領域的普通技術人員而言,可以理解在不脫離本發明的原理和精神的情況下可以對這些實施例進行多種變化、修改、替換和變型,本發明的范圍由所附權利要求及其等同限定。
權利要求
1.一種數據中心間透明實時流量壓縮方法,其特征在于,包括如下步驟: 對數據流進行基于流的細粒度壓縮,包括:根據數據流的端口屬性對所述數據流進行基于流劃分的對應的壓縮策略進行壓縮以獲得多個壓縮數據塊; 根據所述多個壓縮數據塊的流類型,將多個流類型的壓縮數據塊分別通過不同的隧道同時傳輸, 其中,采用批處理策略和局部緩沖池方法對所述壓縮數據塊進行傳輸。
2.如權利要求1所述的方法,其特征在于,所述隧道的量級與所述數據流的數據包的量級相等。
3.如權利要求1所述的方法,其特征在于,所述對數據流進行基于流的細粒度壓縮采用流水策略運轉,其中,中央處理器CPU接收請求壓縮隊列,有壓縮卡對所述請求壓縮隊列進行壓縮,并將壓縮后數據送入響應出隊隊列,所述中央處理器CPU獲取所述響應出隊隊列中的所述壓縮數據。
4.如權利要求3所述的方法,其特征在于,利用所述中央處理器CPU和壓縮卡之間的緩沖系統,根據系統負載抖動幅度增加所述中央處理器CPU和壓縮卡之間的緩沖區大小。
5.如權利要求3所述的方法,其特征在于,對所述請求壓縮隊列和所述響應出隊隊列進行輪詢操作。
6.如權利要求1所述的方法,其特征在于,還包括如下步驟:采用用戶態驅動的I/O模型對所述壓縮數據塊進行傳輸。
7.一種數據中心間透明實時流量壓縮系統,其特征在于,包括: 壓縮處理裝置,用于對數據流進行基于流的細粒度壓縮,其中,所述壓縮處理裝置根據數據流的端口屬性對所述數據流進行基于流劃分的對應的壓縮策略進行壓縮以獲得多個壓縮數據塊; 流管理裝置,用于根據所述多個壓縮數據塊的流類型,將多個流類型的壓縮數據塊分別通過不同的隧道同時傳輸,其中,采用批處理策略和局部緩沖池方法對所述壓縮數據塊進行傳輸。
8.如權利要求7所述的裝置,其特征在于,所述隧道的量級與所述數據流的數據包的量級相等。
9.如權利要求7所述的裝置,其特征在于,所述壓縮處理裝置對所述數據流進行基于流的細粒度壓縮采用流水策略運轉,其中,所述壓縮處理裝置包括中央處理器CPU和壓縮卡,其中, 所述中央處理器CPU用于接收請求壓縮隊列; 所述壓縮卡用于對所述請求壓縮隊列進行壓縮,并將壓縮后數據送入響應出隊隊列; 其中,所述中央處理器CPU還用于獲取所述響應出隊隊列中的所述壓縮數據。
10.如權利要求9所述的裝置,其特征在于,所述壓縮處理裝置還包括緩沖系統,其中,所述緩沖系統位于所述中央處理器CPU和壓縮卡之間,用于根據系統負載抖動幅度增加所述中央處理器CPU和壓縮卡之間的緩沖區大小。
11.如權利要求7所述的裝置,其特征在于,所述壓縮處理裝置還用于對所述請求壓縮隊列和所述響應出隊隊列進行輪詢操作。
12.如權利要求7所述的裝置,其特征在于,所述流處理裝置采用用戶態驅動的I/O模型對所述壓縮數據塊 進行傳輸。
全文摘要
本發明提出一種數據中心間透明實時流量壓縮方法,包括如下步驟對數據流進行基于流的細粒度壓縮,包括根據數據流的端口屬性對數據流進行基于流劃分的對應的壓縮策略進行壓縮以獲得多個壓縮數據塊;根據多個壓縮數據塊的流類型,將多個流類型的壓縮數據塊分別通過不同的隧道同時傳輸,其中,采用批處理策略和局部緩沖池方法對壓縮數據塊進行傳輸。本發明壓縮特定業務的冗余信息,充分挖掘數據中心間傳輸鏈路的帶寬利用率,優化系統開銷,靈活性好,效率高,性能優勢明顯。本發明還公開了一種數據中心間透明實時流量壓縮系統。
文檔編號H04L12/813GK103220226SQ20131015869
公開日2013年7月24日 申請日期2013年5月2日 優先權日2013年5月2日
發明者王燕飛, 吳教仁, 劉曉光, 劉濤, 劉寧 申請人:百度在線網絡技術(北京)有限公司