IP ネットワークマルチパスの管理

第 2 章 ネットワークマルチパスの導入

この章では、インタフェースグループを作成および使用するための手順や、検査用 IP アドレス、hostname ファイル、マルチパス構成ファイルを構成するための手順について説明します。

マルチパスインタフェースグループの構成

この節では、マルチパスインタフェースグループの構成手順とインタフェースを待機インタフェースに指定するための手順を説明します。

物理インタフェースのグループ化にも関連情報が記述されています。

マルチパスインタフェースグループの構成 - 作業一覧

表 2–1 マルチパスインタフェースグループの構成 - 作業一覧

作業 

概要 

参照する手順 

2 つのインタフェースでマルチパスインタフェースグループを構成 

ifconfig コマンド、group オプション、-failover オプション、deprecated オプション、および /etc/hostname.interface ファイルを使用する。

2 つのインタフェースでマルチパスインタフェースグループを構成するには

インタフェースの 1 つが待機インタフェースであるマルチパスグループを構成 

ifconfig コマンド、group オプション、standby オプション、-failover オプション、および /etc/hostname.interface ファイルを使用する。

インタフェースの 1 つが待機インタフェースであるマルチパスグループを構成するには

物理インタフェースが属するグループを表示 

ifconfig コマンドとインタフェース名を使用する。

物理インタフェースが属するグループを表示するには

グループにインタフェースを追加 

ifconfig コマンドとインタフェース名を使用する。

グループにインタフェースを追加するには

グループからインタフェースを削除 

ifconfig コマンドと空文字列を使用して、IP ネットワークマルチパスを無効にする。

グループからインタフェースを削除するには

インタフェースを既存のグループから別のグループに移動 

ifconfig コマンドと group オプションを使用する。

インタフェースを既存のグループから別のグループに移動するには

2 つのインタフェースでマルチパスインタフェースグループを構成するには

  1. スーパーユーザーになります。

  2. 次のコマンドを使って、個々の物理インタフェースをマルチパスグループに入れます。


    # ifconfig interface-name group group-name
    

    たとえば、hme0hme1test グループに入れるには、次のように入力します。


    # ifconfig hme0 group test
    # ifconfig hme1 group test
    
  3. すべての物理インタフェースに対し検査用 IP アドレスを指定します。

    1. IPv4 検査用アドレスの場合は、次のコマンドを使用します。


      注 –

      この手順では、物理インタフェースのアドレスがすでに構成されているものとします。



      # ifconfig interface-name addif ip-address <parameters> -failover deprecated up
      

      たとえば、次の構成に基づいて hme0 の検査用 IP アドレスを設定します。

      • アドレスは 19.16.85.21

      • ネットマスクおよびブロードキャストアドレスをデフォルト値に設定する。

      • -failoverdeprecated を指定する。

      次のコマンドを入力します。


      # ifconfig hme0 addif 19.16.85.21 netmask + broadcast + -failover deprecated up
      

      構成を確認するには、次のコマンドを入力します。


      # ifconfig hme0:1
      	hme0:1: flags=9000843<UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,NOFAILOVER> mtu 1500
              	index 2 inet 19.16.85.21 netmask ffffff00 broadcast 19.16.85.255

      注 –

      この検査用 IP アドレスをアプリケーションから使用されないようにするため IPv4 検査用アドレスを deprecated と指定する必要があります。


      次に、下記の構成に基づいて hme1 の検査用 IP アドレスを設定します。

      • アドレスは 19.16.85.22

      • ネットマスクおよびブロードキャストアドレスをデフォルト値に設定する。

      • -failoverdeprecated を指定する。

      次のコマンドを入力します。


      # ifconfig hme1 addif 19.16.85.22 netmask + broadcast + -failover deprecated up
      
    2. IPv6 検査用 IP アドレスの場合は、次のコマンドを使用します。


      # ifconfig interface-name inet6 -failover
      

      注 –

      この時点では IPv4 アドレスをもつ物理インタフェースがすでにマルチパスグループに追加されているため、IPv6 アドレスをもつ物理インタフェースも自動的に同じマルチパスグループに追加されています。IPv6 アドレスをもつ物理インタフェースが最初にマルチパスグループに追加された場合も、IPv4 アドレスをもつ物理インタフェースは自動的に同じマルチパスグループに追加されます。


      たとえば、hme0 に IPv6 検査用 IP アドレスを指定するには、次のコマンドを使用します。


      # ifconfig hme0 inet6 -failover
      

      構成を確認するには、次のように入力します。


      # ifconfig hme0 inet6
      	hme0: flags=a000841<UP,RUNNING,MULTICAST,IPv6,NOFAILOVER> mtu 1500 index 2
              	inet6 fe80::a00:20ff:feb9:17fa/10 
              	groupname test

      注 –

      検査用 IP アドレスをアプリケーションから使用されないようにするために IPv6 検査用 IP アドレスを deprecated と指定する必要はありません。


      2 つ目のインタフェース hme1 には、次のコマンドを使用します。


      # ifconfig hme1 inet6 -failover
      
  4. (この手順は、リブート後も構成を有効にしたい場合にだけ必要です。) リブート後も構成を有効にするには、次の手順を実行します。

    1. IPv4 の場合は、/etc/hostname.interface ファイルに次の行を追加します。


      interface-address <parameters> group group-name up \
      	addif logical-interface -failover deprecated <parameters> up

      注 –

      この検査用 IP アドレスは、次回のリブートで有効になります。構成をその場で有効にするには、手順 1 から 3 を実行する必要があります。


      たとえば、hme0 に対し次の構成に基づいて test グループを作成します。

      • 物理インタフェース hme0 のアドレスが 19.16.85.19

      • 論理インタフェースのアドレスが 19.16.85.21

      • deprecated-failover を指定する。

      • ネットマスクおよびブロードキャストアドレスをデフォルト値に設定する。

      /etc/hostname.hme0 ファイルに次の行を追加します。


      19.16.85.19 netmask + broadcast + group test up \
      	addif 19.16.85.21 deprecated -failover netmask + broadcast + up

      同様に、hme1 を同じグループ (test) に入れ、検査用 IP アドレスを指定するには、次のコマンドを入力します。


      19.16.85.20 netmask + broadcast + group test up \
      	addif 19.16.85.22 deprecated -failover netmask + broadcast + up
    2. IPv6 の場合は、/etc/hostname6.interface ファイルに次の行を追加します。


      -failover group group-name up

      注 –

      この検査用 IP アドレスは、次回のリブートで有効になります。構成をその場で有効にするには、手順 1 から 3 を実行する必要があります。


      たとえば、IPv6 アドレスをもつ hme0 に対して test グループを作成するには、次の行を /etc/hostname6.hme0 ファイルに追加します。


      -failover group test up

      同様に、hme1 を同じグループ (test) に入れ、検査用 IP アドレスを指定するには、次の行を /etc/hostname6.hme1 ファイルに追加します。


      -failover group test up

注 –

マルチパスグループにさらにインタフェースを追加する場合は、上記の手順 1 から 3 を繰り返します。新しいインタフェースを動作しているシステム上の既存のグループに追加することができます。ただし、リブート後は変更の内容は失われます。


インタフェースの 1 つが待機インタフェースであるマルチパスグループを構成するには

この手順の例では、hme1 を待機インタフェースとして構成します。


注 –

待機インタフェースのアドレスには、検査用 IP アドレスしか指定できません。


  1. 2 つのインタフェースでマルチパスインタフェースグループを構成するにはの手順 1 と 2 を実行します。

  2. 次の手順を実行し、すべての物理インタフェースに検査用 IP アドレスを設定します。

    1. hme0 のような非待機インタフェースは、2 つのインタフェースでマルチパスインタフェースグループを構成するにはの手順 3 を実行します。

    2. 待機インタフェースは、次のコマンドを使って検査用 IP アドレスを設定します。


      注 –

      待機インタフェースのアドレスには、検査用 IP アドレスしか指定できません。待機インタフェースは、これ以外の IP アドレスをもつことはできません。



      # ifconfig interface-name plumb ip-address <other-parameters> deprecated -failover standby up
      

      注 –

      -failover オプションは standby オプションより前に、standby オプションは up より前にそれぞれ指定する必要があります。


      <other-parameters> には、実際の構成に応じたパラメータを指定します。詳細は、ifconfig(1M) のマニュアルページを参照してください。

      たとえば、次の構成に基づいて検査用 IP アドレスを作成します。

      • 物理インタフェース hme1 を待機インタフェースにする。

      • アドレスは 19.16.85.22

      • deprecated-failover を指定する。

      • ネットマスクおよびブロードキャストアドレスをデフォルト値に設定する。

      次のコマンドを入力します。


      # ifconfig hme1 plumb 19.16.85.22 netmask + broadcast + deprecated -failover standby up
      

      結果を確認するには、次のコマンドを入力します。


      # ifconfig hme1
      flags=69040843<UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,NOFAILOVER,STANDBY,INACTIVE> 
              mtu 1500 index 4 inet 19.16.85.22 netmask ffffff00 broadcast 19.16.85.255
              groupname test

      IPv6 の場合、検査用 IP アドレスを作成するには、次のコマンドを使用します。


      ifconfig hme1 plumb -failover standby up

    INACTIVE は、このインタフェースが送信パケットには使用されないことを示します。この待機インタフェースに障害経路の迂回が行われると、INACTIVE 状態は取り消されます。

  3. (この手順は、リブート後も構成を有効にしたい場合だけ必要です。) リブート後も構成を有効にするには、次の手順を実行します。

    1. IPv4 の場合は、/etc/hostname.interface ファイルに次の行を追加します。


      interface-address <parameters> group group-name up \
      	addif logical-interface-failover deprecated <parameters> up

      注 –

      この検査用 IP アドレスは、次回のリブートで有効になります。構成をその場で有効にするには、手順 1 と 2 を実行する必要があります。


      たとえば、hme0 に対し次の構成に基づいて test グループを作成します。

      • 物理インタフェース hme0 のアドレスが 19.16.85.19

      • 論理インタフェースのアドレスが 19.16.85.21

      • deprecated-failover を指定する。

      • ネットマスクおよびブロードキャストアドレスをデフォルト値に設定する。

      /etc/hostname.hme0 ファイルに次の行を追加します。


      19.16.85.19 netmask + broadcast + group test up \
      	addif 19.16.85.21 deprecated -failover netmask + broadcast + up

      同様に、hme1 を同じグループ (test) に入れ、検査用 IP アドレスを指定するには、次のコマンドを入力します。


      19.16.85.22 netmask + broadcast + deprecated + group test -failover standby up 
    2. IPv6 の場合は、/etc/hostname6.interface ファイルに次の行を追加します。


      -failover group group-name up

      注 –

      この検査用 IP アドレスは、次回のリブートで有効になります。構成をその場で有効にするには、手順 1 と 2 を実行する必要があります。


      たとえば、IPv6 アドレスをもつ hme0 に対して test グループを作成するには、次の行を /etc/hostname6.hme0 ファイルに追加します。


      -failover group test up

      同様に、hme1 を同じグループ (test) に入れ、検査用 IP アドレスを指定するには、次の行を /etc/hostname6.hme1 ファイルに追加します。


      -failover group test standby up

物理インタフェースが属するグループを表示するには

  1. スーパーユーザーになります。

  2. コマンド行から次のコマンドを入力します。


    # ifconfig interface-name
    

たとえば、hme0 のグループ名を表示するには、次のコマンドを入力します。


# ifconfig hme0
	hme0: flags=9000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
        	inet 19.16.85.19 netmask ffffff00 broadcast 19.16.85.255
        	groupname test

IPv6 だけのグループ名を表示するには、次のコマンドを入力します。


# ifconfig hme0 inet6
	hme0: flags=a000841<UP,RUNNING,MULTICAST,IPv6> mtu 1500 index 2
        	inet6 fe80::a00:20ff:feb9:19fa/10 
        	groupname test

グループにインタフェースを追加するには

  1. スーパーユーザーになります。

  2. コマンド行から次のコマンドを入力します。


    # ifconfig interface-name group group-name
    

たとえば、test グループに hme0 を追加するには、次のコマンドを入力します。


# ifconfig hme0 group test

グループからインタフェースを削除するには

  1. スーパーユーザーになります。

  2. コマンド行から次のコマンドを入力します。


    # ifconfig interface-name group ""
    

    引用符 ("") は空文字列を表します。

たとえば、test グループから hme0 を削除するには、次のコマンドを入力します。


# ifconfig hme0 group ""
# ifconfig hme0
hme0: flags=9000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
      	 inet 19.16.85.19 netmask ffffff00 broadcast 19.16.85.255
# ifconfig hme0 inet6
hme0: flags=a000841<UP,RUNNING,MULTICAST,IPv6> mtu 1500 index 2
      	 inet6 fe80::a00:20ff:feb9:19fa/10 

マルチパスグループからのネットワークアダプタの削除に関連情報が記述されています。

インタフェースを既存のグループから別のグループに移動するには

  1. スーパーユーザーになります。

  2. コマンド行から次のコマンドを入力します。


    # ifconfig interface-name group group-name
    

注 –

インタフェースを新しいグループに追加すると、そのインタフェースは現在のグループから自動的に削除されます。


たとえば、test グループから hme0 を削除し、cs-link グループに追加するには、次のコマンドを入力します。


# ifconfig hme0 group cs-link

そのインタフェースが現在のグループから削除され、cs-link グループに追加されます。

障害が発生した物理インタフェースの交換

障害が発生した物理インタフェースを交換する場合は、まず次の各手順を手作業で行う必要があります。次の手順の例では、インタフェースとして hme0hme1 を使用します。両インタフェースとも同じマルチパスグループに属し、hme0 に障害が発生したとします。さらに、論理インタフェース hme0:1 が検査用 IP アドレスをもっているとします。


注 –

次の手順の例では、障害のあるインタフェースを同じ名前の物理インタフェースで置き換えます (たとえば、hme0hme0 で置き換えます)。


障害が発生した物理インタフェースを取り外すには


注 –

検査用 IP アドレスが /etc/hostname.hme0 ファイルを使用して結合されている場合は、障害が発生した物理インタフェースを取り外すには の手順 1 は省略することができます。


  1. 次のコマンドを実行して、検査用 IP アドレスの構成情報を入手します。


    # ifconfig hme0:1
     
    hme0:1:
    flags=9040842<BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,NOFAILOVER>
    mtu 1500 index 3
    inet 129.146.233.250 netmask ffffff00 broadcast 129.146.233.255

    この情報は、物理インタフェースを交換する時に、検査用 IP アドレスを再結合するために必要です。

    検査用 IP アドレスの hostname ファイルを使用した構成方法についての詳細は、 hostname ファイルによるグループと検査用 IP アドレスの構成 を参照してください。

  2. 物理インタフェースの取り外し方については、cfgadm(1M) のマニュアルページ、『Sun Enterprise 6x00, 5x00, 4x00, 3x00 システム Dynamic Reconfiguration ユーザーマニュアル』、または『Sun Enterprise 10000 Dynamic Reconfiguration ユーザーマニュアル』を参照してください。

障害が発生した物理インタフェースを交換するには

  1. 物理インタフェースの交換方法については、cfgadm(1M) のマニュアルページ、『Sun Enterprise 6x00, 5x00, 4x00, 3x00 システム Dynamic Reconfiguration ユーザーマニュアル』、または『Sun Enterprise 10000 Dynamic Reconfiguration ユーザーマニュアル』を参照してください。

  2. 次のコマンドを実行して、検査用 IP アドレスを結合し、有効にします。


    # ifconfig hme0 <test address configuration>
    

    注 –

    検査用 IP アドレスの構成 <test address configuration> は、/etc/hostname.hme0 ファイルに構成されたものと同じです。障害が発生した物理インタフェースを取り外すにはの手順 1 に従った場合は、検査用 IP の構成は同手順で表示された構成と同じにします。


    これによって、in.mpathd デーモンが検査を再開します。検査の結果、in.mpathd は回復を検出し、障害経路の迂回が行われた IP アドレスを hme1 から回復した経路へ戻します。

    検査用 IP アドレスの構成方法についての詳細は、検査用 IP アドレスの構成 を参照してください。

システムの起動時に存在しない物理インタフェースの回復

システムの起動時に存在しない物理インタフェースを回復するには、次の手順を行なってください。次の手順では、物理インタフェース hme0hme1 を例として使用します。なお、次の手順では hme0hme1 の両方のインタフェースが 1 つのマルチパスグループ内にあり、hme0 はシステムの起動時に存在しないということを想定しています。

システムの起動時に存在しない物理インタフェースを回復するには

  1. 障害の発生したネットワーク情報を、コンソールログ中の障害エラーメッセージから入手します。

    syslogd(3C) のマニュアルページを参照してください。エラーメッセージは次のように表示されます。


    moving addresses from failed IPv4 interfaces:hme1 (moved to hme0)

    または、次のようなエラーメッセージが表示されます。


    moving addresses from failed IPv4 interfaces:hme1 (couldn't move, no alternative interface)
  2. システムに物理インタフェースを接続します。

    物理インタフェースの交換方法については、cfgadm(1M) のマニュアルページ、『Sun Enterprise 6x00, 5x00, 4x00, and 3x00 システム Dynamic Reconfiguration ユーザーマニュアル』、または『Sun Enterprise 10000 Dynamic Reconfiguration ユーザーマニュアル』を参照してください。

  3. 手順 1 のエラーメッセージの内容を参照し、アドレスを移動できなかった場合は手順 5 へ、アドレスが移動された場合は手順 4 へ進んでください。

  4. 次の指示に従って、障害迂回処理の一部として構成された論理インタフェースを結合解除します。

    1. /etc/hostname.<moved_from_interface> (この場合は /etc/hostname.hme1) のファイルの内容を見て、障害迂回処理の一部として構成された論理インタフェースを確認してください。

    2. 次のコマンドを入力して、各障害迂回 IP アドレスを結合解除します。


      # ifconfig moved_to_interface removeif moved_ip_address
      

      注 –

      障害迂回アドレスは、failover パラメータが指定されたアドレス、または -failover パラメータが指定されていないアドレスです。-failover が指定された IP アドレスは、結合解除の必要がありません。


      たとえば、/etc/hostname.hme0 ファイルの中に次の行が含まれている場合


      inet 1.2.3.4 -failover up group one
      addif 1.2.3.5 failover up
      addif 1.2.3.6 failover up

      各障害迂回 IP アドレスを結合解除するためには、次のコマンドを入力します。


      # ifconfig hme0 removeif 1.2.3.5
      # ifconfig hme0 removeif 1.2.3.6
  5. 問題となっている各インタフェース用に次のコマンドを入力して、交換した物理インタフェースの IPv4 情報を再構成します。


    # ifconfig removed_from_NIC <parameters>

    手順 4 の例を使用して、次のコマンドを入力します。


    # ifconfig hme1 inet plumb
    # ifconfig hme1 inet 1.2.3.4 -failover up group one
    # ifconfig hme1 addif 1.2.3.5 failover up
    # ifconfig hme1 addif 1.2.3.6 failover up

マルチパス構成ファイルの構成

マルチパス構成ファイル /etc/default/mpathd で、必要に応じて以下の 3 つのパラメータを調整できます。

これらのパラメータについては、マルチパス構成ファイルを参照してください。

マルチパス構成ファイルを構成するには

  1. スーパーユーザーになります。

  2. /etc/default/mpathd ファイルに対し、次の手順を実行しパラメータの値を変更します。

    1. FAILURE_DETECTION_TIME パラメータの新しい値を入力します。


      FAILURE_DETECTION_TIME=n
      
    2. FAILBACK パラメータの新しい値を入力します。


      FAILBACK=[yes | no]
    3. TRACK_INTERFACES_ONLY_WITH_GROUPS パラメータの新しい値を入力します。


      TRACK_INTERFACES_ONLY_WITH_GROUPS=[yes | no]
  3. コマンド行から次のコマンドを入力します。


    # pkill -HUP in.mpathd