大流負載均衡轉(zhuǎn)發(fā)方法及裝置的制造方法
【技術領域】
[0001]本發(fā)明涉及網(wǎng)絡通信領域,尤其涉及一種大流負載均衡轉(zhuǎn)發(fā)方法及裝置。
【背景技術】
[0002]在現(xiàn)代數(shù)據(jù)中心網(wǎng)絡中,服務器連接的主流帶寬已經(jīng)趨向1G的速率,隨著科技的進步,預計40G的接入速率也會逐漸出現(xiàn)。從網(wǎng)絡設備帶寬角度出發(fā),TOR交換機和核心交換機的帶寬能力也需要提升,如此,從網(wǎng)絡帶寬利用率角度出發(fā),負載均衡技術的研宄也成為當前的熱點。
[0003]傳統(tǒng)數(shù)據(jù)中心中,參與傳遞的信息稱為流,所述流的英文全稱“Flow”,根據(jù)報文特性以及接口等屬性定義一個Flow,傳統(tǒng)定義一個Flow的方式有:源Mac地址;目的Mac地址;VLAN ;MPLS標簽;五元組(源IP+目的IP+四層頭協(xié)議號+四層頭源port+四層頭目的端口)。所述“流”根據(jù)其占據(jù)鏈路帶寬的比重或占據(jù)帶寬的大小分為“大流”、“小流”兩種。所述大流,其英文全稱為“Elephant flow”,占據(jù)鏈路的帶寬較大,為一些長時間活躍的TCP報文,它不要求網(wǎng)絡延遲,僅對帶寬有要求,通常消耗超過80%的帶寬。
[0004]隨著科技的發(fā)展,現(xiàn)代數(shù)據(jù)中心網(wǎng)絡逐漸采用L2 Over L3的部署思路,S卩:采用大三層的網(wǎng)絡架構;針對該網(wǎng)絡架構,負載均衡技術主要采用ECMP (Equal-Cost MultipathRouting的縮寫)技術,所述ECMP的中文譯稱為:等負荷多路徑負載均衡技術,傳統(tǒng)的ECMP技術采用hash方式選擇路徑,該ECMP技術中,由于同一個elephant flow,其報文頭中信息相同,故hash選擇的路徑也自然相同,如此,會導致網(wǎng)路中出現(xiàn)更多的擁塞節(jié)點,進一步,同一網(wǎng)絡架構中其他的轉(zhuǎn)發(fā)路徑處于閑置狀態(tài),導致網(wǎng)絡資源利用率很低。
[0005]通常情況下,ECMP技術一般為基于f1wLet的負載均衡技術,其將相同的flow通過不同路徑的傳輸接收端?;趂1wLet的負載均衡技術在傳輸flow,尤其是elephantflow時,當多個flow同時滿足切換條件時,多個flow同時切換到同傳輸端口一條路徑,如此,會導致被切換到的傳輸端口出現(xiàn)擁塞,且該種擁塞的產(chǎn)生甚至比不做動態(tài)切換影響更大。
【發(fā)明內(nèi)容】
[0006]本發(fā)明的目的之一在于提供一種大流負載均衡轉(zhuǎn)發(fā)方法及裝置。
[0007]為實現(xiàn)上述目的之一,本發(fā)明一實施方式的大流負載均衡轉(zhuǎn)發(fā)方法,所述方法包括:
每個統(tǒng)計周期開始后,均依次判斷當前的flow是否需要切換到交換機的其它的傳輸端口 ;
若是,查找符合切換條件的所述輸出端口 ;
所述flow切換到符合切換條件的輸出端口后,即時鎖定符合切換條件的所述輸出端口,停止其選舉權利;
并在至少一個統(tǒng)計周期后對所述輸出端口進行解鎖,恢復其選舉權利; 若否,所述flow通過當前的傳輸端口進行轉(zhuǎn)發(fā)。
[0008]作為本發(fā)明的進一步改進,所述“查找符合切換條件的輸出端口”具體包括: 當前統(tǒng)計周期開始后,所述flow選擇切換的傳輸端口為當前負載帶寬最小、且未被鎖定的所述傳輸端口。
[0009]作為本發(fā)明的進一步改進,所述方法還包括:
在每個傳輸端口均設置一byte counter計數(shù)器,用于記錄每個統(tǒng)計周期結束后的傳輸端口的所述負載帶寬。
[0010]作為本發(fā)明的進一步改進,所述byte counter計數(shù)器的數(shù)值 counter=last counter+packetLength- counter/X ;
其中,所述counter表示當前統(tǒng)計周期結束時,所述byte counter計數(shù)器的數(shù)值;所述packetLength表示當前統(tǒng)計周期開始后,進入該傳輸端口的flow的長度;所述lastcounter表示上一統(tǒng)計周期結束時,所述byte counter計數(shù)器的數(shù)值;所述X表示每個統(tǒng)計周期內(nèi),預設的折扣配置閾值。
[0011]作為本發(fā)明的進一步改進,所述方法還包括:
在所述交換機的各個傳輸端口均設置一解鎖定時器,所述解鎖定時器用于存儲解鎖周期;
所述傳輸端口被鎖定后,即時觸發(fā)所述解鎖定時器,并在其被鎖定后的每個統(tǒng)計周期后,對所述解鎖周期的數(shù)值累加I;
當所述解鎖周期的數(shù)值等于所述系統(tǒng)預設解鎖閾值時,對當前傳輸端口進行解鎖,恢復其選舉權利;同時,對所述解鎖定時器的數(shù)值清零。
[0012]作為本發(fā)明的進一步改進,將η個統(tǒng)計周期結束時,每個傳輸端口的負載帶寬預置為其對應的歷史評估帶寬,所述η為大于I的正整數(shù);
所述系統(tǒng)預設解鎖閾值大于等于η倍的統(tǒng)計周期的數(shù)值。
[0013]為實現(xiàn)上述目的之一,本發(fā)明一實施方式的大流負載均衡轉(zhuǎn)發(fā)裝置,所述裝置包括:判斷模塊、鎖定模塊、解鎖模塊;
所述判斷模塊用于每個統(tǒng)計周期開始后,均依次判斷當前的flow是否需要切換到交換機的其它的傳輸端口;
若是,查找符合切換條件的所述輸出端口 ;
所述flow切換到符合切換條件的輸出端口后,通過所述鎖定模塊即時鎖定符合切換條件的所述輸出端口,停止其選舉權利;
并在至少一個統(tǒng)計周期后通過所述解鎖模塊對所述輸出端口進行解鎖,恢復其選舉權利;
若否,所述flow通過當前的傳輸端口進行轉(zhuǎn)發(fā)。
[0014]作為本發(fā)明的進一步改進,所述判斷模塊還用于:
當前統(tǒng)計周期開始后,使所述flow選擇切換的傳輸端口為當前負載帶寬最小、且未被鎖定的所述傳輸端口。
[0015]作為本發(fā)明的進一步改進,所述裝置還包括:byte counter計數(shù)器;
在每個傳輸端口均設置所述byte counter計數(shù)器,所述byte counter計數(shù)器用于記錄每個統(tǒng)計周期結束后的傳輸端口的所述負載帶寬。
[0016]作為本發(fā)明的進一步改進,所述byte counter計數(shù)器的數(shù)值 counter=last counter+packetLength- counter/X,
其中,所述counter表示當前統(tǒng)計周期結束時,所述byte counter計數(shù)器的數(shù)值;所述packetLength表示當前統(tǒng)計周期開始后,進入該傳輸端口的flow的長度;所述lastcounter表示上一統(tǒng)計周期結束時,所述byte counter計數(shù)器的數(shù)值;所述X表示每個統(tǒng)計周期內(nèi),預設的折扣配置閾值。
[0017]作為本發(fā)明的進一步改進,所述裝置還包括:解鎖定時器;
在所述交換機的各個傳輸端口均設置所述解鎖定時器,所述解鎖定時器用于存儲解鎖周期;
所述傳輸端口被所述鎖定模塊鎖定后,即時觸發(fā)所述解鎖定時器,并在其被鎖定后的每個統(tǒng)計周期后,對所述解鎖周期的數(shù)值累加I;
當所述解鎖周期的數(shù)值等于所述系統(tǒng)預設解鎖閾值時,通過解鎖模塊對當前傳輸端口進行解鎖,恢復其選舉權利;同時,對所述解鎖定時器的數(shù)值清零。
[0018]作為本發(fā)明的進一步改進,所述處理模塊還用于:
將η個統(tǒng)計周期結束時,每個傳輸端口的負載帶寬預置為其對應的歷史評估帶寬,所述η為大于I的正整數(shù);
所述系統(tǒng)預設解鎖閾值大于等于η倍的統(tǒng)計周期的數(shù)值。
[0019]與現(xiàn)有技術相比,本發(fā)明的有益效果是:本發(fā)明的大流負載均衡轉(zhuǎn)發(fā)方法及裝置,交換機的傳輸端口在接收到任意一個flow后,均即時鎖定該傳輸端口,使其在當前統(tǒng)計周期內(nèi),停止其選舉權利;并在至少一個統(tǒng)計周期后對所述輸出端口進行解鎖,恢復其選舉權利;有效的提高了所述交換機的各個傳輸端口動態(tài)負載均衡的性能,進而避免所述各個傳輸擁塞和丟包的發(fā)生。
【附圖說明】
[0020]圖1是本發(fā)明一實施方式中大流負載均衡轉(zhuǎn)發(fā)方法的流程圖;
圖2是本發(fā)明一實施方式中大流負載均衡轉(zhuǎn)發(fā)裝置的模塊圖;
圖3是本發(fā)明一實施方式中大流負載均衡轉(zhuǎn)發(fā)過程中現(xiàn)有技術與本發(fā)明的對比示意圖。
【具體實施方式】
[0021]以下將結合附圖所示的【具體實施方式】對本發(fā)明進行詳細描述。但這些實施方式并不限制本發(fā)明,本領域的普通技術人員根據(jù)這些實施方式所做出的結構、方法、或功能上的變換均包含在本發(fā)明的保護范圍內(nèi)。
[0022]如圖1所示,在本發(fā)明的一實施方式中,所述大流負載均衡轉(zhuǎn)發(fā)方法包括:
多個flow順序選擇交換機的傳輸端口進行轉(zhuǎn)發(fā),并在每個統(tǒng)計周期開始后,均依次判斷當前的flow是否需要切換到交換機的其它的傳輸端口。
[0023]若是,查找符合切換條件的所述輸出端口 ;所述flow切換到符合切換條件的輸出端口后,即時鎖定符合切換條件的所述輸出端口,使其在當前統(tǒng)計周期內(nèi),停止其選舉權利; 若否,所述flow通過當前的傳輸端口進行轉(zhuǎn)發(fā)。
[0024]本實施方式中,flow在經(jīng)過所述交換機轉(zhuǎn)發(fā)過程中,其攜帶相應的轉(zhuǎn)發(fā)信息,包括:源地址、目的地址等;在源地址和目的地址之間存在多條轉(zhuǎn)發(fā)路徑,即對應交換機的各個傳輸端口均可以將所述flow從其源地址轉(zhuǎn)發(fā)至目的地址。
[0025]進一步的,在所述flow選擇交換機的傳輸端口時,為了防止轉(zhuǎn)發(fā)路徑擁塞,通常會在其進入交換機的各個傳輸端口之前,預先判斷其進入相應輸出端口后,是否會發(fā)生路徑擁塞問題,若是,查找符合切換條件的所述輸出端口進行轉(zhuǎn)發(fā),若否,通過當前的傳輸端口進行轉(zhuǎn)發(fā)