Bonding の設定

提供:TuntunkunMediaWiki

移動: 案内, 検索

目次

Bonding の設定

Linux に馴染みのない人にとっては Bonding という名称には馴染みがなくとも、チーミングやリンクアグリゲーションという名前で知っているひとも多いだろう。Bonding とは2つ以上の物理的な NIC を束ねて負荷分散を実現したり、ホッとスタンバイ等による冗長化あるいはその両方を同時に実現することのできる機能である。

NetworkManager の停止

最新のディストリビューションでは NetworkManager での Bonding にも対応しているものがあるが、その対応状況はまちまちであり CUI での設定コマンド nmcli は多くの環境では設定を変更できない。そのため、デスクトップ環境をインストールしているサーバーや、コマンドになじみのあるユーザーにとってはあえて NetworkManager を利用する理由はあまりないだろう。しかし、多くのディストリビューションでは NetworkManager がデフォルトで起動しているためこちらを停止し旧来からの network サービスに切り替える必要がある(正確には共存可能だがここでは扱わない)。

$ sudo service NetworkManager stop
$ sudo chkconfig NetworkManager off

Bonding モジュールの設定

Bonding モジュールをロードし bond0 仮想インターフェイスを認識可能にするために /etc/modprobe.d/ 配下に設定ファイルを作成する。古い情報を掲載しているサイトでは bonding というファイルを作成するよう記載されている場合もあるが、最近のディストリビューションは拡張子 ".conf" を付けないと警告を出すようだ。将来的には、拡張子なしの設定ファイルは無視されるようなので拡張子をつけおいた方が無難だ。

$ sudo vim /etc/modprobe.d/bonding.conf
alias bond0 bonding

これにより、network サービス起動時に Bonding 用カーネルモジュールがロードされ bond0 インターフェイスが利用可能になる。

ネットワークの設定

前章の設定により bond0 インターフェイスが利用可能になるが、bond0 は仮想的な NIC であり物理的な NIC をスレーブとして追加してやらないと通信を行うことができない。また IP アドレス等の設定はスレーブの NIC ではなく Bonding インターフェイス bond0 に設定しなければならない。まずは、以下に示すように bond0 自身の IP アドレスの設定を行う。以下に示す設定はあくまでも例であるので、IP アドレスやネットマスク等については自身のネットワークに応じて設定してください。

$ sudo vim /etc/sysconfig/network-scripts/ifcfg-bond0
TYPE=Ethernet
DEVICE=bond0
BOOTPROTO=static
ONBOOT=yes
NETMASK=255.255.255.0
IPADDR=192.168.11.100
GATEWAY=191.168.11.1
DNS1=8.8.8.8
DNS2=8.8.4.4
BONDING_OPTS="mode=balance-rr miimon=100 udelay=0"

上記設定内容の BONDING_OPTS で指定されている mode=balance-rr はラウンドロビンによる負荷分散を行う設定である。それ以外のモードについては、Redhat の チャネルボンディング を参照してください。次に、スレーブのインターフェイスの設定を行います。

$ sudo vim /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes

この設定を、Bonding インターフェイスに参加させる全てのスレーブインターフェイスの分だけ行います。

$ sudo service network start
$ sudo chkconfig network on

正常に network サービスが起動できれば完了です。以下のように /proc/net/bonding 配下の sysfs を cat コマンドで表示することで Bonding の設定が正しく反映されているか確認することができます。

$ cat /proc/net/bonding/bond0 
Ethernet Channel Bonding Driver: v3.6.0 (September 26, 2009)
 
Bonding Mode: load balancing (round-robin)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
 
Slave Interface: eth0
MII Status: down
Speed: 10 Mbps
Duplex: half
 
...以下略
個人用ツール
名前空間
変種
操作
案内
ツールボックス