WWW を検索 NOGNOG.COM を検索

WWW.NOGNOG.COM

Last modified: Sat, 29 Dec 2007 15:38:58 +0900
Home   うにっくすさんの覚え書き   プリングルズ   MIDI   ユーザー車検   「小沢昭一の小沢昭一的こころ」のススメ   Blog  

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

うにっくすさんの覚え書きについて

Home >> うにっくすさんの覚え書き >> Solaris - マルチパスでネットワークの冗長化