2010年8月1日日曜日

Solaris10 IPMPで送信パケット負荷分散


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


Solarisには標準でNICを二重化する機能としてIPMPがあるが、
この機能は二重化だけでなく、送信パケットの負荷分散機能も備えている。

これとは別に上位のスイッチと連動することで、送受信の負荷分散な可能なリンクアグリゲーションも設定できるが、 通常のWEBサーバ等であればサーバからみてパケット送信が圧倒的に多いので、用途によっては設定が簡単で、リンクアグリゲーション対応のスイッチが不要なIPMPの方が有効なケースもある。
負荷分散は接続元のIPをベースにラウンドロビンで分散されるので、複数ホストからの接続を受け付けるケースで特に有効。


■設定方法
設定方法は極めてシンプル。


vi /etc/hostname.e1000g0
--------------------------------
sol10-u24 netmask + broadcast + group ipmp up
--------------------------------


vi /etc/hostname.e1000g1
--------------------------------
group ipmp up
--------------------------------

再起動すれば設定が反映される。


root@sol10-u24 01:51:10>ifconfig -a
lo0: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000
e1000g0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
        inet 192.168.1.10 netmask ffffff00 broadcast 192.168.1.255
        groupname ipmp
        ether 0:14:4f:4a:bb:6a
e1000g1: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 3
        inet 0.0.0.0 netmask ff000000 broadcast 0.255.255.255
        groupname ipmp
        ether 0:1b:21:4f:64:b4


■一時的なIPMP構成、解除は下記コマンドで可能
- 解除 # ifconfig e1000g0 group ''
# ifconfig e1000g1 group ''

- 構成
# ifconfig e1000g0 group ipmp
# ifconfig e1000g1 group ipmp


■負荷分散の状況を確認するには以下
# dladm show-dev -s -i 1 e1000g0
# dladm show-dev -s -i 1 e1000g1
# snoop -d e1000g1 port 80


やってみたけど、クライアントホストが1台しかないから分散までは確認できず。追加マシンを購入予定なので、環境が整ったらテストしてみる。

参考>> IPMP でネットワークの負荷を分散する
参考>> Solaris のシステム管理 (IP サービス) - 出力負荷の分散