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 アドレスを指定します。

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


      注 –

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



      # ifconfig interface-name addif ip-address <パラメータ> -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 検査用 IP アドレスを deprecated と指定する必要があります。


      たとえば、次の構成で hme1 上に検査用 IP アドレスを構成するとします。

      • アドレスは 19.16.85.22

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

      • -failoverdeprecated を指定

      この場合、次のコマンドを入力します。


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


      # ifconfig interface-name inet6 -failover

      注 –

      IPv6 アドレスを割り当てられた物理インタフェースは、IPv4 アドレスとして同じマルチパスグループ内に明示的に追加されます。IPv4 アドレスを割り当てられた物理インタフェースがマルチパスグループに追加されることによって、このような結果になります。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. この手順は、リブート後も構成内容を保持したい場合にのみ行います。リブート後も構成内容を保持するには、次の手順に従ってください。

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


      interface-address <パラメータ> group group-name up \
      	addif logical-interface -failover deprecated <パラメータ> 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 アドレスを指定するには、/etc/hostname.hme1 ファイルに次の行を追加します。


      19.16.85.20 netmask + broadcast + group test up \
      	addif 19.16.85.22 deprecated -failover netmask + broadcast + up
    • 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 <その他のパラメータ> deprecated -failover 
      standby up

      注 –

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


      <その他のパラメータ> には、実際の構成に応じたパラメータを指定します。 詳細については、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. この手順は、リブート後も構成内容を保持したい場合にのみ行います。リブート後も構成内容を保持するには、次の手順に従ってください。

    • 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 
    • 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 グループに追加されます。

障害が発生した物理インタフェースの交換または物理インタフェースの DR 切り離しと DR 接続

この節の手順は、ifconfig(1M) を使用して構成される IP 層だけに適用されます。 ATM または他のサービスなど、IP 層よりも上位または下位の層が自動化されていない場合には、手動による特別な手順が必要です。この特別な手順は、事前切り離し時の構成解除および事後接続後の構成を行うために実行します。障害または DR の対処方法については、該当する層およびアプリケーションのマニュアルを参照してください。

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


注 –

次の手順の例では、障害のあるインタフェースを同じ名前の別の物理インタフェースで置き換えます。hme0 の置き換えを例にとります。


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


注 –

検査用 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 DR 構成マニュアル』を参照してください。

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

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

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


    # ifconfig hme0 <検査用 IP アドレス構成>
    

    注 –

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


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

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


    注 –

    障害が発生した物理インタフェースの回復時における、IP アドレスの回復した経路への復帰には 3 分ほどかかります。ネットワークトラフィックに応じて、この所要時間は異なります。また、所要時間は in.mpathd によって障害経路を迂回し回復した着信インタフェースの安定性によっても異なります。


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

この節の手順は、ifconfig(1M) を使用して構成される IP 層だけに適用されます。 ATM または他のサービスなど、IP 層よりも上位または下位の層が自動化されていない場合には、手動による特別な手順が必要です。この特別な手順は、事前切り離し時の構成解除および事後接続後の構成を行うために実行します。障害または DR の対処方法については、該当する層およびアプリケーションのマニュアルを参照してください。

NIC が Sun Fire プラットフォーム上の入出力ボードの一部である場合、この NIC に対して DR を実行すると、自動的に回復処理が行われます。NIC が PCI デバイスである場合も、自動的に回復処理が行われます。このため、NIC が DR 操作の一部として戻される場合には、次の手順を行う必要はありません。Sun Fire x800 および Sun Fire 15000 の詳細については、cfgadm_sbd(1M) のマニュアルページを参照してください。 物理インタフェースは、/etc/hostname.interface ファイルで指定された構成に回復されます。リブートを行っても構成が保持されるようにインタフェースを構成する方法の詳細については、マルチパスインタフェースグループの構成を参照してください。


注 –

以前の Sun Fire システム (Exx00) の場合には、DR 切り離しは手動で行う必要があります。ただし、DR 接続は自動的に行われます。


システムの起動時に存在しない物理インタフェースを回復するには、次の手順を行なってください。次の手順では、物理インタフェース hme0hme1 を例として使用します。どちらのインタフェースもマルチパスグループに属しているものとします。また、システムの起動時には hme0 が存在していなかったものとします。


注 –

障害が発生した物理インタフェースの回復時における、IP アドレスの障害回路の迂回には 3 分かかります。ネットワークトラフィックに応じて、この所要時間は異なります。また、所要時間は in.mpathd によって障害経路を迂回し回復した着信インタフェースの安定性によっても異なります。


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

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

    syslog(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 10000 DR 構成マニュアル』、または『Sun Enterprise 6x00, 5x00, 4x00, 3x00 システム Dynamic Reconfiguration ユーザーマニュアル』を参照してください。

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

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

    1. /etc/hostname.moved_from_interface ファイルの内容から、障害迂回処理の一部として構成された論理インタフェースを確認してください。

    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 を編集します。 次の手順 (複数選択可) に従って、3 つのパラメータのうち 1 つまたは複数のデフォルト値を変更します。

    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