CentOS 6.3にbonding設定をしてみた(リンクアグリゲーション機能)
環境) NIC 2枚
eth0(onbord Broadcom NetXtreme BCM5715 Gigabit Ethernet)
eth1(onbord Broadcom NetXtreme BCM5715 Gigabit Ethernet)
eth0 と eth1 を束ねて理論上 2Gbit の NIC にする.
設定)
# cat /etc/modprobe.d/bonding alias bond0 bonding
# cat /etc/sysconfig/network-scripts/ifcfg-bond0 DEVICE="bond0" BOOTPROTO="none" IPADDR="172.168.0.100" NETMASK="255.240.255.0" ONBOOT="yes" BONDING_OPTS="mode=6 miimon=100"
# cat /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE="eth0" BOOTPROTO="none" HWADDR="**:**:**:**:**:**" MASTER="bond0" SLAVE="yes"
# cat /etc/sysconfig/network-scripts/ifcfg-eth1 DEVICE="eth1" BOOTPROTO="none" HWADDR="**:**:**:**:**:**" MASTER="bond0" SLAVE="yes"
mode | 名称 | 説明 |
---|---|---|
0 | balance-rr | load balancing (round-robin) 全てのスレーブデバイス(NIC)を順番(ラウンドロビン)に使いパケットを送信。 送信のみ負荷分散。 |
1 | active-backup | fault-tolerance (active-backup) 1つの NIC のみをアクティブインターフェイスとしてパケットを送信。 送受信とも負荷分散なし。 |
2 | balance-xor | load balancing (xor) 送信元/先のMACアドレスを元に、送信スレーブデバイスを決定しパケットを送信。 送信のみ負荷分散。 |
3 | broadcast | fault-tolerance (broadcast) 全スレーブに同一パケットを送信。 通常の用途では使用しない。 |
4 | 802.3ad | IEEE 802.3ad Dynamic link aggregation IEEE 802.3ad(LACP)に準拠したリンクアグリゲーション。 接続するスイッチが IEEE 802.3ad に対応している必要がある。 |
5 | balance-tlb | transmit load balancing 各スレーブの負荷に応じて送信スレーブを分散させる。受信は現在のスレーブによって行われる。 送信のみ負荷分散。 |
6 | balance-alb | adaptive load balancing balance-tlbの機能に加え、受信も負荷分散。 |
bonding 動作確認
cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v2.6.3-rh (June 8, 2005) Bonding Mode: fault-tolerance (active-backup) Primary Slave: None Currently Active Slave: eth0 MII Status: up MII Polling Interval (ms): 100 Up Delay (ms): 5000 Down Delay (ms): 0 Slave Interface: eth0 MII Status: up Link Failure Count: 0 Permanent HW addr: 00:e0:18:56:de:ad Slave Interface: eth1 MII Status: up Link Failure Count: 0 Permanent HW addr: 00:01:8e:b8:ec:78
/var/log/message には bonding の動作ログが記録される。
eth0 のケーブルを抜く kernel: e100: eth0: e100_watchdog: link down kernel: bonding: bond0: link status definitely down for interface eth0, disabling it eth0 のケーブルを挿す kernel: e100: eth0: e100_watchdog: link up, 100Mbps, full-duplex kernel: bonding: bond0: link status up for interface eth0, enabling it in 5000 ms. kernel: bonding: bond0: link status definitely up for interface eth0. eth1 のケーブルを抜く kernel: eth1: link down kernel: bonding: bond0: link status definitely down for interface eth1, disabling it kernel: bonding: bond0: making interface eth0 the new active one. eth1 のケーブルを挿す kernel: eth1: link up, 100Mbps, full-duplex, lpa 0xC1E1 kernel: bonding: bond0: link status up for interface eth1, enabling it in 5000 ms. kernel: bonding: bond0: link status definitely up for interface eth1.
Comment