Solaris ネットワークマルチパスは、次の構成要素で実装されています。
マルチパスデーモン – in.mpathd(1M)
ip(7P)
in.mpathd デーモンは障害を検出し、障害経路の迂回や回復した経路への復帰に対するさまざまな方針を実装します。in.mpathd は障害や回復を検出すると、ioctl を発行して障害経路の迂回や回復した経路への復帰を指示します。IP はこの ioctl に従い、ネットワークアクセスの障害経路の迂回を透過的かつ自動的に行います。
ある NIC グループに対して IP ネットワークマルチパスを使用している場合は、同じ NIC グループに対して Alternate Pathing (代替パス) を使用しないでください。同様に、代替パスを使用している場合は、IP ネットワークマルチパスを使用しないでください。NIC グループが異なる場合は、代替パスと IP ネットワークマルチパスを同時に使用できます。
in.mpathd デーモンは、2 つの方法でインタフェース障害および回復を検出します。 最初の方法では、インタフェースを通して ICMP エコー検査信号を送受信します。2 番目の方法では、インタフェースで RUNNING フラグを監視します。ネットワークインタフェースカードのいくつかのモデルのリンク状態は、RUNNING フラグによって反映されます。その結果、リンク障害が発生すると、すぐに検出されます。上記のいずれかの方法で障害が検出された場合、インタフェースで障害が発生したものと見なされます。また、前の両方の方法でインタフェースを回復した場合に限り、インタフェースが回復したものと見なされます。
in.mpathd デーモンは、リンクに接続されている標識 (他のシステムやルータなど) に対し、グループに属するすべてのインタフェースを通して ICMP エコー検査信号を送信し、障害や回復を検出します。デーモンは、マルチパスグループにインタフェースが追加され、検査用 IP アドレスが割り当てられていると、マルチパスグループのすべてのインタフェースを通して検査信号を送信し、障害を検出します。検査用 IP アドレスやグループの構成を行う手順については、2 つのインタフェースでマルチパスインタフェースグループを構成するにはを参照してください。
検査信号を送信する標識は in.mpathd が動的に決定するため、ユーザーは標識を指定できません。リンクに接続されているルーターは、検査信号の宛先となる標識として選択されます。リンクにルーターが接続されていない場合は、リンク上の任意のホストが選択されます。ホスト選択にあたっては、すべてのホストを意味するマルチキャストアドレス (IPv4 では 224.0.0.1、IPv6 では ff02::1) にマルチキャストパケットが送信されます。検査信号は、ICMP エコーパケットに応答する最初のいくつかのホストに送信されます。ICMP エコーパケットに応答するルーターやホストを発見できない場合には、in.mpathd は障害を検出できません。
グループの各 NIC が正常に機能するかどうかを確認するために、in.mpathd は、マルチパスグループのすべてのインタフェースを通してすべての標識に個別に検査信号を送信します。連続する 5 つの検査信号に対して応答がない場合、in.mpathd はそのインタフェースに障害があるものとみなします。検査信号を発信する頻度は、障害検出時間に依存します。障害検出時間のデフォルト値は 10 秒です。障害検出時間の変更方法については、in.mpathd(1M) のマニュアルページを参照してください。障害検出時間が 10 秒の場合、検査信号を発信する頻度はおよそ 2 秒に 1 度になります。
障害検出時間が適用されるのは、障害を検出する ICMP エコー検査信号方法だけです。リンク障害の結果、インタフェースの RUNNING フラグを消去すると、in.mpathd デーモンはフラグ状態の変更に対してただちに応答します。
in.mpathd は障害を検出すると、障害経路の迂回が行われ、すべてのネットワークアクセスが障害のあるインタフェースから同じグループの別の正常なインタフェースに移されます。待機インタフェースが構成されている場合、in.mpathd は、IP アドレス、ブロードキャスト、マルチキャストメンバーシップの移動先に待機インタフェースを選択します。待機インタフェースが構成されていない場合は、最小の IP アドレスをもつインタフェースを選択します。
同じグループ内の物理インタフェースがシステムの起動時に存在しない場合、障害の検出方法は特殊です。起動スクリプトの /etc/init.d/network が、これらの障害を検出します。これらの障害が検出された場合は、次のようなエラーメッセージを表示します。
moving addresses from failed IPv4 interfaces: hme0 (moved to hme1) moving addresses from failed IPv6 interfaces: hme0 (moved to hme1) |
このような特殊な障害検出では、ホスト名ファイルに指定された静的 IP アドレスだけが、同じマルチパスグループの異なる物理インタフェースに移動します。
このような障害は、回復復帰によって自動的に回復することはできません。IP ネットワークマルチパス の RCM DR ポスト接続機能は、NIC の DR 接続を自動化します。NIC のDR を接続すると、インタフェースが結合および構成されます。リブートする前にインタフェースを削除した場合、IP マルチパスのリブート対応機能により、IP アドレスが回復されます。 その IP アドレスは、交換した NIC に転送されます。 その後、交換した NIC は元の IP マルチパスインタフェースグループに追加されます。詳細については、システムの起動時に存在しない物理インタフェースを回復するにはを参照してください。
in.mpathd デーモンが連続した 10 個の検査パケットの応答を受信し、RUNNING フラグがインタフェースに設定されると、そのデーモンはインタフェースが回復したものと見なします。
あるインタフェースが正常でない場合、そのインタフェースのすべてのアドレスがグループ内の別の正常なインタフェースに移されます。in.mpathd は回復を検出するための検査信号の送出にアドレスを必要とするので、障害経路の迂回の際に移すことができない検査用 IP アドレスを構成する必要があります。この検査用 IP アドレスに関してはネットワークアクセスの障害経路の迂回は行われないため、この検査用 IP アドレスを通常のアプリケーションで使用しないようにしてください。設定手順については、2 つのインタフェースでマルチパスインタフェースグループを構成するにはを参照してください。in.mpathd が回復を検出した場合、すべてのネットワークアクセスを回復したインタフェースに回復した経路への復帰を行います。
物理インタフェース障害の検出 で説明されているように、自動回復復帰は、システムの起動時に存在しない物理インタフェースに対してはサポートされていません。システムの起動時に存在しない物理インタフェースを回復するにはを参照してください。
グループ障害とは、すべてのネットワークインタフェースカードで同時に障害が発生することです。in.mpathd はリンク障害が発生したものと見なし、障害経路の迂回を行いません。これは、すべての標識で同時に障害が発生した場合も同様です。この場合 in.mpathd は、現在のすべての標識選択を取り消し、新しく標識を見つけます (物理インタフェース障害の検出を参照)。
グループ障害は、以前のマニュアルではリンク障害と表記しています。