オンライン診断の機能概要
(注) GOLD は、Supervisor Engine 720 および Supervisor Engine 32 上でのみサポートされます。ただし、以前の診断コマンドは Supervisor Engine 1 および Supervisor Engine 2 上でもサポートされます。
オンライン診断では、次の機能を実行します。
• スイッチが稼働中のネットワークに接続している間に、スーパバイザ エンジン、モジュール、およびスイッチのハードウェア機能をテストおよび検証します。
• 各種ハードウェア コンポーネントをチェックするパケット スイッチング テストを実行して、データ パスおよび制御信号を検証します。
• 問題の検出箇所は、次のとおりです。
–ハードウェア コンポーネント
–インターフェイス(GBIC [ギガビット インターフェイス コンバータ]、イーサネット ポートなど)
–コネクタ(接触不良コネクタ、曲がったピンなど)
–はんだ接合
–メモリ(経時的な障害)
オンライン診断は、次のように分類されます。
• 起動 ― 起動診断は、起動、モジュールの Online Insertion and Removal(OIR; ホットスワップ)、またはバックアップ スーパバイザ エンジンへのスイッチオーバーの間に実行されます。
• オンデマンド ― オンデマンド診断は、CLI(コマンドライン インターフェイス)から実行されます。
• スケジュール診断 ― スケジュール診断は、スイッチが稼働中のネットワークへ接続中に、ユーザ指定の間隔または指定時間に実行されます。
• ヘルス モニタリング ― ヘルス モニタリング診断は、バックグラウンドで実行されます。
オンライン診断テストには、次の 2 種類があります。
• 中断を伴うオンライン診断テスト ― このテストには、Built-in self test(BIST)および中断を伴うループバック テストが含まれます。
• 中断を伴わないオンライン診断テスト ― このテストにはパケット スイッチングが含まれ、起動、ライン カードの OIR、およびシステム再設定診断テストの間に実行されます。中断を伴わない診断テストは、バックグラウンドのヘルス モニタリングの一部として、またはユーザ要求(オンデマンド)で実行されます。
オンライン診断は、ハイアベイラビリティ機能の要件の 1 つです。ハイアベイラビリティは、ネットワーク上の機器障害による影響を制限しようとする一連の品質標準です。ハイアベイラビリティの中核となるのは、スイッチが稼働中のネットワークで動作している間に、ハードウェア障害を検出し、改善処置を行うことです。ハイアベイラビリティのオンライン診断では、ハードウェア障害を検出し、ハイアベイラビリティ ソフトウェア コンポーネントにフィードバックして、スイッチオーバーの判断をします。
オンライン診断の設定
ここでは、オンライン診断を設定する手順について説明します。
• 「起動オンライン診断レベルの指定」
• 「オンデマンド オンライン診断の設定」
• 「オンライン診断ヘルス モニタリング テストの設定」
• 「オンライン診断のスケジューリング」
• 「オンライン診断失敗応答の指定」
• 「オンライン診断のイベント ログ サイズの指定」
• 「オンライン診断テストおよびテスト結果の表示」
• 「オンライン診断設定の消去」
起動オンライン診断レベルの指定
起動オンライン診断レベルを最低限または完全に指定するか、またはすべての起動診断を省略できます。すべての診断を実行するには、complete キーワードを入力します。スーパバイザ エンジンの Policy Feature Card(PFC; ポリシー フィーチャ カード)テストおよびスイッチのすべてのポートのループバック テストのみを実行するには、minimal キーワードを入力します。すべての診断テストを省略するには、bypass キーワードを入力します。デフォルトの起動診断レベルは、省略です。
(注) 起動診断レベルは、スイッチ全体に適用され、モジュール単位では設定できません。
起動診断レベルを指定するには、イネーブル モードで次の作業を行います。
|
|
|
ステップ 1 |
起動診断レベルを指定します。 |
set diagnostic bootup level [ bypass | minimal | complete ] |
ステップ 2 |
起動診断レベルを表示します。 |
show diagnostic bootup level |
次に、起動診断レベルを省略に指定する例を示します。
Console> (enable) set diagnostic bootup level bypass
Diagnostic level set to bypass
Console> (enable) show diagnostic bootup level
Current bootup diagnostic level: bypass
オンデマンド オンライン診断テストの実行
注意 ここでは、オンデマンドの
diagnostic start および
diagnostic stop コマンドについて説明します。いずれのオンデマンド オンライン診断テストを実行する場合でも、
「オンデマンド オンライン診断の設定手順」の手順を使用します。これらのテストは、事前にオンデマンド オンライン診断設定手順を行ってから実行してください。
テスト ID に基づいて特定のテストを開始するには、 diagnostic start コマンドを使用します。このコマンドは、1 つのテスト ID、テスト ID の範囲、テストのサブグループ、またはすべてのテストを指定する all を指定できます。特定テストのテスト ID は、モジュール タイプ別、またはソフトウェア リリース別によっても変えられます。 show diagnostic content コマンドを使用して、正確なテスト ID および関連するテスト名を入手することが重要です。指定モジュールで実行中のテストを停止するには、 diagnostic stop module mod コマンドを使用します。 diagnostic start および diagnostic stop コマンドの完全な構文は、次のとおりです。
diagnostic start module mod_num test { all | test_ID_num | test_list | complete | minimal | non-disruptive | per-port } [ port { all | port_num | port_list }]
diagnostic stop module mod
オンデマンド オンライン診断の設定上の注意事項および制限事項
ここでは、「オンデマンド オンライン診断の設定手順」に記載されたオンデマンド テスト設定手順を実行する場合の、設定上の注意事項および制限事項について説明します。
• 特定の手順でテストを実行したあとは、それ以前の手順のテストは機能しません。
• テストの実行前後には、特定の作業を行う必要がある場合があります。これらの作業は、設定手順で説明されています。
• テストには、中断を伴うものもあります。設定手順では、すべての中断を伴うテストの実行に関するガイダンスを提供しています。
• メモリ テストを実行する前に、パケットスイッチング テストを実行する必要があります。
• メモリ テストは常に、まずモジュール上で実行してからスーパバイザ エンジンで実行する必要があります。これは、スーパバイザ エンジン上でのメモリ テスト実行後、システムは使用不可能ステートになり、通常の動作を行うためにすぐ再起動する必要があるためです。
(注) Release 8.5(1) では、メモリ テストはスーパバイザ エンジンに対してのみ使用できます。他のモジュールに対するメモリ テストは、次のリリースで予定されています。
オンデマンド オンライン診断の設定手順
オンデマンド オンライン診断テストを実行するには、次の手順を行います。
ステップ 1 中断を伴わないテストを実行します。中断を伴わないテストは、パケット スイッチング テストで、システム動作は中断しません。これらのテストは、わずか数秒で終了します。
その他のテスト要件は、次のとおりです。
• テスト実行前のユーザ作業 ― なし
• テスト実行後のユーザ作業 ― なし
ステップ 2 パケット スイッチング テストは、各種機能テスト グループに分類されます。次の表を使用して、テストする機能テスト グループを決定し、その機能テスト グループのテストを実行します。
• 表20-1 オンデマンド テスト:スーパバイザ エンジン
• 表20-2 オンデマンド テスト:ファブリックがイネーブルのモジュール
• 表20-3 オンデマンド テスト:ファブリックがイネーブルでないモジュール
(注) サポート対象の機能テスト グループはモジュール タイプによって異なるため、すべてのモジュールにすべての機能テスト グループが存在するわけではありません。選択する機能テスト グループが不明な場合は、diagnostic start module mod/num test complete コマンドにより診断レベルが [complete] に設定された場合に、起動中に実行されるすべてのパケット スイッチング テストを行います。
(注) ループバック テストを実行して、1 つまたは複数のモジュール ポート上に障害がある場合、そのモジュール上のポートに接続されたケーブルをすべて切断し、モジュール上のすべてのポートをシャット ダウンしてから、ループバック テストに戻ります。何らかのスプリアス パケットがループバック テストに干渉して、失敗の原因となる場合があります。また、モジュールにインラインパワー ドータ カードが搭載されている場合も、テスト実行前にインラインパワー ドータ カードの電源をディセーブルにしてください。
その他のテスト要件は、次のとおりです。
• テスト実行前のユーザ作業 ― なし
• テスト実行後のユーザ作業 ― なし
表20-1 オンデマンド テスト:スーパバイザ エンジン
|
|
ポート単位のテスト |
TestLoopback |
レイヤ 2 フォワーディング テスト |
TestNewIndexLearn TestMatchCapture TestDontConditionalLearn TestProtocolMatchChannel TestBadBpduTrap |
NetFlow 機能 |
TestNetflowInlineRewrite |
ACL/QoS 機能 |
TestAclPermit TestQosTcam TestAclDeny |
IP バージョン 4 機能 |
TestIPv4FibShortcut TestFibDevices TestL3Capture2 TestNATFibShortcut |
マルチキャスト機能 |
TestL3VlanMet |
Switched Port Analyzer(SPAN; スイッチド ポート アナライザ)機能 |
TestIngressSpan TestEgressSpan |
ファブリック接続 |
TestFabricSnakeForward TestFabricSnakeBackward |
EOBC 接続 |
ステップ 3 に進む |
パケット バッファ問題 |
ステップ 4 に進む |
表20-2 オンデマンド テスト:ファブリックがイネーブルのモジュール
|
|
ポート単位のテスト |
TestLoopback |
マルチキャスト機能 |
TestL3VlanMet |
SPAN 機能 |
TestIngressSpan TestEgressSpan |
ファブリック テスト |
TestSynchedFabChannel |
表20-3 オンデマンド テスト:ファブリックがイネーブルでないモジュール
|
|
ポート単位のテスト |
TestLoopback TestNetflowInlineRewrite |
ステップ 3 TestTrafficStress テストを実行します。
(注) Release 8.5(1) では、TestTrafficStress テストは使用できません。このテストは、次のリリースで使用可能になる予定です。テストが使用できない場合は、次の手順に進んでください。
この中断を伴うパケット スイッチング テストは、スーパバイザ エンジン上でのみ使用できます。このテストではシステム上のポートをペアにして、パケットがこれらのポート間でシステムのストレステスト用の回線速度でスイッチングされるようにします。テストを終了するには数分かかります。テスト中に、すべてのポートはシャット ダウンされたり、ポートの一部がアップ/ダウン(フラップ)する場合もありますが、テスト終了後にはポートが回復します。その他のテスト要件は、次のとおりです。
• テスト実行前のユーザ作業 ― このテストの前には、モジュールのすべてのヘルス モニタリング テストをディセーブルにする必要があります。
• テスト実行後のユーザ作業 ― なし
ステップ 4 TestEobcStressPing テストを実行します。
(注) Release 8.5(1) では、TestEobcStressPing テストは使用できません。このテストは、次のリリースで使用可能になる予定です。テストが使用できない場合は、次の手順に進んでください。
この中断を伴うテストでは、指定のモジュールの EOBC 接続を確認します。テストを終了するには 2 ~ 3 分かかります。このテスト終了後は、前述の手順で説明されたパケット スイッチング テストを実行できません。ただし、ステップ 5 で説明するテストは実行できます。その他の要件は、次のとおりです。
• テスト前のユーザ作業 ― このテストの実行前は、モジュールのすべてのヘルス モニタリング テストをディセーブルにする必要があります。これは、EOBC 接続が中断され、ヘルス モニタリング テストが失敗する原因となるからです。
• テスト実行後のユーザ作業 ― ステップ 5 で記述されたテストを実行するか、またはモジュールをオン/オフして、通常の動作に戻します。モジュールがオンラインになったあと、ディセーブルにしたヘルス モニタリング テストを再びイネーブルにします。
ステップ 5 包括的メモリ テストを実行します。
包括的メモリ テストは、スーパバイザ エンジンおよびほかのモジュールで実行できます。スーパバイザ エンジン上でのメモリ テストは、他のモジュールでのメモリ テストが実行されたあとでのみ実行する必要があるので注意してください。スーパバイザ エンジンのメモリ テストの実行後、システムは使用不可能ステートになり、通常の動作ステートに戻すには再起動する必要があるため、この順番が必須となります。
(注) Release 8.5(1) では、メモリ テストはスーパバイザ エンジンに対してのみ使用できます。他のモジュールに対するメモリ テストは、次のリリースで予定されています。
(注) 包括的メモリ テストの実行後は、スーパバイザ エンジンまたは他のモジュール上でその他のテストを実行できません。
注意 いずれのメモリ テストも実行前に、以下の「テスト実行前のユーザ作業」に示されるすべての要件に従っていることを確認してください。
包括的メモリ テストは、個々に実行できます。メモリ サイズによっては、テスト終了までに数時間かかるものもあります。モジュールごとに複数のメモリ テストがあり、それらは相互依存しているため、各モジュールでのテストの実行順序が重要となります。これらのテストの実行順序は、次のとおりです。
(注) Release 8.5(1) では、TestFibTcamSSRAM テストのみが使用可能な包括的メモリ テストです。その他のメモリ テスト(以下の項目 2 ~ 5)は、次のリリースで予定されています。
1. TestFibTcamSSRAM
2. TestAclQosTcam
3. TestNetflowTcam
4. TestAsicMemory
5. TestLinecardMemory
モジュールに特定のテストが存在しない場合は、省略できます。その他の要件は、次のとおりです。
• テスト実行前のユーザ作業
–clear diagnostic monitor module num test all コマンドを使用して、スーパバイザ エンジンおよびスイッチング モジュール上でのすべてのバックグラウンド ヘルスモニタリング テストをオフにします。
–接続されているすべてのポートをディセーブルにして、ネットワーク トラフィックを切り離します。
–メモリ テスト中は、テスト パケットを送信しないでください。
–スーパバイザ エンジンの PFC 上の Forwarding Information Base(FIB; 転送情報ベース)Ternary CAM(TCAM)および SSRAM をテストするために、すべてのスイッチング モジュールを取り外します。
–システムまたはテスト中のモジュールをリセットしてから、システムを通常の動作モードに戻します。
• テスト実行後のユーザ作業
–スーパバイザ エンジン ― スイッチを再起動しますが、テスト中に設定が変更されているため、再起動中に設定を保存しないでください。
–他のモジュール ― モジュールをオン/オフします。モジュールがオンラインになったあと、ディセーブルだったヘルス モニタリング テストを再びイネーブルにします。
オンデマンド オンライン診断の action-on-failure キーワードおよび iterations キーワード コマンド
continue failure_limit キーワードを入力すると、設定可能な数の障害が発生するまでオンデマンド オンライン診断を実行し続けるように指定できます。 failure_limit の範囲は、0 ~ 65534 障害です。 stop キーワードを入力すると、単一の障害が発生した場合にオンデマンド オンライン診断の実行を中止するように指定できます。 iterations number_of_iterations キーワードを入力すると、オンデマンド テストを複数回実行するように指定できます。 number_of_iterations の範囲は、1 ~ 999 です。これらのキーワードの完全な構文は、次のとおりです。
set diagnostic ondemand action-on-failure [ continue failure_limit | stop ]
set diagnostic ondemand iterations number_of_iterations
オンライン診断ヘルス モニタリング テストの設定
スイッチが稼働中のネットワークに接続している間に、指定のモジュール上でヘルスモニタリング診断テストを設定できます。各ヘルスモニタリング テストの実行間隔、テスト失敗時にシステム メッセージを生成するかどうか、または個々のテストをイネーブル/ディセーブルにするかどうかを指定できます。
デフォルトでは、中断を伴うテストがディセーブルです。特定数の中断を伴わないテスト(すべてではない)は、デフォルトでイネーブルです。中断を伴う(D)および中断を伴わない(N)テストを判別するには、 show diagnostic content module mod_list コマンドを使用して、[Attributes] カラムを確認します。この情報は、その他のヘルス モニタリング テストを設定するのに使用します。ヘルス モニタリングには、中断を伴わないテストのみを使用することを推奨します。
オンライン診断ヘルスモニタリング テストを設定するには、イネーブル モードで次の作業を実行します。
|
|
|
ステップ 1 |
オンライン診断モニタリング インターバルを指定します。 |
set diagnostic monitor interval module mod_num test { all | test_ID_num | test_list } hh:mm:ss |
ステップ 2 |
(任意)ヘルスモニタリング診断テストをイネーブルにします。 |
set diagnostic monitor module mod_num test { test-id | test-id-range | all } |
ステップ 3 |
テスト失敗時の Syslog の生成をイネーブルにします。 |
set diagnostic monitor syslog |
ステップ 4 |
オンライン診断モニタリング設定を表示します。 |
show diagnostic content module { mod_list | all } |
次に、オンライン診断ヘルスモニタリング テスト(テスト 18)をモジュール 7 上で、10 日ごとの 12 時 12 分 12.1 秒に実行するよう指定する例を示します。
Console> (enable) set diagnostic monitor interval module 7 test 18 12:12:12 100 10
Diagnostic monitor interval set at 12:12:12 100 10 for module 7 test 18
次に、モジュール 7 でテスト 18 をイネーブルにする例を示します。
Console> (enable) set diagnostic monitor module 7 test 18
Module 7 test 18 diagnostic monitor enable.
次に、テスト失敗時の Syslog 生成をイネーブルにする例を示します。
Console> (enable) set diagnostic monitor syslog
Diagnostic monitor syslog enable.
オンライン診断のスケジューリング
特定のモジュールについて、指定時間、または毎日、毎週、毎月のペースでオンライン診断を実行できます。すべてのテストを実行するか、または個々のテストを実行するかを指定できます。テストは、一度だけ、または指定間隔で繰り返し実行するかをスケジュールできます。
(注) オンライン診断を指定時間に実行するようにスケジュールしたあとに、set time コマンドを使用してシステム時間を変更した場合は、オンライン診断は指定時間に実行されません。たとえば、オンライン診断を 3:00 pm に実行するようスケジュールした場合に、システム時間を 2:59 に変更すると、オンライン診断は 3:00 pm に実行されません。
オンライン診断をスケジュールするには、イネーブル モードで次の作業を実行します。
|
|
|
ステップ 1 |
オンライン診断をスケジュールします。 |
set diagnostic schedule module slot_num test { test-id | test-id-range | all } {[ port { port_num | port_num_range | all }] | [ daily hh : mm ] [ on month day_of_month year hh : mm ] [ weekly day hh : mm ]} |
ステップ 2 |
オンライン診断のスケジューリングを表示します。 |
show diagnostic schedule module mod_list |
次に、特定の日時に特定のモジュールで行われるように、診断テスト(テスト 1 および 2 を指定)をスケジュールする例を示します。
Console> (enable) set diagnostic schedule module 7 test 1 daily 12:12
Diagnostic schedule set at daily 12:12 for module 7 test 1
次に、毎日特定の時間に、特定のポートおよびモジュールで診断テスト(テスト 1 を指定)をスケジュールする例を示します。
Console> (enable) set diagnostic schedule module 7 test 3 port 1 daily 16:16
Diagnostic schedule set at daily 16:16 for module 7 test 3
Console> (enable) show diagnostic schedule module 7
Current Time = Fri Apr 15 2005, 16:56:06
Test ID(s) to be executed: 1-2.
Test ID(s) to be executed: 3.
オンライン診断失敗応答の指定
スーパバイザ エンジンにオンライン診断失敗応答を指定できます。 ignore キーワードを指定した場合、スーパバイザ エンジンはオンライン診断失敗後起動します。 system キーワードを指定した場合(デフォルト)、スーパバイザ エンジンはオフラインのまま維持され、モジュール固有の改善処置が行われます。
スーパバイザ エンジンにオンライン診断失敗応答を指定するには、イネーブル モードで次の作業を実行します。
|
|
|
ステップ 1 |
スーパバイザ エンジンにオンライン診断失敗応答を指定します。 |
set diagnostic diagfail-action { ignore | system } |
ステップ 2 |
スーパバイザ エンジンのオンライン診断失敗応答の設定値を表示します。 |
show diagnostic diagfail-action |
次に、オンライン診断の失敗後、スーパバイザ エンジンがオフラインになるように指定する例を示します。
Console> (enable) set diagnostic diagfail-action system
Diagnostic failure action set to system.
Console> (enable) show diagnostic diagfail-action
Diagnostic failure action at last bootup : system
Diagnostic failure action at next reset : system
オンライン診断のイベント ログ サイズの指定
デフォルトの設定は 500 エントリで、有効範囲は 1 ~ 10,000 エントリです。
オンライン診断のイベント ログ サイズを指定するには、イネーブル モードで次の作業を行います。
|
|
オンライン診断のイベントログ サイズを指定します。 |
set diagnostic event-log size [ size ] |
次に、オンライン診断のイベントログ サイズを 1000 エントリに指定する例を示します。
Console> (enable) set diagnostic event-log size 1000
Diagnostic event-log size set to 1000
オンライン診断テストおよびテスト結果の表示
show コマンドにより、特定のモジュールに設定されたオンライン診断テストを表示して、テスト結果を確認できます。
オンライン診断テスト情報を表示するには、ユーザ モードで次の作業を行います。
|
|
起動診断レベルを表示します。 |
show diagnostic bootup level |
指定されたモジュールまたはすべてのモジュールのテスト内容を表示します。 |
show diagnostic content module [ mod_num | all ] |
スーパバイザ エンジンのオンライン診断失敗応答の設定値を表示します。 |
show diagnostic diagfail-action |
診断イベント ログを表示します。 |
show diagnostic events [ event-type { error | info | warning }] show diagnostic events [ module { mod_list | all }] show diagnostic events |
オンライン診断のオンデマンド設定値を表示します。 |
show diagnostic ondemand settings |
指定されたモジュールまたはすべてのモジュールの診断テスト結果を表示します。 |
show diagnostic result module mod_list | all [ detail | test ] [ test_list ] [ detail ] |
オンライン診断のスケジューリングを表示します。 |
show diagnostic schedule module mod_list |
すべてのモジュールの現在のオンライン診断ステータスを表示します。 |
show diagnostic status |
オンライン診断設定の消去
オンライン診断の設定パラメータを消去するには、ユーザ モードで次の作業を行います。
|
|
起動オンライン診断レベルを消去します。 |
clear diagnostic bootup level |
オンライン診断のイベントログ サイズを消去します。 |
clear diagnostic event-log size |
オンライン診断のヘルスモニタリング設定を消去します。 |
clear diagnostic monitor interval module mod_list test [ test_list | all ] clear diagnostic monitor module mod test test_list clear diagnostic monitor syslog |
テスト失敗時の Syslog の生成をディセーブルにします。 |
clear diagnostic monitor syslog |
オンライン診断のスケジューリング情報を消去します。 |
clear diagnostic schedule module mod_num test { test-id | test-id-range | all } {[ port { port_num | port_range | all }] | [ device { device_num | device_range | all }]} |
次に、起動オンライン診断レベルを消去する例を示します。
Console> (enable) clear diagnostic bootup level
Diagnostic level set to bypass
次に、オンライン診断のイベントログ サイズを消去する例を示します。
Console> (enable) clear diagnostic event-log size
Diagnostic event-log size set to default(500)
次に、オンライン診断のモニタリング設定を消去する例を示します。
Console> (enable) clear diagnostic monitor interval module 7 test 3
Clear diagnostic monitor interval for module 7 test 3
Console> (enable) clear diagnostic monitor module 7 test 1
Module 7 test 1 diagnostic monitor disable.
Console> (enable) clear diagnostic monitor syslog
Diagnostic monitor syslog disable.
モジュール 7 上のテスト 1 および 2 に対するオンライン診断のスケジューリング設定を消去します。
Console> (enable) clear diagnostic schedule module 7 test 1-2 daily 12:12
Clear diagnostic schedule at daily 12:12 for module 7 test 1-2