(六)鏈路聚合

? ????????鏈路聚合是在兩個設備間使用多個物理鏈路創(chuàng)建一個邏輯鏈路的功能。這種方式允許物理鏈路間共享負載。交換機網(wǎng)絡中使用的一種鏈路聚合的方法是EtherChannel。EtherChannel可以通過思科的端口聚合協(xié)議(Port Aggregation Protocol, PAgP)或鏈路聚合協(xié)議(Link Aggregation Protocol, LACP)來配置或協(xié)商。

EtherChannel:

????????EtherChannel本來是由思科開發(fā),將若干Fast Ethernet或Gigabit Ethernet捆綁成一個邏輯通道的交換機到交換機的LAN連接技術。配置了EtherChannel之后的虛擬接口稱為一個port channel。物理接口捆綁在一起,成為一個port channel interface。思科最早稱之為EtherChannel Fast EtherChannel(FEC),也稱為Gigabit EtherChannel(GEC),非思科公司常將鏈路聚合簡寫為LAG。

????????通過EtherChannel,一個邏輯鏈路的速度等于所有物理鏈路的總和。例如,如果你用4個100 Mbps的以太網(wǎng)鏈路創(chuàng)建1個EtherChannel,則EtherChannel的速度是400 Mbps。但是也會有一些問題,并不是在所有情況下增加的容量都確實等于物理鏈路的速度之和。例如,四個1 Gbps鏈路組成的EtherChannel,默認每一個會話的速度還是限制在1 Gbps。

????????默認情況下EtherChannel按照報文的目的MAC地址,給它指定一個物理鏈接。這也意味著EtherChannel上一個工作站與另一個服務器通信,只會使用到一條物理鏈路。實際上,EtherChannel上所有目的地為該服務器的數(shù)據(jù)流都只會走這一條物理鏈路。也就是說,一個用戶同一時刻只會得到1 Gbps。這種模式也可以更改為每一個報文在不同的物理鏈路上發(fā)送,當有多個不同的目的地址時,每一條路徑都可以得到利用。

????????EtherChannel創(chuàng)建的是一對一的關系,即一個EtherChannel連接兩個設備。可在兩臺交換機之間,或在一個激活了EtherChannel的服務器和一臺交換機之間創(chuàng)建一個EtherChannel連接。但是,同一個EtherChannel連接無法將數(shù)據(jù)流發(fā)送到兩臺交換機。

EtherChannel負載均衡:

????????如前所述,EtherChannel默認情況下并不真的為各鏈路速度之和,只是在特定的鏈路發(fā)送特定的報文,給人的感知速度為所有鏈路的速度總和。EtherChannel幀分發(fā)使用Cisco專有的hash算法。 該算法是確定性算法; 如果使用相同的地址和會話信息,則總是散列到通道中的同一端口。 此方法可避免無序傳送數(shù)據(jù)包。這一算法中很重要的一點是,并不保證物理鏈路之間完全地均衡。

????????該算法將目的MAC地址值hash成0-7的范圍。無論EtherChannel中有多少鏈路都是同樣的值。每一條物理鏈路都指定這八個值中的一個或多個,取決于EtherChannel中共有幾條鏈路。

????????下圖顯示了按照這種算法報文是怎樣分布的,注意到分布并不總是均衡的。

????????有八條物理鏈路的EtherChannel,每條鏈路指定單一值。有六條鏈路的EtherChannel,兩條鏈路指定兩個值,剩下四條鏈路指定四個值。這意味著兩條鏈路(理論上均衡分布)會收到比剩余四條鏈路多一倍的數(shù)據(jù)流。從這張圖很明顯的看出,要使流量在各鏈路間均衡的分布(理想情況下),應當設置1,2,4,或8條物理鏈路。無論決定鏈路的信息是什么,算法都會將鏈路值hash為0-7。

????????用戶可根據(jù)需求對算法進行更改。默認行為是使用目的MAC地址,但是,按照軟硬件版本的不同,還可以有如下選項:

????????·源MAC地址

????????·目的MAC地址

????????·源和目的MAC地址

????????·源IP地址

????????·目的IP地址

????????·源和目的IP地址

????????·源端口

????????·目的端口

????????·源和目的端口

????????更改默認設置的原因由應用情況而定。下圖顯示了一種相對普遍的布局:

????????一組用戶連接到交換機A,通過EtherChannel連接到交換機B。默認按照每一個報文的目的MAC地址做負載均衡。但是,比較常見的情況是一臺服務器的流量顯著高于其他服務器。

????????讓我們假設該網(wǎng)絡中email服務器接收到多于1 Gbps流量,而其他服務器大約為50Mbps。使用基于目的MAC地址的方法會導致在EtherChannel丟包,因為目的地為email服務器MAC地址的報文會走同一條物理鏈路。一條鏈路發(fā)生過載時報文不會分散到其他鏈路,只會丟棄。在這種一臺服務器接收流量超大的情況下,目的MAC地址負載均衡就不合理了。而根據(jù)源MAC地址負載均衡更為合適。

????????另一點需要記住的是,負載均衡算法只適用于EtherChannel上發(fā)送的報文。它并沒有雙向功能。在交換機A上使用基于源MAC地址的算法可能比較合適,但對于交換機B不一定合適,因為email服務器是使用最多的服務器。當報文從email服務器返回,源MAC地址就是它自己本身。因此,如果我們在交換機B上使用基于源MAC地址的負載均衡算法,就會碰到一開始同樣的問題。

????????這種情況下,解決方法是在交換機A使用基于源MAC地址的負載均衡算法,而在交換機B使用目的MAC地址的算法。如果所有服務器在一臺交換機而所有用戶在另一臺,這一解決方案是有效的。但現(xiàn)實中更常見的情況是所有這些設備都連接在一臺交換機上,這時就沒那么走運了。

????????下圖顯示了一個比較有趣的問題。一臺服務器通過EtherChannel連接到交換機A,一臺NAS也通過EtherChannel連接到交換機A。服務器的所有文件系統(tǒng)都掛在到NAS設備上,服務器作為一臺服務超過5000人的數(shù)據(jù)庫服務器負載很大。服務器和NAS之間的帶寬需求超過2Gbps。

????????目前沒有解決這一問題的簡單的方法。不能使用源MAC地址或目的MAC地址做負載均衡,因為每種情況都只有一個地址。同樣的理由,也不能用源和目的MAC地址結合,源和目的IP地址結合的方法。也不能基于源或目的端口號,因為一旦協(xié)商結束后,它們就不會改變。一種可能的方法是,驅(qū)動支持的情況下,改變服務器和/或NAS設備,每一個link都有自己的MAC地址,但是報文還是會從其中一個地址發(fā)出另一個地址接收。

????????唯一的解決方法是手動負載均衡或采用更快的鏈接。將鏈路分為4個1Gbps,每一個有自己的IP網(wǎng)絡,每個連接mount掛載不同的文件系統(tǒng)可以解決這一問題。有點太過復雜的話,直接使用更快的物理連接,如10 Gbps。

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 本書結構是自頂向下的,所以請按下列順序閱讀: 1.計算機網(wǎng)絡自頂向下--應用層2.計算機網(wǎng)絡自頂向下--運輸層3....
    牛富貴兒閱讀 3,673評論 1 10
  • 一、什么是負載均衡? 互聯(lián)網(wǎng)早期,業(yè)務流量比較小并且業(yè)務邏輯比較簡單,單臺服務器便可以滿足基本的需求;但隨著互聯(lián)網(wǎng)...
    彬彬醬閱讀 2,298評論 0 19
  • 【摘要】 面對大量用戶訪問、高并發(fā)請求,海量數(shù)據(jù),可以使用高性能的服務器、大型數(shù)據(jù)庫,存儲設備,高性能Web服務器...
    靜修佛緣閱讀 4,829評論 0 24
  • github Demo 鏈接 0. 橫屏應用領域 游戲 視頻播放、直播 展示內(nèi)容較多且有較多細節(jié)的,VR、全景、攝...
    牛哥小小閱讀 3,758評論 5 8
  • HTML知識點1.HTML、XML、XHTML 有什么區(qū)別HTML,超文本標記語言,是語法較為松散的、不嚴格的We...
    順豐笑嘻嘻閱讀 163評論 0 1

友情鏈接更多精彩內(nèi)容