Go to main content
Oracle® Solaris 11.3 での TCP/IP ネットワーク、IPMP、および IP トンネルの管理

印刷ビューの終了

更新: 2016 年 11 月
 
 

IPMP での障害検出

IPMP は、トラフィックを送受信するネットワークの継続的な可用性を保証するために、IPMP グループのベースとなる IP インタフェースに対して障害検出を実行します。故障したインタフェースは、修復されるまで使用不可能なままになります。残りのアクティブインタフェースが機能し続ける一方で、既存のスタンバイインタフェースが必要に応じて配備されます。

    in.mpathd デーモンは次のタイプの障害検出を処理します。

    • プローブベースの障害検出の 2 つのタイプ:

    • 検査用アドレスが構成されない (推移的プローブ)。

    • 検査用アドレスが構成される。

  • リンクベースの障害検出 (NIC ドライバがサポートしている場合)

プローブベースの障害検出

プローブベースの障害検出では、ICMP プローブを使用してインタフェースが故障しているかどうかをチェックします。この障害検出手法の実装は、検査用アドレスが使用されるかどうかによって決まります。

検査用アドレスを使用するプローブベースの障害検出

この障害検出手法では、検査用アドレスを使用する ICMP 検査信号メッセージを送受信します。プローブトラフィックまたはテストトラフィックとも呼ばれるこれらのメッセージは、インタフェース経由で同じローカルネットワーク上の 1 つ以上のターゲットシステムに送信されます。in.mpathd デーモンは、プローブベースの障害検出用に構成されたすべてのインタフェースを経由してすべてのターゲットを個別にプローブします。ある特定のインタフェースで、連続する 5 つのプローブに対して応答がない場合、in.mpathd デーモンはそのインタフェースに障害があるものとみなします。プローブを発信する頻度は、障害検出時間 (FDT) に依存します。障害検出時間のデフォルト値は 10 秒です。ただし、FDT は IPMP 構成ファイルで調整できます。手順については、IPMP デーモンの動作を構成する方法を参照してください。

プローブベースの障害検出を最適化するには、in.mpathd デーモンからのプローブを受信する複数のターゲットシステムを設定する必要があります。複数のターゲットシステムを設定することで、報告された障害の性質をより正確に判定できます。たとえば、唯一定義されたターゲットシステムから応答がない場合、そのターゲットシステムの障害を示している可能性もあれば、IPMP グループのインタフェースの 1 つの障害を示している可能性もあります。これに対し、いくつかのターゲットシステムのうちの 1 つのシステムだけがプローブに応答しない場合は、IPMP グループ自体ではなく、ターゲットシステムで障害が発生している可能性があります。

in.mpathd デーモンは、プローブするターゲットシステムを動的に決定します。まず、デーモンはルーティングテーブル内で、IPMP グループのインタフェースに関連付けられた検査用アドレスと同じサブネット上にあるターゲットシステムを検索します。そのようなターゲットが見つかった場合、デーモンはそれらをプローブのターゲットとして使用します。同じサブネット上でターゲットシステムが見つからない場合、デーモンは、リンク上の近くのホストをプローブするマルチキャストパケットを送信します。ターゲットシステムとして使用するホストを決定するために、すべてのホストのマルチキャストアドレス (IPv4 では 224.0.0.1、IPv6 では ff02::1) にマルチキャストパケットが送信されます。エコーパケットに応答する最初の 5 つのホストが、プローブのターゲットとして選択されます。マルチキャストプローブに応答したルーターまたはホストを検出できない場合、デーモンはプローブベースの障害を検出できません。この場合、ipmpstat –i コマンドはプローブの状態を unknown として報告します。

ホストルートを使用して、in.mpathd デーモンが使用するターゲットシステムのリストを明示的に構成できます。手順については、プローブベースの障害検出の構成を参照してください。

検査用アドレスを使用しないプローブベースの障害検出

    検査用アドレスを使用しないこの手法は、2 種類のプローブを使用して実装されています。

  • ICMP プローブ

    ICMP プローブは、ルーティングテーブルに定義されたターゲットをプローブするために、IPMP グループ内のアクティブインタフェースによって送信されます。アクティブインタフェースとは、そのインタフェースのリンク層 (L2) アドレス宛てのインバウンド IP パケットを受信できるベースとなるインタフェースのことです。ICMP プローブは、データアドレスをそのプローブの発信元アドレスとして使用します。ICMP プローブがそのターゲットに到達し、ターゲットから応答が得られた場合、そのアクティブインタフェースは動作しています。

  • 推移的プローブ

    推移的プローブは、アクティブインタフェースをプローブするために、IPMP グループ内の代替インタフェースによって送信されます。代替インタフェースとは、インバウンド IP パケットを能動的に受信しないベースとなるインタフェースのことです。

    たとえば、4 つのベースとなるインタフェースと 1 つのデータアドレスから成る IPMP グループを考えます。この構成では、アウトバウンドパケットはベースとなるインタフェースをすべて使用できます。一方、インバウンドパケットは、データアドレスがバインドされたインタフェースによってのみ受信できます。インバウンドパケットを受信できない残り 3 つのベースとなるインタフェースが、代替インタフェースとなります。

    代替インタフェースがアクティブインタフェースへのプローブの送信と応答の受信に成功した場合、そのアクティブインタフェースは機能しており、推論により、プローブを送信した代替インタフェースも機能しています。


注 -  Oracle Solaris では、プローブベースの障害検出は検査用アドレスを使用して動作します。検査用アドレスなしでプローブベースの障害検出を選択するには、推移的プローブを手動で有効にする必要があります。手順については、障害検出手法の選択を参照してください。

グループ障害

グループ障害は、IPMP グループ内のすべてのインタフェースで同時に障害が発生したと思われる場合に発生します。この場合、ベースとなるインタフェースは一切使用できません。また、すべてのターゲットシステムで同時に障害が発生したときに、プローブベースの障害検出が有効になっていた場合、in.mpathd デーモンはその現在のターゲットシステムをすべてフラッシュし、新しいターゲットシステムに対してプローブします。

検査用アドレスを持たない IPMP グループでは、アクティブインタフェースをプローブできる単一のインタフェースがプローバとして指定されます。この指定されたインタフェースには、FAILED フラグと PROBER フラグが両方とも設定されます。このインタフェースにデータアドレスがバインドされるため、このインタフェースは引き続き、ターゲットをプローブして回復を検出できます。

リンクベースの障害検出

リンクベースの障害検出は、インタフェースがその種の障害検出をサポートしている場合は、常に有効です。

サードパーティーのインタフェースがリンクベースの障害検出をサポートしているかどうかを判定するには、ipmpstat –i コマンドを使用します。ある特定のインタフェースの出力の LINK 列に unknown ステータスが含まれる場合、そのインタフェースはリンクベースの障害検出をサポートしません。ネットワークデバイスに関するより具体的な情報については、製造元のドキュメントを参照してください。

リンクベースの障害検出をサポートするネットワークドライバは、インタフェースのリンク状態をモニターし、リンク状態が変わったときにネットワークサブシステムに通知します。変更を通知されると、ネットワークサブシステムは、インタフェースの RUNNING フラグを適宜設定または解除します。インタフェースの RUNNING フラグが解除されたことを検出すると、in.mpathd デーモンは即座にインタフェースに障害があるものとみなします。

障害検出と匿名グループ機能

IPMP は匿名グループでの障害検出をサポートしています。デフォルトでは、IPMP は IPMP グループに属するインタフェースのステータスのみをモニターします。ただし、どの IPMP グループにも属していないインタフェースのステータスも追跡するように IPMP デーモンを構成できます。したがって、これらのインタフェースは匿名グループの一部とみなされます。ipmpstat –g コマンドを発行した場合、匿名グループは二重ダッシュ (--) として表示されます。匿名グループ内のインタフェースでは、データアドレスが検査用アドレスとしても機能します。これらのインタフェースは名前付きの IPMP グループに属していないため、これらのアドレスはアプリケーションから可視となります。IPMP グループの一部でないインタフェースの追跡を有効にする方法については、IPMP デーモンの動作を構成する方法を参照してください。