Go to main content

マニュアルページ セクション 8: システム管理コマンド

印刷ビューの終了

更新: 2018年8月8日
 
 

in.mpathd(8)

名前

in.mpathd - IP マルチパスデーモン

形式

/usr/lib/inet/in.mpathd 

説明

in.mpathd デーモンは、IPMP グループに配置された IP インタフェース (またはオプションでシステム上のすべての IP インタフェース) の障害および修復検出を実行します。また、管理者が構成したポリシーと一致する方法で、IPMP グループ内のどの IP インタフェースが「アクティブ」になるか (システムによって IP データトラフィックの送受信に使用されるか) を制御します。

in.mpathd デーモンは、3 つの方法で IP インタフェースの障害と修復を検出できます。各 IP インタフェースの IFF_PHYSRUNNING フラグをモニターする方法 (リンク状態ベースの障害検出)、各 IP インタフェースに対して ICMP プローブを送受信する方法 (ICMP プローブベースの障害検出)、または推移的プローブによる方法です。

推移的プローブが有効になっている場合、IP インタフェースは、インバウンド IP データトラフィックを受信できるクラス (ipmpstat(8)INBOUND を参照) と、受信できないクラスの 2 つのクラスに分割されます。インバウンド IP データトラフィックを受信できるインタフェースは、ICMP プローブを送受信することで障害を検出します。IP データトラフィックを受信できないクラスは、受信できるインタフェースとリンクレイヤー (「推移的」) プローブを交換することで障害を検出します。

デフォルトでは、リンク状態ベースの障害検出だけが有効になっています。これには、リンクステータスの通知をサポートするドライバが必要です。ICMP プローブベースの障害検出を有効にするには、後述するように、1 つ以上のテストアドレスを構成する必要があります。推移的プローブは、SMF プロパティーの値 (下記参照) を「true」(デフォルト値は「false」) に変更してシステムごとに有効にすることも、インタフェースの「allow-xprobe」ifprop を「true」(デフォルト値は「inherit」。これは、推移的プローブが有効かどうかの判断に、システムごとの SMF プロパティーの値が使用されることを示します) に変更して IPMP グループインタエースごとに有効にすることもできます。

svc:/network/ipmp/config/transitive-probing

推移的プローブを有効にするために transitive-probing プロパティーまたは「allow-xprobe」ifprop の値を変更する方法の詳細は、「使用例」を参照してください。

ICMP プローブベースと推移的プローブベースのどちらの障害検出方法でも、IP インタフェースの送受信パスの全体がテストされます。どの障害検出方法が有効になっているかを確認するには、ipmpstat(8) ユーティリティーを使用します。

transitive-probingtrue に設定され、指定された IPMP グループにテストアドレスが構成されていない場合は、推移的プローブが使用されます。それ以外の場合は、どのような状況でも推移的プローブは使用されません。

リンク状態ベースの障害検出だけが有効になっている場合は、IFF_PHYSRUNNING フラグの状態だけからインタフェースの健全性が判定されます。プローブが有効になっている場合は、リンク状態とプローブのどちらかによって障害が示されれば、インタフェースに障害が発生したとみなされ、その障害検出方法によって障害が修正されたことが示されれば、インタフェースが修復されたとみなされます。グループ内のすべてのインタフェースを同じ障害検出方法で構成する必要はありませんが、少なくとも 1 つの IP テストアドレスが存在するグループのインタフェースでは、推移的プローブは無効になります。

前述のように、ICMP プローブベースの障害検出を実行するには、IP インタフェースごとに in.mpathd がプローブを送受信するためのテストアドレスが必要です。ipadm(8) を使用してベースとなるインタフェース上に作成されたアドレスは、自動的にテストアドレスとして使用されます。システムはこのようなアドレスに対して自動的に NOFAILOVER フラグを設定します。各アドレスは、静的に構成することも、DHCP によって取得することもできます。ターゲットを見つけるため、 in.mpathd は最初にルーティングテーブルで同じサブネット上の経路を参照し、指定されている次のホップを使用します。一致する経路がない場合は、すべてのホストに ICMP プローブを送信し、応答したシステムのサブネットを選択します。したがって、プローブベースの障害検出を動作させるためには、ICMP エコー要求プローブに対して応答する各サブネット上に少なくとも 1 つの近傍が存在する必要があります。ipmpstat(8) ユーティリティーを使用して、現在のプローブターゲットの情報と送信されたプローブのステータスの両方を表示できます。

IPv4 と IPv6 の両方がサポートされます。IP インタフェースが IPv4 用に plumb され、IPv4 テストアドレスが構成されている場合、in.mpathd はその IP インタフェース経由で ICMPv4 プローブの送信を開始します。同様に、IP インタフェースが IPv6 用に plumb され、IPv6 テストアドレスが構成されている場合、in.mpathd はその IP インタフェース経由で ICMPv6 プローブの送信を開始します。ただし、in.mpathd はリンクローカルでない IPv6 テストアドレスを無視します。IPv4 と IPv6 の両方が plumb されている場合は、2 つのうち 1 つだけ (つまり、IPv4 テストアドレスと IPv6 テストアドレスのどちらか) を構成すれば十分です。IPv4 と IPv6 の両方のテストアドレスが構成されている場合、 in.mpathd は ICMPv4 と ICMPv6 の両方を使用して検索します。

前述のように、in.mpathd は IPMP グループ内のどの IP インタフェースが「アクティブ」になるか (システムによって IP データトラフィックの送受信に使用されるか) も制御します。特に、in.mpathd は各 IPMP グループの管理構成を追跡し、各グループ内のアクティブな IP インタフェースの数をその構成と一致させようとします。したがって、アクティブな IP インタフェースに障害が発生した場合、in.mpathd はグループ内に INACTIVE 状態のインタフェースが存在すれば、それをアクティブ化します (STANDBY としてもマークされている INACTIVE 状態のインタフェースが優先されます)。同様に、IP インタフェースが修復され、修復の結果として IPMP グループに管理構成で指定された数より多くのアクティブなインタフェースが残った場合、後述のように FAILBACK 変数が使用された場合を除き、in.mpathd はいずれかのインタフェースを (STANDBY としてマークされたものを優先して) 非アクティブ化します。(たとえば、if_mpadm(8) に対応して) IP インタフェースをオフラインにするときも、in.mpathd によって同じような調整が行われます。

in.mpathd デーモンは、/etc/default/mpathd 内の FAILURE_DETECTION_TIME FAILBACK、および TRACK_INTERFACES_ONLY_WITH_GROUPS の 3 つの変数値にアクセスします。

FAILURE_DETECTION_TIME 変数は、プローブベースの障害検出時間を指定します。障害検出時間が短いほど、プローブのトラフィックが増加します。FAILURE_DETECTION_TIME のデフォルト値は 10 秒です。これは、IP インタフェースの障害が in.mpathd によって 10 秒以内に検出されることを意味します。IP インタフェースの修復検出時間は、常に FAILURE_DETECTION_TIME の値の 2 倍です。リンクベースの障害検出によって検出された障害と修復はただちに作用しますが、ハードウェアの障害によってリンク状態が頻繁に変化していることが疑われる場合、in.mpathd はリンク状態の変化を無視することがあります。「診断 」を参照してください。

デフォルトでは、in.mpathd は障害と修復の検出を名前付きの IPMP グループの一部として構成されている IP インタフェースに限定します。 TRACK_INTERFACES_ONLY_WITH_GROUPSno に設定すると、名前付きの IPMP グループの一部でなくても、すべての IP インタフェースで障害と修復の検出が実行されます。追跡されているが、名前付きの IPMP グループの一部ではない IP インタフェースは、「匿名の」IPMP グループの一部であるとみなされます。この IPMP グループは、名前がないことに加えて、その IP インタフェースが同等でないため、IP インタフェースの障害発生時に相互に引き継ぎができないという点で特殊です。つまり、匿名の IPMP グループは障害と修復の検出にのみ使用可能であり、高可用性や負荷分散を提供しません。

前述のように、in.mpathd は IP インタフェースが修復されたことを検出すると、それをアクティブ化して、IP データトラフィックの送受信に再度使用できるようにします。しかし、FAILBACKno に設定されている場合は、グループ内にほかのアクティブな IP インタフェースが残っていない場合にのみ、IP インタフェースがアクティブ化されます。ただし、その後グループ内の別の IP インタフェースに障害が発生した場合は、インタフェースがアクティブ化されることがあります。

SMF による管理

in.mpathd デーモンサービスは、サービス管理機能 smf(7) により、サービス識別子の下で管理されます。

svc:/network/ipmp:default

再起動の有効化、無効化、要求などのこのサービスでの管理アクションは、svcadm(8) を使用して実行できます。

使用例 1 システムごとの推移的プローブによる障害検出を許可する

次の例は、IPMP グループインタフェース「ipmp1」に対する推移的プローブによる障害検出を有効にするために使用される一連のコマンドを示します。

# ipadm show-ifprop -p allow-xprobe ipmp1
IFNAME PROPERTY     PROTO PERM CURRENT PERSISTENT DEFAULT POSSIBLE
ipmp1  allow-xprobe ip    rw   inherit inherit    inherit inherit,true,false
# svccfg -s svc:/network/ipmp setprop config/transitive-probing=true
# svcadm refresh svc:/network/ipmp:default
使用例 2 IPMP グループごとの推移的プローブによる障害検出を許可する

次の例は、IPMP グループインタフェース「ipmp1」に対する推移的プローブによる障害検出を有効にするために使用される別の一連のコマンドを示します。

# svccfg -s svc:/network/ipmp listprop config/transitive-probing
   config/transitive-probing boolean false
# ipadm set-ifprop -p allow-xprobe=true -m ip ipmp1

ファイル

/etc/default/mpathd

in.mpathd デーモンによって使用されるデフォルト値が含まれています。

属性

属性についての詳細は、マニュアルページの attributes(7) を参照してください。

属性タイプ
属性値
使用条件
system/network

関連項目

icmp(4P), icmp6(4P), attributes(7), smf(7), if_mpadm(8), ifconfig(8), ipadm(8), ipmpstat(8), svcadm(8)

診断

IP interface interface_name has a hardware address which is not unique in group group_name; offlining

説明: プローブベースの障害検出、負荷分散、およびその他のコード IPMP 機能が正常に機能するためには、IPMP グループ内の各 IP インタフェースが一意のハードウェアアドレスを持つ必要があります。この要件が満たされない場合、 in.mpathd は重複するハードウェアアドレスを持つ IP インタフェースの 1 つを除くすべての IP インタフェースを自動的にオフラインにします。

IP interface interface_name now has a unique hardware address in group group_name; onlining

説明: 直前に検出された重複するハードウェアアドレスが一意になったため、in.mpathd interface_name をオンライン状態に戻しました。

Test address address is not unique in group; disabling probe-based failure detection on interface_name

説明: in.mpathd がプローブベースの障害検出を実行するには、グループ内の各テストアドレスが一意である必要があります。

No test address configured on interface interface_name disabling probe-based failure detection on it

説明: in.mpathd が IP インタフェースに対してプローブベースの障害検出を実行するには、IP インタフェースが IPv4、IPv6、またはその両方のテストアドレスを使用して構成されている必要があります。

IP interface_name in group group_name is not plumbed for IPv[4|6], affecting IPv[4|6] connectivity

説明: マルチパスグループ内のすべての IP インタフェースが均一に plumb されている必要があります。たとえば、1 つの IP インタフェースが IPv4 用に plumb されている場合は、グループ内のすべての IP インタフェースが IPv4 用に plumb されている必要があり、そうしないと IPv4 パケットを確実に送受信できなくなります。すべての IP インタフェース上にプッシュされる STREAMS モジュールも、同一である必要があります。

The link has come up on interface_name more than 2 times in the last minute; disabling repair until it stabilizes

説明: (ケーブル不良などで) ハードウェアが断続的に停止するインタフェースの影響を抑えるため、in.mpathd はリンク状態が頻繁に変化する IP インタフェースを、リンク状態が安定するまで修復されたとみなしません。

Invalid failure detection time of time , assuming default 10000 ms

説明: /etc/default/mpathd ファイルの FAILURE_DETECTION_TIME で無効な値が検出されました。

Too small failure detection time of time , assuming minimum of 100 ms

説明: FAILURE_DETECTION_TIME に指定できる最小値は現在のところ 100 ミリ秒です。

Invalid value for FAILBACK value

説明: ブール値変数 FAILBACK の有効な値は yes または no です。

Invalid value for TRACK_INTERFACES_ONLY_WITH_GROUPS value

説明: ブール値変数 TRACK_INTERFACES_ONLY_WITH_GROUPS の有効な値は yes または no です。

Cannot meet requested failure detection time of time ms on (inet[6] interface_name) new failure detection time for group group_name is time ms

説明: ICMP プローブの往復時間が、現在の障害検出時間を維持するのに必要な時間より長くなっています。ネットワークに輻輳が発生しているか、プローブターゲットに負荷がかかっています。in.mpathd は、これらの状況でも障害検出を完了できる程度まで障害検出時間を自動的に延長します。

Improved failure detection time time ms on (inet[6] interface_name) for group group_name

説明: ICMP プローブの往復時間が短縮されたため、in.mpathd はそれに合わせて障害検出時間を短縮しました。

IP interface failure detected on interface_name

説明: in.mpathd は、interface_name 上で障害を検出し、IP データトラフィックに使用されないように interface_name に対して IFF_FAILED フラグを設定しました。

IP interface repair detected on interface_name

説明: in.mpathd は、interface_name 上で修復を検出し、 IFF_FAILED フラグをクリアしました。管理構成によっては、interface_name が再度 IP データトラフィックに使用される可能性があります。

All IP interfaces in group group are now unusable

説明: in.mpathd は、group 内のどの IP インタフェースも IP データトラフィックに使用できなくなり、グループのネットワーク接続が切断されたと判定しました。

At least 1 IP interface (interface_name ) in group group is now usable

説明: in.mpathd は、group 内の少なくとも 1 つの IP インタフェースがふたたび IP データトラフィックに使用できるようになり、グループのネットワーク接続が復元されたと判定しました。

The link has gone down on interface_name

説明: in.mpathd は、interface_nameIFF_PHYSRUNNING フラグがクリアされ、リンクが停止したことを検出しました。

The link has come up on interface_name

説明: in.mpathd は、interface_name IFF_PHYSRUNNING フラグが設定され、リンクが復旧したことを検出しました。