Pages

搜尋網誌

Tuesday, April 30, 2013

bonding 的各種模式


mode 名稱 負載平衡 冗長性 不同的
speed/duplex
設定相容
primary
指定 
Switch
機能 
監視
模式
slave MAC
位址注2
送信 受信 MII ARP
0 balance-rr SW依存   ×注3 × Ether Channel A
所有鏈路處於負載均衡狀態,輪詢方式往每條鏈路發送報文,基於per packet方式發送。服務上ping 一個相同地址:1.1.1.1 雙網卡的兩個網卡都有流量發出。負載到兩條鏈路上,說明是基於per packet方式 ,進行輪詢發送。(2)這模式的特點增加了帶寬,同時支持容錯能力,當有鏈路出問題,會把流量切換到正常的鏈路上。
1 active-backup × × 不要 A,C
一個端口處於主狀態 ,一個處於從狀態,所有流量都在主鏈路上處理,從不會有任何流量。當主端口down掉時,從端口接手主狀態。
2 balance-xor   △注1 SW依存   ×注3 × Ether Channel A
限定流量,以保證到達特定對端的流量總是從同一個接口上發出。既然目的地是通過MAC地址來決定的,因此該模式在「本地」網絡配置下可以工作得很好。如果所有流量是通過單個路由器(比如 「網關」型網絡配置,只有一個網關時,源和目標mac都固定了,那麼這個算法算出的線路就一直是同一條,那麼這種模式就沒有多少意義了。),那該模式就不是最好的選擇。和balance-rr一樣,交換機端口需要能配置為「port channel」。這模式是通過源和目標mac做hash因子來做xor算法來選路的。
3 broadcast SW依存 不明 × 要(設定不明) A
封包會複製往 bond 下的接口分別發送出去當有對端交換機失效,感覺不到任何downtime此模式過於浪費資源但有最好的容錯機制。
4 802.3ad   △注1 SW依存   △注4 × 802.3ad × A
802.3ad模式是IEEE標準,因此所有實現了802.3ad的對端都可以很好的互操作。802.3ad 協議包括聚合的自動配置,因此只需要很少的對交換機的手動配置(要指出的是,只有某些設備才能使用802.3ad)。802.3ad標準也要求幀按順序(一定程度上)傳遞,因此通常單個連接不會看到包的亂序。802.3ad也有些缺點:標準要求所有設備在聚合操作時,要在同樣的速率和雙工模式,而且,和除了balance-rr模式外的其它bonding負載均衡模式一樣,任何連接都不能使用多於一個接口的帶寬。
此外,linux bonding的802.3ad實現通過對端來分發流量(通過MAC地址的XOR值),因此在「網關」型配置下,所有外出(Outgoing)流量將使用同一個設備。進入(Incoming)的流量也可能在同一個設備上終止,這依賴於對端802.3ad實現裡的均衡策略。在「本地」型配置下,路兩將通過 bond裡的設備進行分發。
除了配置port channel之外還要在port channel聚合口下開啟LACP功能,成功協商後,兩端可以正常通信。否則不能使用。
5 balance-tlb SW依存 不要 × B
balance-tlb模式通過對端均衡外出(outgoing)流量。既然它是根據MAC地址進行均衡,在「網關」型配置(如上文所述)下,該模式會通過單個設備來發送所有流量,然而,在「本地」型網絡配置下,該模式以相對智能的方式(不是balance-xor或802.3ad模式裡提及的XOR方式)來均衡多個本地網絡對端,因此那些數字不幸的MAC地址(比如XOR得到同樣值)不會聚集到同一個接口上。
不像802.3ad,該模式的接口可以有不同的速率,而且不需要特別的交換機配置。不利的一面在於,該模式下所有進入的(incoming)流量會到達同一個接口;該模式要求slave接口的網絡設備驅動有某種ethtool支持;而且ARP監控不可用。
6 balance-alb 不要 × B
該模式包含了balance-tlb模式,同時加上針對IPV4流量的接收負載均衡(receive load balance, rlb),而且不需要任何switch(交換機)的支持。接收負載均衡是通過ARP協商實現的。bonding驅動截獲本機發送的ARP應答,並把源硬件地址改寫為bond中某個slave的唯一硬件地址,從而使得不同的對端使用不同的硬件地址進行通信。所有端口都會收到對端的arp請求報文,回覆arp回時,bond驅動模塊會截獲所發的arp回覆報文,根據算法算到相應端口,這時會把arp回覆報文的源mac,send源mac都改成相應端口mac。從抓包情況分析回覆報文是第一個從端口1發,第二個從端口2發。以此類推。
注1 負荷分散アルゴリズムが XORスタイルのためトラフィックが偏る場合がある
注2 A = Master Interface の MACアドレスが設定される
B = 受信スレーブが失敗した場合、別スレーブが失敗した受信スレーブの MACアドレスを引き継ぐ
C = fail_over_macが有効な場合、slave interface自身の MACアドレスが設定される
注3 Ether Channel の仕様により speed/duplex設定は同一でなければならない
注4 LACP によって同一設定 NIC がグルーピングされる

http://h50146.www5.hp.com/products/software/oe/linux/mainstream/support/doc/option/nic/bonding_diff.html