ネットワークの冗長化・bondingを試す。
すごく今更感ではありますが、Linuxでネットワークの冗長化・bondingを試してみました。
試した機器は下記の通り。
サーバー:PowerEdge SC1435 × 2台、PowerEdge 2650 × 1台
スイッチングハブ:NETGEAR FS526T
サーバー側のNICはいずれもtg3ドライバのものが2基ずつ搭載されています。
2つのNICを束ねてload balancingしてみます。
/etc/modules.conf に bond0デバイスを定義する。
alias bond0 bonding
/etc/sysconfig/network-scripts/ifcfg-bond0 を作成する。
基本的にはeth0をそのままコピペして、デバイス名を変えて、bondingのオプションを追記します。</p>
> DEVICE=<span style="color: #99ccff;">bond0</span>
> BOOTPROTO=static
> IPADDR=10.x.x.1
> NETMASK=255.255.0.0
> NETWORK=10.x.x.0
> ONBOOT=yes
> <span style="color: #99ccff;">BONDING_OPTS=”mode=0 miimon=100″</span>
- /etc/sysconfig/network-scripts/ifcfg-eth0を修正
> DEVICE=eth0
> ONBOOT=yes
> <span style="color: #99ccff;">MASTER=bond0<br /> SLAVE=yes</span>
> BOOTPROTO=none
- /etc/sysconfig/network-scripts/ifcfg-eth1を修正
> DEVICE=eth1
> ONBOOT=yes
> <span style="color: #99ccff;">MASTER=bond0<br /> SLAVE=yes</span>
> BOOTPROTO=none
- ネットワークを再起動
> \# /etc/init.d/network restart
- ステータスを確認
> \# ifconfig bond0
> \# cat /proc/net/bond0
この場合、
bondingされていないfirewall(GbE接続)に対しては180Mbps程度のスループットが出たのですが、
bondingされている機器同士(PE SC1435間、PE SC1435←→PE 2650間)だと10Mbpsも出ない、という不可解な状況となってしまいました。
冗長化とスループット向上に、と思ったのですが、あまり良い結果ではありませんでした。
他のNICやスイッチを使用した場合だとまた違った結果となりそうなので、別環境でリトライしてみようかと思います。