BLOGTIMES
2010/08/17

Linuxで複数のNICを束ねて使う

  linux  networking 
このエントリーをはてなブックマークに追加

先日、ファイルサーバに使っているマシンにNICが余っていたので、bondingを使ってNICの負荷分散したので忘れないうちにメモ。

RHELやCentOSで設定する際にはIBMから公開されている「IBM Linux at IBM | Bonding ドライバー利用ガイド for RHEL5」を参照すると楽です。
bondingの設定自体はLinuxの設定に慣れていればそんなに難しくないのですが、面倒だったのは動作モードが7種類もあったこと。

0(balance-rr): ラウンドロビンでパケットを送信。送信のみ負荷分散。
1(active-backup): 障害時のみバックアップに切り換えて受送信。冗長化のみ。
2(balance-xor): MACアドレスを使ってNICを決定して負荷分散。送信のみ負荷分散。
3(broadcast): 全てのNICから伝送。通常のネットワーク構成では使えない。
4(802.3ad): IEEE802.3adで負荷分散
5(balance-tlb): NICの負荷に応じて送信NICを決定。送信のみ負荷分散。
6(balance-alb): balance-tlbに加えて、受信についても負荷分散。

このうち、3は通常のネットワーク構成では利用できず、0,2,4はスイッチ側がTrunking(4の場合は802.3ad)をサポートしていなければならないと記載されているので今回は対象外。1は複数のNICがアクティブにならず、スループットの向上が望めないのでこれもパス。となると、消去法で残ったのは5と6ですが、今回は受信の負荷分散する必要がなさそうなのでbalance-tlbを使うことにしました。

以下、設定メモです。

設定手順

bond0を使えるようにするためにmodprobe.confに下記の2行を追加。

/etc/modprobe.conf

alias bond0 bonding options bond0 max_bonds=1 mode=5 miimon=100

bond0の設定をnetwork-scriptsに作る。

/etc/sysconfig/network-scripts/ifcfg-bond0

DEVICE=bond0 MTU=9000 USERCTL=no ONBOOT=yes BOOTPROTO=static IPADDR=192.168.1.1 NETMASK=255.255.255.0

bond0に参加させるNICの設定を下記のように書き換える。
基本的にはNETMASKやIPADDRを消して、SLAVE=yes, MASTER=bond0を追加する感じ。

/etc/sysconfig/network-scripts/ifcfg-ethX

DEVICE=ethX HWADDR=XX:XX:XX:XX:XX:XX USERCTL=no ONBOOT=yes BOOTPROTO=static SLAVE=yes MASTER=bond0

あとは /etc/init.d/network restart を叩くだけ。
設定の確認は cat /proc/net/bonding/bond0 からできます。

# cat /proc/net/bonding/bond0 Ethernet Channel Bonding Driver: v3.5.0 (November 4, 2008) Bonding Mode: transmit load balancing Primary Slave: None Currently Active Slave: eth1 MII Status: up MII Polling Interval (ms): 100 Up Delay (ms): 0 Down Delay (ms): 0 Slave Interface: eth1 MII Status: up Link Failure Count: 0 Permanent HW addr: XX:XX:XX:XX:XX:01 Slave Interface: eth2 MII Status: up Link Failure Count: 0 Permanent HW addr: XX:XX:XX:XX:XX:02 Slave Interface: eth3 MII Status: up Link Failure Count: 0 Permanent HW addr: XX:XX:XX:XX:XX:03

    トラックバックについて
    Trackback URL:
    お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
    このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/3736
    Trackbacks
    このエントリにトラックバックはありません
    Comments
    愛のあるツッコミをお気軽にどうぞ。[policy]
    古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
    コメントはありません
    Comments Form

    コメントは承認後の表示となります。
    OpenIDでログインすると、即時に公開されます。

    OpenID を使ってログインすることができます。

    Identity URL: Yahoo! JAPAN IDでログイン