2012年11月19日 星期一

RHEL5 & 6 NIC Bonding

RHEL5跟RHEL6的bonding設定略有不同,寫一下以免老是忘記打錯

1. RHEL5
假設是要將eth0與eth1做mode1的bonding
  • 編輯/etc/modprobe.conf檔案,加入:
# vim /etc/modprobe.conf
   
alias bond0 bonding


  • 修改/etc/sysconfig/network-script/底下的ifcfg-eth0與ifcfg-eth1,並新增ifcfg-bond0
# cd /etc/sysconfig/network-script
# vim ifcfg-bond0
DEVICE=bond0
IPADDR=192.168.1.100
NETMASK=255.255.255.0
USERCTL=no
BOOTPROTO=none
ONBOOT=yes
BONDING_OPTS="mode=1 miimon=100"


# vim ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
USERCTL=no


# vim ifcfg-eth1
DEVICE=eth1
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
USERCTL=no


  • 重啟網路
# /etc/init.d/network restart


2.RHEL6:
情境跟RHEL5一樣,eth0+eth1做成bond0
  • 編輯/etc/modprobe.d/底下的設定檔(6版改為folder,裡面只要是.conf結尾的檔案都會生效)
# vim /etc/modprobe.d/bonding.conf
alias bond0 bonding
**如果有兩個以上的bonding介面,就再加alias bond1 bonding ...以此類推


  • 修改/etc/sysconfig/network-script/裡面關於eth0與eth1的設定,新增bond0
# vim /etc/sysconfig/network-script/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
USERCTL=no


# vim /etc/sysconfig/network-script/ifcfg-eth1
DEVICE=eth1
ONBOOT=yes
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
USERCTL=no


# vim /etc/sysconfig/network-script/ifcfg-bond0
DEVICE=bond0
IPADDR=192.168.1.1
NETMASK=255.255.255.0
ONBOOT=yes
BOOTPROTO=none
USERCTL=no
BONDING_OPTS=miimon=100 mode=1


  • 重啟網路
# /etc/init.d/network restart



3.Bond Mode:

0balance-rr‧負載平衡模式, 需有 switch 設定 (trunk) 支援才能發揮實質效果
‧具容錯功能, 其中一張 Slave 網卡失效仍可持續運作
1active-backup‧同一時間只有單一 Slave 網卡運作
‧Active Slave 網卡失效時自動啟用次一順位 Slave 網卡
‧不需 switch 支援
2balance-xorTransmit based on [(source MAC address XOR'd with destination MAC address) modulo slave count]. This selects the same slave for each destination MAC address. This mode provides load balancing and fault tolerance.
3broadcast‧所有 Slave 網卡一齊收送網路封包
‧具容錯功能, 其中一張 Slave 網卡失效仍可持續運作
4802.3adIEEE 802.3ad Dynamic link aggregation. Creates aggregation groups that share the same speed and duplex settings. Utilizes all slaves in the active aggregator according to the 802.3ad specification.

*Pre-requisites:

1. Ethtool support in the base drivers for retrieving the speed and duplex of each slave.

2. A switch that supports IEEE 802.3ad Dynamic link aggregation. Most switches will require some type of configuration to enable 802.3ad mode
此模式可以參考 http://phorum.study-area.org/index.php?topic=43051.0
5balance-tlb‧傳出自動負載平衡
‧傳入由 Current Active Slave 負責
‧具容錯功能, 其中一張 Slave 網卡失效仍可持續運作
‧不需 switch 支援及設定
6balance-alb‧傳出及傳入皆自動負載平衡
‧具容錯功能, 其中一張 Slave 網卡失效仍可持續運作
‧Slave 網卡 driver 需支援 setting hardware address 功能
‧不需 switch 支援及設定