Solaris のシステム管理 (IP サービス)

第 28 章 ネットワークマルチパスの管理 (手順)

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

この章では、以下の内容について説明します。

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

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

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

マルチパスインタフェースグループの構成 (作業マップ)

表 28–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 <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 検査用 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

      注 –

      この時点では 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. (この手順は、リブート後も構成を有効にしたい場合だけ必要です。) リブート後も構成を有効にするには、次の手順を実行します。

    • 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
    • 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. (この手順は、リブート後も構成を有効にしたい場合だけ必要です。) リブート後も構成を有効にするには、次の手順を実行します。

    • 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 アドレスをもっているとします。


注 –

次の手順の例では、障害のあるインタフェースを同じ名前の物理インタフェースで置き換えます (たとえば、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 DR 構成マニュアル』を参照してください。

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

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

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


    # ifconfig hme0 <test address configuration>

    注 –

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


注 –

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


システムの起動時に存在しない物理インタフェースを回復するには、次の手順を行なってください。次の手順では、物理インタフェース hme0hme1 を例として使用します。なお、次の手順では hme0hme1 の両方のインタフェースが 1 つのマルチパスグループ内にあり、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 Ente rprise 6x00, 5x00, 4x00, 3x00 システム 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