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

Solaris ネットワークマルチパス

Solaris ネットワークマルチパスは、次の構成要素で実装されています。

in.mpathd デーモンは障害を検出します。 また、障害の迂回と回復した経路への復帰のため、さまざまなポリシーを実装します。in.mpathd は障害や回復を検出すると、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 度になります。回復した経路への復帰処理は、回復の検出後に行われます。インタフェースの障害が検出されるまでの時間は、およそ 20 秒から数分です。ただし、使用しているシステムとネットワーク負荷によって多少の増減があります。

障害検出時間は、障害検出用 ICMP エコー検査信号のみにあてはまります。リンク障害の結果、インタフェースの RUNNING フラグの設定がクリアされた場合、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 アドレスだけが別の物理インタフェースに移されます。これらのアドレスは、hostname ファイルに指定されたアドレスです。 物理インタフェースは、同じマルチパスグループ内のインタフェースです。


このような障害は、回復復帰で自動的に回復することはできません。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 は、現在のすべてのターゲット選択を取り消し、新しいターゲットを見つけます。物理インタフェース障害の検出を参照してください。


注 –

グループ障害は、以前のマニュアルではリンク障害と表記しています。