• 追加された行はこの色です。
  • 削除された行はこの色です。
Linuxではボンディング(bonding)を使うことでNICの冗長化・負荷分散することが可能である。これによりケーブルが断線したり、間違えて抜いてしまうなどの人為的ミスが発生しても通信断を防ぐことができる。更にボンディングしたNICを異なるスイッチ(更に、その上に異なるルーターとか)に接続することで経路の冗長化を行うことも可能。
ボンディングはNICを複数束ねて使うことで1個のチャンネルにすることができます。これはベンダーの異なるNICでも設定が可能である。(bondingは機能の名称で、束ねることはteamingと言う)~
目次~
#contents

**設定 [#l61f26cd]
/etc/sysconfig/network-scripts/ifcfg-bond0 を作成~
MACADDRには競合しないMACアドレスを入力
**概要 [#c1c3ee4b]
Linuxにて複数のNICを束ね冗長化・負荷分散を行う手順。


**環境情報 [#beeec6ea]
|OS|CentOS 5.3|
|NIC|Intel PRO/1000 MT QuadPort ServerAdapter|
~

**作業方針 [#a9532b53]
4ポートNICを使用し、1つの論理NICを構成する。~
設定の手順は以下となる。~
~
-1) bondingドライバの組み込み~
-2) bondingポートの設定~
-3) NICとbondingポートの紐付け~

~
**作業手順 [#pa8b5418]

-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=none
 BOOTPROTO=static
 ONBOOT=yes
 NETWORK=192.168.1.0
 IPADDR=192.168.100.200
 NETMASK=255.255.255.0
 IPADDR=192.168.1.11
 MACADDR=XX:XX:XX:XX:XX:XX

ifcfg-eth0 と ifcfg-eth1 を編集

 DEVICE=eth0
 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=bond0
 MASTER=bond[n]
 SLAVE=yes

 DEVICE=eth1
~
【例:ifcfg-eth0】~
 DEVICE=eth0
 BOOTPROTO=none
 ONBOOT=yes
 MASTER=bond0
 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ドライバのパラメータ [#j21828ce]

/etc/modules.conf を作成(or 編集)
bondingモジュールにて使用できるパラメータの一覧は次の通りです。 ~

 alias bond0 bonding
 options bond0 mode=0 miimon=200

bondingモジュールにて使用できるパラメータの一覧は次の通りです。 ~
(参考:http://www.redhat.com/docs/manuals/enterprise/RHEL-4-Manual/ja/ref-guide/s1-modules-ethernet.html)~
~
mode= — bondingモジュールに許可された 4つのポリシーの中から1つを指定します。このパラメータに有効な値は次の通りです。~
mode=~
bondingモジュールに許可された 4つのポリシーの中から1つを指定します。このパラメータに有効な値は次の通りです。~

-0 —~
-0: balance-rr~
耐障害性と負荷バランシングに対するラウンド ロビン ポリシーを設定します。ボンディングされたスレーブインターフェイスは使用できるものから順に、送受信を順次行ないます。~

-1 —~
-1: active-backup~
耐障害性に対するアクティブ バックアップ ポリシーを設定します。最初に使用できるボンディングされたスレーブインターフェイスによって送受信が行なわれます。ボンディングされた他のスレーブインターフェイスはアクティブなスレーブインターフェイスが失敗した場合のみ使用されます。~

-2 —~
-2: balance-xor~
耐障害性と負荷バランシングに対する XOR (exclusive-or)ポリシーを設定します。この方法では、インターフェイスによって1スレーブ NIC の MACアドレスと受信要求の MACアドレスが適合されます。このリンクが確立されると、最初に使用できるインターフェイスから送信を順次行ないます。~

-3 —~
-3: broadcast~
対障害性用のブロードキャストポリシーを設定します。全ての送信は、全てのスレーブインターフェイスで送られます。~

-4 —~
-4: 802.3ad~
IEEE 802.3ad ダイナミックリンク集合ポリシーを設定します。同じスピードとデュープレックス設定を共有する集合グループを作成します。アクティブな集合体内の全てのスレーブ上で送信と受信をします。そして802.3ad 対応のスイッチを必要とします。~

-5 —~
-5: balance-tlb~
対障害性とロードバランシング用の送信ロードバランシング (TLB)ポリシーを設定します。外部への送信は、各スレーブインターフェイス上の現在のロードに従って配信されます。受信は現在のスレーブにより受け付けられます。もし受信するスレーブに障害があるともう一つのスレーブが問題のスレーブの MAC アドレスを引き取ります。~

-6 —~
-6: balance-alb~
対障害性とロードバランシング用のアクティブロードバランシング (ALB)を設定します。IPV4 通信用の送信および受信ロードバランシングを含んでいます。受信のロードバランシングは ARP ネゴシエーションによって達成されます。~

-miimon= —~
-miimon=~
MIIリンク監視の実行頻度を指定します。(ミリ秒単位) NICがアクティブかを確認するのにMIIが使用されるため、高い可用性が必要になる場合便利です。~
~
【参考】~
[[Red Hat Enterprise Linux 4: リファレンスガイド:http://www.redhat.com/docs/manuals/enterprise/RHEL-4-Manual/ja/ref-guide/s1-modules-ethernet.html]]
~

最後に上記の変更を反映するために、ネットワークを再起動します。

 # service network restart

試しにケーブルを片一方抜いても動いていれば動作しています。


**参考URL [#k69266bb]
http://www.redhat.com/docs/manuals/enterprise/RHEL-4-Manual/ja/ref-guide/s1-networkscripts-interfaces.html#S2-NETWORKSCRIPTS-INTERFACES-CHAN~
http://d.hatena.ne.jp/sen-u/20061002/p1~
http://hpcgi3.nifty.com/anights/wiki.cgi?p=bonding~


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS