Linux設定網絡卡bond
原理:
多塊網絡卡虛擬成一張,實現冗餘;多張網絡卡對外顯示一張,具有同一個IP;
對於多物理網絡卡的 Bond 網絡卡而言,其中一塊物理網絡卡會被設定為 Master,其他的網絡卡都是 Slave,Bond 網絡卡的 MAC 地址取自標誌為 Master 的物理網絡卡,然後將這個 MAC 地址複製到其他物理網絡卡上;
工作模式:
注意:在主備模式下 , 只有主網絡卡 eth0 工作,eth1 作為備份網絡卡是不工作的,只有當一個網路介面失效時 ( 例如主交換機掉電等 ),為了不會出現網路中斷,系統會按照配置指定的網絡卡順序啟動工作,保證機器仍能對外服務,起到了失效保護的功能。在負載均衡模式下,由於兩塊網絡卡都正常工作,它能提供兩倍的頻寬,在這種情況下出現一塊網絡卡失效,僅僅會是伺服器出口頻寬下降,也不會影響網路使用。
一共有以下模式。
- Mode=0(balance-rr) 表示負載分擔round-robin,和交換機的聚合強制不協商的方式配合。
- Mode=1(active-backup) 表示主備模式,只有一塊網絡卡是active,另外一塊是備的standby,這時如果交換機配的是捆綁,將不能正常工作,因為交換機往兩塊網絡卡發包,有一半包是丟棄的。
- Mode=2(balance-xor) 表示XOR Hash負載分擔,和交換機的聚合強制不協商方式配合。(需要xmit_hash_policy)
- Mode=3(broadcast) 表示所有包從所有interface發出,這個不均衡,只有冗餘機制...和交換機的聚合強制不協商方式配合。
- Mode=4(802.3ad) 表示支援802.3ad協議,和交換機的聚合LACP方式配合(需要xmit_hash_policy)
- Mode=5(balance-tlb) 是根據每個slave的負載情況選擇slave進行傳送,接收時使用當前輪到的slave
- Mode=6(balance-alb) 在5的tlb基礎上增加了rlb。
配置操作
前提:測試環境qinlin7
注意:兩張網絡卡需要保證在同一網段,若一張配置成trunk,未修改,也可以繫結成功,但是當down一張網絡卡時,網路就會變為不可用;
1、新增並更改ifcfg-bond0
DEVICE=bond0
IPADDR=10.10.132.139
NETMASK=255.255.255.0
GATEWAY=10.10.132.254
ONBOOT=yes
BOOTPROTO=yes
說明:截圖中的USERCTL引數可以不設定!!
2、編輯ifcfg-eth0
BOOTPROTO=none
DEVICE=eth0
MASTER=bond0
SLAVE=yes ##注意:若配置,則不需要再配置/etc/rc.d/rc.local,重複配置會出錯!!
ONBOOT=yes
GWADDR=00:50:56:a1:6b:c5 ###可以不要
3、編輯ifcfg-eth1
BOOTPROTE=none
DEVICE=eth1
MASTER=bond0
SLAVE=yes
ONBOOT=yes
HQADDR=00:50:a1:3f:73 ###可以不要
4、此係統中沒有/etc/modprobe.conf
則編輯# vim /etc/modprobe.d/mlx4.conf
alias bond0 bonding
options bond0 miimon=100 mode=1
說明:
mode=0表示load balancing (round-robin)為負載均衡方式;
mode=1表示fault-tolerance (active-backup)提供冗餘功能;
5、載入bonding模組
# modprobe bonding
說明:無返回值
6、重啟物理機
# init 6 && reboot
說明:init 6重啟速度會比較快!!!
7、檢視ifconfig
8、檢視bond繫結狀態
# vim /proc/net/bonding/bond0
9、測試:
# ifdown eth0
bonding後,eth1仍然工作,虛擬機器網路仍是通的;剩餘eth1和bonding的mac地址仍然一樣;
檢視網路是否還通著:
檢視bonding的狀態: