Linuxではボンディング(bonding)を使うことでNICの冗長化・負荷分散することが可能である。これによりケーブルが断線したり、間違えて抜いてしまうなどの人為的ミスが発生しても通信断を防ぐことができる。

ボンディングはNICを複数束ねて使うことで1個のチャンネルにすることができます。これはベンダーの異なるNICでも設定が可能である。(bondingは機能の名称で、束ねることはteamingと言う)

ボンディングしたNICを異なるスイッチ(更に、その上に異なるルーターとか)に接続することで経路の冗長化を行うことも可能。

設定

/etc/sysconfig/network-scripts/ifcfg-bond0 を作成

DEVICE=bond0
BOOTPROTO=none
ONBOOT=yes
NETWORK=192.168.1.0
NETMASK=255.255.255.0
IPADDR=192.168.1.11

ifcfg-eth0 と ifcfg-eth1 を編集

DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
DEVICE=eth1
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes

/etc/modules.conf を作成(or 編集)

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つを指定します。このパラメータに有効な値は次の通りです。

  • 0 —
    耐障害性と負荷バランシングに対するラウンド ロビン ポリシーを設定します。ボンディングされたスレーブインターフェイスは使用できるものから順に、送受信を順次行ないます。
  • 1 —
    耐障害性に対するアクティブ バックアップ ポリシーを設定します。最初に使用できるボンディングされたスレーブインターフェイスによって送受信が行なわれます。ボンディングされた他のスレーブインターフェイスはアクティブなスレーブインターフェイスが失敗した場合のみ使用されます。
  • 2 —
    耐障害性と負荷バランシングに対する XOR (exclusive-or)ポリシーを設定します。この方法では、インターフェイスによって1スレーブ NIC の MACアドレスと受信要求の MACアドレスが適合されます。このリンクが確立されると、最初に使用できるインターフェイスから送信を順次行ないます。
  • 3 —
    対障害性用のブロードキャストポリシーを設定します。全ての送信は、全てのスレーブインターフェイスで送られます。
  • 4 —
    IEEE 802.3ad ダイナミックリンク集合ポリシーを設定します。同じスピードとデュープレックス設定を共有する集合グループを作成します。アクティブな集合体内の全てのスレーブ上で送信と受信をします。そして802.3ad 対応のスイッチを必要とします。
  • 5 —
    対障害性とロードバランシング用の送信ロードバランシング (TLB)ポリシーを設定します。外部への送信は、各スレーブインターフェイス上の現在のロードに従って配信されます。受信は現在のスレーブにより受け付けられます。もし受信するスレーブに障害があるともう一つのスレーブが問題のスレーブの MAC アドレスを引き取ります。
  • 6 —
    対障害性とロードバランシング用のアクティブロードバランシング (ALB)を設定します。IPV4 通信用の送信および受信ロードバランシングを含んでいます。受信のロードバランシングは ARP ネゴシエーションによって達成されます。
  • miimon= —
    MIIリンク監視の実行頻度を指定します。(ミリ秒単位) NICがアクティブかを確認するのにMIIが使用されるため、高い可用性が必要になる場合便利です。

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

# service network restart

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

参考URL

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


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