部屋を掃除したら漫画が沢山出てきたので書く日記

漫画とか合唱とかUNIXとかLinuxとかについて書く日記です。

Redhatサーバへのbonding設定

会社に転がっている
OS:RedHat Enterprise Linux ES3 Update9
HW:IBM system x3550
といったスペックの検証用サーバに、bondigによるNIC冗長化をしたのでメモを。
検索したら沢山出てきますし、はっきりいってここの方がまとまっていて大変わかりやすいですが、自分でやって確かめたのでメモです。

■前提
192.168.0.1というIPアドレスが上がっているネットワークインターフェース
(NIC)である、「eth0」を未使用のNICである「eth1」を使って冗長化する。


■手順
1./etc/modules.confの編集

編集前は以下の通り。

# cat modules.conf
alias eth0 bnx2
alias eth1 bnx2
alias scsi_hostadapter aacraid
alias usb-controller usb-uhci
alias usb-controller1 ehci-hcd


これに以下を追記

alias bond0 bonding
options bond0 miimon=100 mode=1 primary=eth0

optionsの意味は、
NIC監視間隔を100ミリ秒とし、モード1(ホットスタンバイ)でeth0をプライマリ
(主に使うNIC)として設定する
という意味

編集後は以下の通り。

alias eth0 bnx2
alias eth1 bnx2
alias scsi_hostadapter aacraid
alias usb-controller usb-uhci
alias usb-controller1 ehci-hcd

#20080521 for bond
alias bond0 bonding
options bond0 miimon=100 mode=1 primary=eth0

2.NIC設定ファイルの設定

まずeth0の設定ファイルifcfg-eth0を編集します。
編集前は以下の通り。

# cd /etc/sysconfig/network-scripts
# cat ifcfg-eth0
DEVICE=eth0
BOOTPROTO=static
IPADDR=192.168.0.1
NETMASK=255.255.255.0
HWADDR=xx:xx:xx:xx:xx:xx
ONBOOT=yes
TYPE=Ethernet

このファイルに記述を追加します。

# vi ifcfg-eth0

以下を追加

MASTER=bond0
SLAVE=yes

編集後は以下の通り。

DEVICE=eth0
BOOTPROTO=static
IPADDR=192.168.0.1
NETMASK=255.255.255.0
HWADDR=xx:xx:xx:xx:xx:xx
ONBOOT=yes
TYPE=Ethernet
MASTER=bond0
SLAVE=yes

次にeth1の設定ファイルifcfg-eth1を編集します。
編集前は以下の通り。

# cd /etc/sysconfig/network-scripts
# cat ifcfg-eth1
DEVICE=eth1
BOOTPROTO=dhcp
HWADDR=xx:xx:xx:xx:xx:xx
TYPE=Ethernet
ONBOOT=no

このファイルに記述を追加します。

# vi ifcfg-eth1

以下を追加

MASTER=bond0
SLAVE=yes

さらに、必要ないとは思いますがdhcpの記述も直しました。

よって編集後は以下の通り。

DEVICE=eth1
BOOTPROTO=static
HWADDR=xx:xx:xx:xx:xx:xx
TYPE=Ethernet
ONBOOT=no
MASTER=bond0
SLAVE=yes

3.bond設定ファイルの作成
bond設定ファイルifcfg-bond0を作成します。

# cd /etc/sysconfig/network-scripts
# vi ifcfg-bond0

以下の記述を行う。

DEVICE=bond0
BOOTPROTO=static
IPADDR=192.168.0.1
NETMASK=255.255.255.0
ONBOOT=yes
TYPE=Ethernet

4.ネットワークサービスの再起動
スーパユーザで以下のコマンドを実施

# service network restart

設定が変わったことを確認します。(bond0というNICが表示される)

# ifconfig -a
bond0     Link encap:Ethernet  HWaddr xx:xx:xx:xx:xx:xx
・
・
・

切り替わりは/proc/net/bonding/bond0に表示されるのでこれを参照する。

# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v2.6.0 (January 14, 2004)

Bonding Mode: fault-tolerance (active-backup)
Primary Slave: eth0
Currently Active Slave: eth0
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: eth0
MII Status: up
Link Failure Count: 0
Permanent HW addr: xx:xx:xx:xx:xx:xx

Slave Interface: eth1
MII Status: up
Link Failure Count: 0
Permanent HW addr: xx:xx:xx:xx:xx:xx


ケーブル抜き差しして切り替わりを確認する。
eth0側ケーブルを抜くと、eth1を使用して通信します。
eth0側ケーブルを再度挿すと、eth0に切り替わります。

では。