in.mpathd マルチパスデーモンは、グループに属するすべてのインタフェースから検査信号を送信することによって障害や回復を検出します。in.mpathd マルチパスデーモンも、グループに属する各インタフェースで RUNNING フラグを監視することによって障害や回復を検出します。 グループに属するインタフェースに検査用 IP アドレスがあれば、デーモンは検査信号の送信を開始し、そのインタフェースに障害がないかどうかを判断します。デーモンは、連続する検査信号 5 個に対して何も応答がない場合、インタフェースに障害が発生していると見なします。RUNNING フラグが設定されていない場合も、インタフェースに障害が発生していることになります。検査頻度は、障害検出時間によって異なります。 デフォルトの障害検出時間は 10 秒です。つまり、検査頻度は 2 秒に 1 回の割合です。ネットワークで同期が発生するのを防ぐため、検査は定期的には実行されません。検査信号 5 個に連続して応答がない場合、in.mpathd はインタフェースに障害が発生していると見なします。このデーモンは、障害経路の迂回処理を行います。これにより、障害のあるインタフェースから同じグループ内の正常な別のインタフェースにネットワークアクセスが移されます。待機インタフェースが構成されている場合は、IP アドレスと、ブロードキャストやマルチキャストメンバーシップの障害経路の迂回用に待機インタフェースが選択されます。待機インタフェースが構成されていない場合は、最小の IP アドレスをもつインタフェースが選択されます。関連情報については、in.mpathd(1M) のマニュアルページを参照してください。
次に、一般的な構成例を 2 つ紹介します。この 2 つの例から、インタフェースに障害が発生したとき構成内容がどのように変化するかについても確認できます。hme0 インタフェースに障害が発生すると、すべてのアドレスが hme0 から hme1 に移されます。
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 hme0:1: flags=9000843<UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,NOFAILOVER> mtu 1500 index 2 inet 19.16.85.21 netmask ffffff00 broadcast 129.146.85.255 hme1: flags=9000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2 inet 19.16.85.20 netmask ffffff00 broadcast 19.16.85.255 groupname test hme1:1: flags=9000843<UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,NOFAILOVER> mtu 1500 index 2 inet 19.16.85.22 netmask ffffff00 broadcast 129.146.85.255 hme0: flags=a000841<UP,RUNNING,MULTICAST,IPv6,NOFAILOVER> mtu 1500 index 2 inet6 fe80::a00:20ff:feb9:19fa/10 groupname test hme1: flags=a000841<UP,RUNNING,MULTICAST,IPv6,NOFAILOVER> mtu 1500 index 2 inet6 fe80::a00:20ff:feb9:1bfc/10 groupname test |
hme0: flags=19000842<BROADCAST,RUNNING,MULTICAST,IPv4,NOFAILOVER,FAILED> mtu 0 index 2 inet 0.0.0.0 netmask 0 groupname test hme0:1: flags=19040843<UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,NOFAILOVER,FAILED> mtu 1500 index 2 inet 19.16.85.21 netmask ffffff00 broadcast 129.146.85.255 hme1: flags=9000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2 inet 19.16.85.20 netmask ffffff00 broadcast 19.16.85.255 groupname test hme1:1: flags=9000843<UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,NOFAILOVER> mtu 1500 index 2 inet 19.16.85.22 netmask ffffff00 broadcast 129.146.85.255 hme1:2: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 6 inet 19.16.85.19 netmask ffffff00 broadcast 19.16.18.255 hme0: flags=a000841<UP,RUNNING,MULTICAST,IPv6,NOFAILOVER,FAILED> mtu 1500 index 2 inet6 fe80::a00:20ff:feb9:19fa/10 groupname test hme1: flags=a000841<UP,RUNNING,MULTICAST,IPv6,NOFAILOVER> mtu 1500 index 2 inet6 fe80::a00:20ff:feb9:1bfc/10 groupname test |
上記の例では、障害が発生したことを示す FAILED フラグが hme0 に設定されています。また、hme1:2 が新しく作成されているのがわかります。hme0 の構成は hme1:2 に引き継がれました。これによって、アドレス 19.16.85.19 は、hme1 からアクセスできるようになります。19.16.85.19 に対応するマルチキャストメンバーシップはこのあともパケットを受信できますが、パケットは hme1 を通して受信されます。アドレス 19.16.85.19 が hme0 から hme1 に障害経路の迂回が行われるとき、hme0 にはダミーアドレス 0.0.0.0 が作成されます。ダミーアドレスは、回復した経路への復帰時に削除されます。ダミーアドレスは、hme0 を引き続きアクセスできる状態に保つために作成されます。hme0 がなければ、hme0:1 は存在できません。
同様に、IPv6 アドレスが hme0 から hme1 へ移されています。IPv6 では、マルチキャストメンバーシップはインタフェースインデックスに関連付けられています。マルチキャストメンバーシップも、障害経路の迂回処理により、hme0 から hme1 へ移されます。 in.ndpd によって構成されたすべてのアドレスも移動します。この動作は、上記の例には示されていません。
in.mpathd デーモンは引き続き、障害が発生した NIC の hme0 を通して検査を行います。デーモンは、デフォルトの障害検出時間 10 秒の間に連続して 10 回の応答を受け取った時点で、インタフェースが回復されたものとみなします。その後、回復した経路への復帰処理を行います。回復した経路への復帰が行われると、元の構成が再び確立されます。
障害や回復の検出時にコンソールに出力されるエラーメッセージについては、in.mpathd(1M) のマニュアルページを参照してください。