Solaris - マルチパスでネットワークの冗長化
- はじめに
- Solaris 8 10/00からIP Network Multipathing(マルチパス)というネットワーク冗長化機能が追加されました。
この機能は障害検出、回復検出そして送信負荷分散を実現します。
それぞれのネットワークインターフェイスには本IPアドレスに加えて監視用として
テストIPアドレスを割り当てて、各ネットワークインターフェイスをグループ化して監視します。
マルチパスデーモンであるin.mpathdは、障害を検知すると別のインターフェイスに
障害IPアドレスを割り当てて通信の中断を回避し、
障害からの回復を検知すると再び前のインターフェイスへIPアドレスを割り当てます。
回線を複数化させるのでスループットの増大も実現します。
- コンフィグレーション
- in.mpathdの設定ファイルは、/etc/default/mpathdですが基本的にはそのままの設定で構いません。
今回は、下記2つのインターフェイス(le0、le1)をマルチパス化させます。
le0:192.168.0.1(テストIP:192.168.0.11)
le1:192.168.0.2(テストIP:192.168.0.12)
グループ名:my-mpath1
# vi /etc/hostname.le0
192.168.0.1 group my-mpath1 up addif 192.168.0.11 -failover deprecated up
# vi /etc/hostname.le1
192.168.0.2 group my-mpath1 up addif 192.168.0.12 -failover deprecated up
- 起動
- 再起動して、in.mpathdの起動を確認します。
# /usr/sbin/shutdown -y -g0 -i6
- 動作確認
- 通常の運用状態を表示してみます。
# ifconfig -a
lo0: flags=1000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
inet 127.0.0.1 netmask ff000000
le0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
inet 192.168.0.1 netmask ffffff00 broadcast 192.168.0.255
groupname my-mpath1
ether 8:0:20:7a:5b:4f
le0:1: flags=9040843<UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,NOFAILOVER> mtu 1500 index 2
inet 192.168.0.11 netmask ffffff00 broadcast 192.168.0.255
le1: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 3
inet 192.168.0.2 netmask ffffff00 broadcast 192.168.0.255
groupname my-mpath1
ether 8:0:20:7a:5b:4f
le1:1: flags=9040843<UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,NOFAILOVER> mtu 1500 index 3
inet 192.168.0.12 netmask ffffff00 broadcast 192.168.0.255
この状態でle1側のケーブルを抜きます、すると・・・
lo0: flags=1000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
inet 127.0.0.1 netmask ff000000
le0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
inet 192.168.0.1 netmask ffffff00 broadcast 192.168.0.255
groupname my-mpath1
le0:1: flags=9040843<UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,NOFAILOVER> mtu 1500 index 2
inet 192.168.0.11 netmask ffffff00 broadcast 192.168.0.255
le0:2: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
inet 192.168.0.2 netmask ffffff00 broadcast 192.168.0.255
le1: flags=19000842<BROADCAST,RUNNING,MULTICAST,IPv4,NOFAILOVER,FAILED> mtu 0 index 3
inet 0.0.0.0 netmask 0
groupname my-mpath1
le1:1: flags=19040843<UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,NOFAILOVER,FAILED> mtu 1500 index 3
inet 192.168.0.12 netmask ffffff00 broadcast 192.168.0.255
le0にle1のIPアドレスが振り当てられていることがわかります。
抜いたケーブルを挿しなおせば再びle1にIPが割り当てられます。
上記の動作をシミュレーションさせるコマンドがあるので、そちらでも確認しても良いでしょう。
# if_mpadm -d le1
# if_mpadm -r le1