ボンディング(bonding)でNICを冗長化する
http://extstrg.asabiya.net/pukiwiki/index.php?%A5%DC%A5%F3%A5%C7%A5%A3%A5%F3%A5%B0%A1%CAbonding%A1%CB%A4%C7NIC%A4%F2%BE%E9%C4%B9%B2%BD%A4%B9%A4%EB目次
概要 †
Linuxにて複数のNICを束ね冗長化・負荷分散を行う手順。
環境情報 †
OS | CentOS 5.3 |
NIC | Intel PRO/1000 MT QuadPort ServerAdapter |
作業方針 †
4ポートNICを使用し、1つの論理NICを構成する。
設定の手順は以下となる。
- 1) bondingドライバの組み込み
- 2) bondingポートの設定
- 3) NICとbondingポートの紐付け
作業手順 †
- 1) bondingドライバの組み込み
/etc/modprobe.confに以下を追記
設定値は後述の「bondingドライバのパラメータ」を参照
【書式】
alias bond0 bonding options bond[n] mode=[MODE] miimon=[VALUE]
【例】
alias bond0 bonding options bond0 mode=balance-alb miimon=100 alias bond1 bonding options bond1 mode=balance-alb miimon=100
- 2) bondingポートの設定
/etc/sysconfig/network-scripts配下にbondingポートの設定を作成
【書式:ifcfg-bond[n]】
DEVICE=bond[n] BOOTPROTO=static ONBOOT=yes IPADDR=[IP ADDRESS] NETMASK=[NETMASK] NETWORK=[NETWORK ADDRESS] BROADCAST=[BROADCAST ADDRESS] GATEWAY=[DEFAULT GATEWAY]
【例:ifcfg-bond0】
# Linux Ethernet Bonding Driver # DEVICE=bond0 BOOTPROTO=static ONBOOT=yes IPADDR=192.168.100.200 NETMASK=255.255.255.0 NETWORK=192.168.100.0 BROADCAST=192.168.1.255 GATEWAY=192.168.100.254
- 3) NICとbondingポートの紐付け
/etc/sysconfig/network-scripts配下にbondingポートと紐付ける物理NICの設定を作成
【書式:ifcfg-eth[n]】
DEVICE=eth[n] BOOTPROTO=none ONBOOT=yes MASTER=bond[n] SLAVE=yes
【例:ifcfg-eth0】
DEVICE=eth0 BOOTPROTO=none ONBOOT=yes MASTER=bond1 SLAVE=yes
- 4) bondingの有効化
上記の設定の後、ネットワークを再起動する
/etc/init.d/network restart
ネットワークケーブルの抜き差しをするなどでbondingの動作を確認する。
【ifconfig例】
# ifconfig bond0 Link encap:Ethernet HWaddr 00:04:23:C6:B4:A4 inet addr:192.168.100.200 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: fe80::204:23ff:fec6:b4a4/64 Scope:Link UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1 RX packets:41139981 errors:0 dropped:0 overruns:0 frame:0 TX packets:73872532 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:232665976 (221.8 MiB) TX bytes:3337216009 (3.1 GiB) eth0 Link encap:Ethernet HWaddr 00:04:23:D6:CA:3C UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1 RX packets:67 errors:0 dropped:0 overruns:0 frame:0 TX packets:103200 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:4266 (4.1 KiB) TX bytes:6235233 (5.9 MiB) Base address:0x9c00 Memory:fdde0000-fde00000 eth1 Link encap:Ethernet HWaddr 00:04:23:D6:CA:3D UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1 RX packets:711 errors:0 dropped:0 overruns:0 frame:0 TX packets:102530 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:86431 (84.4 KiB) TX bytes:6151106 (5.8 MiB) Base address:0x9800 Memory:fddc0000-fdde0000
bondingドライバのパラメータ †
bondingモジュールにて使用できるパラメータの一覧は次の通りです。
mode=
bondingモジュールに許可された 4つのポリシーの中から1つを指定します。このパラメータに有効な値は次の通りです。
- 0: balance-rr
耐障害性と負荷バランシングに対するラウンド ロビン ポリシーを設定します。ボンディングされたスレーブインターフェイスは使用できるものから順に、送受信を順次行ないます。
- 1: active-backup
耐障害性に対するアクティブ バックアップ ポリシーを設定します。最初に使用できるボンディングされたスレーブインターフェイスによって送受信が行なわれます。ボンディングされた他のスレーブインターフェイスはアクティブなスレーブインターフェイスが失敗した場合のみ使用されます。
- 2: balance-xor
耐障害性と負荷バランシングに対する XOR (exclusive-or)ポリシーを設定します。この方法では、インターフェイスによって1スレーブ NIC の MACアドレスと受信要求の MACアドレスが適合されます。このリンクが確立されると、最初に使用できるインターフェイスから送信を順次行ないます。
- 3: broadcast
対障害性用のブロードキャストポリシーを設定します。全ての送信は、全てのスレーブインターフェイスで送られます。
- 4: 802.3ad
IEEE 802.3ad ダイナミックリンク集合ポリシーを設定します。同じスピードとデュープレックス設定を共有する集合グループを作成します。アクティブな集合体内の全てのスレーブ上で送信と受信をします。そして802.3ad 対応のスイッチを必要とします。
- 5: balance-tlb
対障害性とロードバランシング用の送信ロードバランシング (TLB)ポリシーを設定します。外部への送信は、各スレーブインターフェイス上の現在のロードに従って配信されます。受信は現在のスレーブにより受け付けられます。もし受信するスレーブに障害があるともう一つのスレーブが問題のスレーブの MAC アドレスを引き取ります。
- 6: balance-alb
対障害性とロードバランシング用のアクティブロードバランシング (ALB)を設定します。IPV4 通信用の送信および受信ロードバランシングを含んでいます。受信のロードバランシングは ARP ネゴシエーションによって達成されます。
- miimon=
MIIリンク監視の実行頻度を指定します。(ミリ秒単位) NICがアクティブかを確認するのにMIIが使用されるため、高い可用性が必要になる場合便利です。
【参考】
Red Hat Enterprise Linux 4: リファレンスガイド
Last-modified: 2010-07-18 (日) 11:25:00 (4993d)