ipmpstat - IPMP サブシステムのステータスの表示
ipmpstat [-n] [-o field[,...] [-P]] -a|-g|-i|-p|-t
ipmpstat コマンドは、IPMP サブシステムに関する情報を簡潔に表示します。5 種類の出力モードがサポートされており、後述のとおり、IPMP サブシステムの状態をそれぞれ異なる視点で (アドレス、グループ、インタフェース、プローブ、およびターゲット) 表示できます。呼び出しごとに最大 1 つの出力モードを指定できます。表示される情報には自己矛盾のないことが保証されます。解析可能な出力形式も用意されているため、それをスクリプトで使用して IPMP サブシステムの状態を調べることができます。ipmpstat は基本的な特権のみで呼び出すことができますが、プローブモードだけはすべての特権を必要とします。
サポートしているオプションは、次のとおりです。
IPMP データアドレスの情報を表示します (「アドレス」出力モード)。
IPMP グループの情報を表示します (「グループ」出力モード)。
IP インタフェースの情報を表示します (「インタフェース」出力モード)。
IP アドレスからホスト名への解決を試みずに、IP アドレスを数値で表示します。このオプションはどの出力モードでも使用できます。
指定された出力フィールドだけを、指定どおりの順序で表示します。フィールド名はコンマで区切って指定します。大文字と小文字が区別されません。サポートされるフィールド名は、選択した出力モードによって異なります (後述の説明を参照)。特殊なフィールド名 all を使用すると、特定の出力モードの全フィールドを表示できます。
IPMP プローブの情報を表示します (「プローブ」出力モード)。
IPMP ターゲットの情報を表示します (「ターゲット」出力モード)。
後述のマシン解析可能な形式を使用して表示します。このオプションを指定する場合は、–o オプションを使用してフィールドのリストを明示的に指定する必要があります。
ipmpstat ユーティリティーでは、次の出力モードがサポートされています。これらのモードは、前述のオプションの一部に対応しています。
アドレスモードでは、システム上にあるすべての IPMP データアドレスの状態が表示されます。サポートされている出力フィールドは次のとおりです。
情報に関連付けられているホスト名 (または IP アドレス)。「down」状態のアドレスには重複するものが存在する可能性があるため、一意の識別情報を形成するにはアドレスと GROUP を組み合わせる必要があります。ある特定の IPMP グループで重複アドレスが存在する場合は、最大 1 つが表示されます。また、「up」状態のアドレスが常に優先されます。
アドレスの状態。アドレスが IFF_UP (ifconfig(1M) を参照) であれば up、アドレスが IFF_UP でなければ down になります。
このアドレスが属している IPMP IP インタフェース。
このアドレス宛のパケットを受信する、基になる IP インタフェース。これは、IP インタフェース障害などの外部イベントに応じて変更されることがあります。このフィールドが空の場合、システムはこのアドレス宛に送信された IP パケットを受け入れません (アドレスが「down」状態である場合や、その IPMP グループにはアクティブな IP インタフェースが残っていない場合など)。
この発信元アドレスを使用してパケットを送信する、基になる IP インタフェース。これは、IP インタフェース障害などの外部イベントに応じて変更されることがあります。このフィールドが空の場合、システムはこのアドレスを発信元としてパケットを送信することはありません (アドレスが「down」状態である場合や、その IPMP グループにはアクティブな IP インタフェースが残っていない場合など)。
–o を指定しない場合、 すべての出力フィールドが表示されます。
グループモードでは、システム上にあるすべての IPMP グループの状態が表示されます。サポートされている出力フィールドは次のとおりです。
情報に関連付けられている IPMP IP インタフェース名。匿名グループ (in.mpathd(1M) を参照) の場合、このフィールドは空になります。
IPMP グループ名。匿名グループの場合、このフィールドは空になります。
グループの状態。次のようになります。
グループのすべてのインタフェースが使用可能です。
グループのインタフェースのすべてではなく一部のみが使用可能です。
グループのすべてのインタフェースが使用不能です。
プローブベースの障害検出時間。プローブベースの障害検出が無効になっている場合、このフィールドは空になります。
グループ内の基になる IP インタフェースのリスト。このリストは、3 つのパートに分かれています。
リストの最初の部分には、アクティブなインタフェースが表示されます。各括弧や丸括弧には囲まれません。アクティブなインタフェースとは、システムでデータトラフィックの送受信に使用されているインタフェースのことです。
次に、INACTIVE 状態のインタフェースが丸括弧に囲まれて表示されます。INACTIVE 状態のインタフェースとは、機能してはいるが、管理ポリシーに従って使用されていないインタフェースのことです。
最後に、使用不能なインタフェースが角括弧に囲まれて表示されます。使用不能なインタフェースとは、現在の構成ではまったく使用できないインタフェースのことです (FAILED や OFFLINE など)。
–o を指定しない場合、 すべての出力フィールドが表示されます。
インタフェースモードでは、システム上にあり in.mpathd によって追跡されているすべての IPMP インタフェースの状態が表示されます。サポートされている出力フィールドは次のとおりです。
情報に関連付けられている IP インタフェース名。
その IP インタフェースがシステムで IP データトラフィックに使用されているかどうかによって、yes または no になります。
IP インタフェースに関連付けられている IPMP IP インタフェース。匿名グループ (in.mpathd(1M) を参照) の IP インタフェースの場合、このフィールドは空になります。
IP インタフェースに関するさまざまな情報。
INACTIVE 状態なので使用不能です。
STANDBY としてマークされています。
その IPMP グループの IPv4 マルチキャスト送受信用として指定されています。
その IPMP グループの IPv4 ブロードキャスト送受信用として指定されています。
その IPMP グループの IPv6 マルチキャスト送受信用として指定されています。
down 状態なので使用不能です。
ハードウェアアドレスの重複のため in.mpathd によって OFFLINE にされているので使用不能です。
リンクベースの障害検出の状態。
リンクは稼働しています。
リンクは停止しています。
ネットワークドライバからリンクの状態変化が報告されません。
プローブベースの障害検出の状態。
プローブで問題は検出されていません。
プローブで障害が検出されました。
適切なプローブターゲットが認識されていないため、プローブを送信できません。
一意の IP テストアドレスが構成されていないため、プローブは無効になっています。
インタフェースの全体的な状態。
構成されている障害検出方法によれば、インタフェースはオンライン状態で正しく動作しています。
インタフェースはオンライン状態ですが、リンク状態が down またはプローブ状態が failed です。
インタフェースはオフライン状態です。
インタフェースはオンライン状態ですが、構成されている障害検出方法が unknown 状態なので、動作しているかどうかは不明です。
–o を指定しない場合、 すべての出力フィールドが表示されます。
プローブモードでは、in.mpathd によって送信されているプローブに関する情報が表示されます。ほかの出力モードとは異なり、このモードは Ctrl-C で明示的に終了されるまで実行し続けます。サポートされている出力フィールドは次のとおりです。
ipmpstat の開始時からの時間で表した、プローブが送信された時間。ipmpstat の開始前にプローブが送信された場合、この時間は負になります。
プローブを表す識別子。この識別子には、プローブタイプを示す接頭辞に続き、プローブの数値識別子が埋め込まれています。プローブタイプに使用できる値は次のとおりです。
ICMP プローブ
推移的プローブ
ICMP プローブはアクティブなインタフェースから送信されます。プローブの数値識別子は、ある特定のアクティブインタフェースから in.mpathd によって IP プローブが送信されるたびに増分されます。数値識別子は ICMP プローブパケットの icmp_seq フィールドに一致します。これをパケット監視ツールで使用することで、より詳細な分析を行うことができます。
IPMP グループ内のどのインタフェースにも NOFAILOVER テストアドレスが構成されていない場合は、データパケットの受信にアクティブには使用されていないすべてのインタフェースから、推移的プローブが送信されます。推移的プローブの数値識別子は、ある特定のインタフェースから推移的プローブが送信されるたびに増分されます。プローブパケットの形式は実装内部のものです。
プローブが送信された IP インタフェース。
アクティブなインタフェースから送信された ICMP プローブのターゲットのホスト名 (または IP アドレス)。あるいは、推移的プローブが送信された IP インタフェースの名前。
プローブのネットワーク往復時間。これは、IP モジュールがプローブを送信してから肯定応答を受信するまでの時間です。プローブが失われたと in.mpathd で判断された場合、このフィールドは空になります。
プローブの合計往復時間。これは、in.mpathd がプローブ送信用のコードの実行を開始してから ack の処理を完了するまでの時間です。プローブが失われたと in.mpathd で判断された場合、このフィールドは空になります。合計往復時間が急上昇し、ネットワーク往復時間にはそのような急上昇が見られない場合は、ローカルシステム自体の過負荷を示しています。
INTERFACE から TARGET までの往復時間の平均。これは、低速なターゲットの特定に役立ちます。十分なデータがないため平均を計算できない場合、このフィールドは空になります。
INTERFACE から TARGET までの往復時間の標準偏差。これは、ばらつきの多いターゲットの特定に役立ちます。十分なデータがないため標準偏差を計算できない場合、このフィールドは空になります。
–o を指定しない場合、 RTTAVG と RTTDEV を除くすべてのフィールドが表示されます。
ターゲットモードでは、IPMP プローブターゲットの情報が表示されます。サポートされている出力フィールドは次のとおりです。
情報に関連付けられている IP インタフェース名。
プローブターゲットの発見モード
ルーティングテーブルによって見つかったプローブターゲット。
マルチキャスト ICMP プローブによって見つかったプローブターゲット。
プローブベースの障害検出はすべて無効になっています。
障害検出は推移的プローブによって行われます。このモードでは、グループ内にあるほかのアクティブインタフェースをプローブで調べることにより、IP インタフェースの健全性が判定されます。
送信プローブで使用される発信元アドレス。データトラフィックに使用されているアクティブなインタフェース、および NOFAILOVER テストアドレスが明示的に構成されているインタフェースについては、ICMP プローブの送受信に使用されるホスト名 (または IP アドレス) が表示されます。グループ内にあるほかのすべてのインタフェースについては、プローブの送信元のインタフェースの名前が表示されます。アクティブな IP インタフェースに IPv4 テストアドレスと IPv6 テストアドレスの両方が構成されている場合、プローブターゲットの情報は各テストアドレスについて個別に表示されます。
ICMP プローブの場合はプローブターゲットのホスト名 (または IP アドレス) を、推移的プローブの場合はターゲットインタフェースを、それぞれスペースで区切ったリスト。IP ターゲットは調査順に表示されます。プローブターゲットが見つからなかった場合、このフィールドは空になります。
–o を指定しない場合、 すべての出力フィールドが表示されます。
デフォルトでは、ipmpstat の出力モードには人間に読みやすい表形式が使用されます。各行には、特定の対象に関する情報が 1 つ以上のフィールドで表示されます。また、この対象は、これらのフィールドを 1 つ以上組み合わせることで一意に識別されます。この形式では、テーブルの上に (および 1 画面分の情報ごとに) フィールドを表すヘッダーが表示されます。フィールドはスペースで区切られ、空のフィールドは -- (2 つのハイフン) で表されます。ほかにも、読みやすくするための方法が使用されます。フィールドの値を特定できない場合、その値は「?」と表示され、標準エラーに診断メッセージが出力されます。
マシン解析可能な形式にも表形式が使用されますが、プログラムで効率よく解析できるように設計されています。具体的には、解析可能な形式は、人間に読みやすい形式と次の点で異なります。
ヘッダーは表示されません。
空のフィールドには -- は表示されず、何も出力されません。
フィールドの区切りは、可変な数のスペースではなく、1 つのコロン (:) です。
複数のフィールドが要求される場合、フィールドの値に文字としてコロン (:) またはバックスラッシュ (\) があると、これらの文字は前に \ を付けてエスケープされます。
次のコードは、マシン解析可能な出力形式を使用して、特定の IPMP IP インタフェースの障害検出時間を出力する ksh 関数を作成します。
getfdt() { ipmpstat -gP -o group,fdt | while IFS=: read group fdt; do [[ "$group" = "$1" ]] && { echo "$fdt"; return; } done }
属性についての詳細は、マニュアルページの attributes(5) を参照してください。
/usr/sbin/ipmpstat:
|
/usr/sbin/ipmpstat は「確実」インタフェースではありません。