網絡接口bonding的設置
一、什么是Bond
就是將多塊網卡綁定同一IP地址對外提供服務,可以實現高可用或者負載均衡。當然,直接給兩塊網卡設置同一IP地址是不可能的。通過bonding,虛擬一塊網卡對外提供連接,物理網卡的被修改為相同的MAC地址。
二、Bonding的工作模式
Bond有七種策略模式(mode),其實指的是在傳輸數據包的時候,如何從已經綁定的接口中選擇數據包傳輸的接口。是所有的接口都傳輸數據包還是說從中選擇一個或多個,怎么選擇。
0. mode=0,即balance-rr(輪轉(Round-robin)策略)
特點:從頭到尾順序的在每一個slave接口上面發送數據包
此模式提供負載均衡和容錯的能力
1. mode=1,即: (active-backup)Active-backup policy(主-備份策略)
特點:只有一個設備處于活動狀態,當一個宕掉另一個馬上由備份轉換為主設備。mac地址是外部可見得,從外面看來,bond的MAC地址是唯一的,以避免switch(交換機)發生混亂。;由此可見此算法的優點是可以提供高網絡連接的可用性,但是它的資源利用率較低,只有一個接口處于工作狀態,在有 N 個網絡接口的情況下,資源利用率為1/N
此模式只提供了容錯能力
2. mode=2,即:(balance-xor)XOR policy(平衡策略)
特點:基于指定的傳輸HASH策略傳輸數據包。缺省的策略是:(源MAC地址 XOR 目標MAC地址)% slave數量。其他的傳輸策略可以通過xmit_hash_policy選項指定。在此策略下,同一會話的數據包會使用同一個接口傳輸。
此模式提供負載平衡和容錯能力
3. mode=3,即:broadcast(廣播策略)
特點:在每個slave接口上傳輸每個數據包,
此模式提供了容錯能力
4. mode=4,即:(802.3ad)IEEE 802.3ad Dynamic link aggregation(IEEE802.3ad 動態鏈接聚合)
特點:創建一個聚合組,它們共享同樣的速率和雙工設定。根據802.3ad規范將多個slave工作在同一個激活的聚合體下。外出流量的slave選舉是基于傳輸hash策略,該策略可以通過xmit_hash_policy選項從缺省的XOR策略改變到其他策略。需要注意的 是,并不是所有的傳輸策略都是802.3ad適應的,尤其考慮到在802.3ad標準43.2.4章節提及的包亂序問題。不同的實現可能會有不同的適應 性。
必要條件:
條件1:ethtool支持獲取每個slave的速率和雙工設定
條件2:switch(交換機)支持IEEE802.3ad Dynamic link aggregation
條件3:大多數switch(交換機)需要經過特定配置才能支持802.3ad模式
5. mode=5,即:(balance-tlb)Adaptive transmit load balancing(適配器傳輸負載均衡)
特點:不需要任何特別的switch(交換機)支持的通道bonding。在每個slave上根據當前的負載(根據速度計算)分配外出流量。如果正在接受數據的slave出故障了,另一個slave接管失敗的slave的MAC地址。
該模式的必要條件:ethtool支持獲取每個slave的速率
6. mode=6,即:(balance-alb)Adaptive load balancing(適配器適應性負載均衡)
特點:該模式包含了balance-tlb模式,同時加上針對IPV4流量的接收負載均衡(receiveload balance, rlb),而且不需要任何switch(交換機)的支持。接收負載均衡是通過ARP協商實現的。bonding驅動截獲本機發送的ARP應答,并把源硬件地址改寫為bond中某個slave的唯一硬件地址,從而使得不同的對端使用不同的硬件地址進行通信。
三、Bonding配置
創建bonding設備的配置文件
/etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
BOOTPROTO=none
BONDING_OPTS=“miimon=100 mode=0”
配置接口設備文件
? /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
USERCTL=no
什么是miimon?
miimon是用來進行鏈路監測的。如果miimon=100,那么系統每100ms 監測一次鏈路連接狀態,如果有一條線路不通就轉入另一條線路
查看bond0狀態:
/proc/net/bonding/bond
關于bonding的詳細配置請參照
/usr/share/doc/kernel-doc-version/Documentation/networking/bonding.txt
四、Bonding的配置實例
1、實驗之前需要關閉NetworkManager,否則可能實驗會出現問題
1、創建bonding設備的配置文件
2、重啟網絡配置,查看設備是否配置成功
3、測試網絡是否能ping通
4、查看bond的狀態,當前使用的額是eth0接口
5、把eth0接口down掉,看是否能ping通,這時候轉到使用eth1的接口,實現了鏈路的負載均衡
原創文章,作者:xiaoqing,如若轉載,請注明出處:http://www.www58058.com/43540