CiscoWorks Network Compliance Manager 1.7.03 水平スケーラビリティ ユーザ ガイド
水平スケーラビリティ環境での NCM コア フェールオーバー
3 水平スケーラビリティ環境での NCM コア フェールオーバー
発行日;2013/06/18 | ドキュメントご利用ガイド | ダウンロード ; この章pdf , ドキュメント全体pdf (PDF - 1MB) | フィードバック

水平スケーラビリティ環境での NCM コア フェールオーバー

フェールオーバーとは、障害が発生したシステムから機能しているシステムに特定の役割を移動する処理です。フェールバックとは、障害が発生したシステムが再び動作可能になった後に逆方向に移動する処理です。

CiscoWorks Network Compliance Manager(NCM)の水平スケーラビリティ環境では、NCM コア フェールオーバーは、デバイス タスクを実行する役割を、実行中でない NCM コアから実行中である 1 つ以上の NCM コアに移動します。(水平スケーラビリティ環境でコア バインディング トポロジを使用している場合、NCM コア フェールオーバーは、パーティションも移動します)。

バージョン 1.7.03 以降、NCM は水平スケーラビリティ環境で停止した NCM コアを実行中の NCM コアに自動的にフェールオーバーします。NCM コアが停止している間、NCM は、その NCM コアに RMI メッセージを送信しません。また、NCM は、新しいタスクをその NCM コアに割り当てません。この自動 NCM コア フェールオーバーにより NCM ハイ アベイラビリティが提供されます。タスクを実行する NCM コアの数が減少するため、システムのスループットが低下する場合があります。実行中の NCM コアのシステムのパフォーマンスを維持するために、重要でないタスクを一時停止できます。

デフォルトでは、フェールオーバーは、すべての水平スケーラビリティ環境でイネーブルになっています。

この章は、次の内容で構成されています。

フェールオーバーのイネーブル化

NCM 1.7.03 または最新の統合パッチをすべての NCM コアにインストールし、パッチの readme.txt ファイルで Fix QCCR1D95740 のその他の情報に記載されている設定を完了すると、NCM のフェールオーバーがイネーブルになります。追加設定は必要ありません。

NCM コア フェールオーバーは、すべての NCM 水平スケーラビリティ環境に適するわけではありません。たとえば、すべての NCM コアがすべてのデバイスにアクセスできるとは限らないコア バインディング トポロジでは、NCM コア フェールオーバーをディセーブルにすることがあります。詳細については、次の手順を参照してください。

フェールオーバーのディセーブル化

NCM コア フェールオーバーをディセーブルにするには、1 つの NCM コアでのみ次の手順を実行します。

  1. distributed.rcx ファイルのバックアップを、 < NCM _HOME> ディレクトリ以外の場所に作成します。
WordPad や vi などのテキスト エディタで、 distributed.rcx ファイルを開き、次の行を追加します。

<option name="distributed/enable_auto_failover">false</option>

distributed.rcx ファイルを保存します。
NCM プロキシから reload server options コマンドを実行して、.rcx 設定をリロードします。

NCM は水平スケーラビリティ環境の他の NCM コアに変更を同期化します。

フェールオーバーの再イネーブル化

NCM コア フェールオーバーを再度イネーブルにするには、1 つの NCM コアでのみ次の手順を実行します。

  1. distributed.rcx ファイルのバックアップを、 < NCM _HOME> ディレクトリ以外の場所に作成します。
WordPad や vi などのテキスト エディタで、 distributed.rcx ファイルを開き、次の行を探します。

<option name="distributed/enable_auto_failover">false</option>

この行を編集して、オプションを true に設定します。

<option name="distributed/enable_auto_failover">true</option>

distributed.rcx ファイルを保存します。
NCM プロキシから reload server options コマンドを実行して、.rcx 設定をリロードします。

NCM は水平スケーラビリティ環境の他の NCM コアに変更を同期化します。

NCM コア フェールオーバーの動作

NCM コアが停止したら、実行中の NCM コアはその停止した NCM コアを認識し、停止した NCM コアへの通信が終わるのを待ってから、NCM コア フェールオーバーを開始します。NCM コア フェールオーバーは、水平スケーラビリティのトポロジに応じて、タスクを停止した NCM コアから 1 つ以上の実行中の NCM コアに移動します。フェールオーバー プロセスは現在のタスクのステータスに応じて、停止した NCM コアにあったタスクのステータスを設定します。

NCM コア フェールオーバーの概念的なフローチャートに、NCM コア フェールオーバー プロセスフローを示します。

ここでは、NCM コア フェールオーバー プロセスについて詳細に説明します。NCM コア フェールオーバーの次の側面について説明します。

NCM コア フェールオーバーの概念的なフローチャート

フェールオーバーを開始する前の遅延

NCM コアが停止したら、実行中の NCM コアはその停止した NCM コアを認識し、停止した NCM コアへの通信が終わるのを待ってから、NCM コア フェールオーバーを開始します。NCM コアが停止してから、別の NCM コアが NCM コア フェールオーバーを開始するまでの時間の長さは、状況によって異なります。

この場合、NCM はフェールオーバー プロセスを開始し、イベント Distributed System -- Abnormal Shutdown of Core を作成します。

  • NCM コアのシャットダウンが意図的である場合(たとえば、NCM 管理者が NCM サービスを停止した場合)、NCM は 30 分間待ってから、NCM コア フェールオーバー プロセスを開始します。この時間は、 NCM コア フェールオーバーの概念的なフローチャート Wait B に相当します。NCM サービスが停止後すぐに再開する可能性があると想定して、待ち時間を長くすることでメンテナンス時間を設けています。

この場合、シャットダウン プロセス中に、停止した NCM コアはイベント Distributed System -- Normal Shutdown of Core を作成します。別の NCM コアは、フェールオーバー プロセスを開始し、イベント Distributed System -- Processed Normal Shutdown of Core を作成します。

タスクのステータス

フェールオーバー プロセスは現在のタスクのステータスに応じて、停止した NCM コアにあったタスクのステータスを設定します。

  • NCM は停止した NCM コアで実行していたタスクを次のように処理します。
  • タスクに対して有効な再試行がある場合、実行中のコアにそのタスクを移動し( タスクの移動を参照)、タスクのステータスを Pending に設定します。
  • タスクに対して有効な再試行がない場合、停止した NCM コアとそのタスクの関連付けを維持し、タスクのステータスを Failed に設定します。

NCM 管理者は、失敗したタスクを確認して、再実行する必要があるタスクを特定できます。

 

停止した NCM コアで実行していたグループ タスクは、停止した NCM コアとの関連付けが維持されます。NCM はすべての関連の子タスクを追跡し、子タスクの完了後に NCM データベースの各グループ タスクのステータスを更新します。

  • NCM は停止した NCM コアで保留中または待機中のタスクを水平スケーラビリティ環境の実行中の NCM コアに移動します( タスクの移動を参照)。NCM はこれらの各タスクのタスク ステータスを Pending に設定します。

タスクの移動

NCM コア フェールオーバーは、水平スケーラビリティのトポロジに応じて、タスクを停止した NCM コアから 1 つ以上の実行中の NCM コアに移動します。

ユーザ インタラクション用に予約されている NCM コアは停止した NCM コアからのタスクを受け取りません。

 

分散ラウンド ロビン トポロジでは、停止した NCM コアからのフェールオーバーは次の状況では実行できません。

  • 実行中の NCM コアがない場合。
  • すべての実行中の NCM コアがユーザ インタラクション用に予約されている場合。
  • コア バインディング トポロジでは、 標準コア バインディングのタスクのフェールオーバーに示すように、NCM コア フェールオーバー プロセスは停止した NCM コアからのすべてのパーティション(および関連するすべてのデバイス タスク)をデバイス タスクを受け入れる 1 つ の実行中の NCM コアに移動します。

ローカル デバイス タスクを実行するために予約されている NCM コアは、停止した NCM コアからのタスクを受け取りません。ユーザ インタラクション用のみに指定された NCM コアは、停止した NCM コアからのタスクを受け取ることがあります。どの NCM コアが停止した NCM コアからのタスクを受け取るのかについては、 フェールオーバーの順序の設定(コア バインディングのみ)を参照してください。

 

コア バインディング トポロジでは、停止した NCM コアからのフェールオーバーは次の状況では実行できません。

  • 実行中の NCM コアがない場合。
  • すべての実行中の NCM コアがローカル デバイス タスクを実行するために予約されている場合。
  • フェールオーバー先として distributed.rcx ファイルで指定した NCM コアが実行中でない場合。
標準分散ラウンド ロビンのタスクのフェールオーバー
標準コア バインディングのタスクのフェールオーバー

NCM フェールオーバー イベント

NCM 1.7.03 には NCM コア フェールオーバーに関連する 3 つのイベントが追加されています。これらのイベントは、水平スケーラビリティ環境でのみ使用できます。

  • Distributed System -- Abnormal Shutdown of Core

実行中の NCM コアが水平スケーラビリティ環境の別の NCM コアの意図しないシャットダウンを検出し、応答しました。

  • Distributed System -- Normal Shutdown of Core

NCM コアがシャット ダウンする前にその遷移を通知しました。

  • Distributed System -- Processed Normal Shutdown of Core

実行中の NCM コアが水平スケーラビリティ環境の別の NCM コアの正常なシャットダウンに応答しました。

NCM ユーザは、これらのイベントを検索できます。また、NCM ユーザは、これらのイベントに基づいてイベント通知ルールを設定できます。

フェールバック イベントはありません。

フェールオーバーの順序の設定(コア バインディングのみ)

コア バインディング トポロジでは、デフォルトで各 NCM コアはシーケンス内の次の実行中の NCM コアにフェールオーバーします。たとえば、3 つの NCM コアの水平スケーラビリティ環境では、デフォルトのフェールオーバーの順序は次のようになります。

  • コア 1 はコア 2 にフェールオーバーします。コア 2 が実行中でない場合、コア 1 はコア 3 にフェールオーバーします。
  • コア 2 はコア 3 にフェールオーバーします。コア 3 が実行中でない場合、コア 2 はコア 1 にフェールオーバーします。
  • コア 3 はコア 1 にフェールオーバーします。コア 1 が実行中でない場合、コア 3 はコア 2 にフェールオーバーします。

デフォルトでは、NCM コア フェールオーバー プロセスは、実行中の NCM コア上のパーティションの有無を考慮しません。したがって、ユーザ インタラクション用のみに以前に指定された NCM コアはフェールオーバー後にデバイス タスクを実行していることがあります。

NCM コアのフェールオーバー順序をカスタマイズする理由は次のとおりです。

  • 一部の管理対象デバイスは、1 つ以上の NCM コアからアクセスできません。この場合は、同じデバイスに到達できる別の NCM コアにフェールオーバーするように各 NCM コアを設定します。
  • ユーザ インタラクション用のみに指定された NCM コアにパーティションは割り当てられません。NCM コアのフェールオーバー後にこの指定を維持するには、パーティションが割り当てられている別の NCM コアにフェールオーバーするように、パーティションが割り当てられている各 NCM コアを設定します。

フェールオーバーの順番を変更したり、プライマリ フェールオーバー先も停止した場合のフェールオーバー先として複数の NCM コアを指定できます。

デフォルトのフェールオーバー順序をカスタマイズするには、次の手順を実行します。

  1. 1 つの NCM コアで、 distributed.rcx ファイルを変更します。
  2. distributed.rcx ファイルのバックアップを、 < NCM _HOME> ディレクトリ以外の場所に作成します。
  3. WordPad や vi などのテキスト エディタで、 distributed.rcx ファイルを開き、次の行を追加します。

<option name="distributed/bind_to_core_override_1">2</option>
<option name="distributed/bind_to_core_override_2">3</option>
<option name="distributed/bind_to_core_override_3">4</option>
<option name="distributed/bind_to_core_override_4">5</option>
<option name="distributed/bind_to_core_override_5">1</option>

  1. 不要な行を削除します。たとえば、4 つの NCM コアの水平スケーラビリティ環境では、 distributed/bind_to_core_override_5 オプションを含んでいる行を削除します。
  2. デフォルトの NCM コア番号を目的の NCM コア番号に置き換えて、各行の値をカスタマイズします。

1 つの NCM コアに対して複数のバックアップ NCM コアを指定するには、各 NCM コアが試行される必要がある順序で追加の NCM コア番号をそれぞれカンマ( , )で区切ります。たとえば、コア 1 は(実行中の場合)コア 4 にフェールオーバーし、(コア 4 が停止している場合)コア 2 にフェールオーバーする必要があることを指定するには、次の行を使用します。

<option name="distributed/bind_to_core_override_1">4,2</option>

 

NCM コア番号は、[List Cores] ページ([Admin] > [Distributed] > [Core List])の NCM コア名の数値部分です。

  1. distributed.rcx ファイルを保存します。
水平スケーラビリティ環境のその他すべての NCM コアに変更した distributed.rcx ファイルをコピーします。
水平スケーラビリティ環境のすべての NCM コアで NCM サービスを再起動します。
  • Windows の場合 :コントロール パネルの [Services] を開きます。サービスのリストの中で、次の各サービスを右クリックし、[Restart] をクリックします。
  • TrueControl ManagementEngine
  • TrueControl FTP Server
  • TrueControl SWIM Server
  • TrueControl Syslog Server
  • TrueControl TFTP Server
  • UNIX の場合 :次のコマンドを実行します。

/etc/init.d/truecontrol restart

 

NCM コアのフェールオーバー発生後のオプションのアクション

NCM コアのフェールオーバーが発生した後の次のオプションのアクションを考慮してください。

ユーザへの通知

必要に応じて、停止した NCM コアが使用できないことを NCM ユーザに通知し、ユーザ インタラクション用の別の NCM コアを提示します。

別の NCM コアへの統合の設定

(NCM 環境の要求で定義されているように)停止した NCM コアが長時間使用できないことが予測される場合、その NCM コアを別の NCM コアに接続する統合を設定します。設定情報については、各統合のマニュアルを参照してください。

重要でないタスクの一時停止

NCM コアに障害が発生すると、タスクを実行する NCM コアの数が少なくなります。システム スループットがフェールオーバー後に低下する場合、NCM コアの停止予定期間中に開始するようにスケジュールされた重要でないタスクを一時停止します。次に例を示します。

  1. [Search for Task] ページ([Reports] > [Search For] > [Tasks])で、[Schedule Date] フィールドの [since] [Now] に、[until] を [4 hours later] に設定します。
[Task Search Results] ページで、リスト内の各タスクを一時停止します。

NCM コアのフェールオーバーの影響を受けたタスクの特定

タスクのステータスで説明しているように、NCM コア フェールオーバー プロセスは、停止した NCM コアで実行していた一部のタスクのステータスを Failed に設定します。失敗したタスクを調べて、それぞれの処理方法を指定できます。NCM コアのフェールオーバーが原因で失敗したタスクを特定するには、次の手順を実行します。

  1. NCM コンソールの [Search for Tasks] ページ([Reports] > [Search For] > [Tasks])で、次の手順を実行します。
  2. [Start Date] フィールドを NCM コアが停止した時間に近い時間範囲に設定します。
  3. [Task Status] フィールドを [Failed] に設定します。
  4. [Failure Type] フィールドを [Core Down] に設定します。
  5. [Core] フィールドを停止した NCM コアの名前に設定します。
[Task Search Results] ページで、結果を確認します。
 

検索結果には、NCM サーバがリブートしたことが原因でキャンセルされたタスクが含まれる場合があります。

必要に応じて、特定したタスクを再実行します。

ダイナミック デバイス グループの計算の継続を確保

ダイナミック グループを含んでいる NCM 水平スケーラビリティ環境で、ダイナミック デバイス グループ メンバーシップの計算を実行する NCM コアが 1 つだけの場合は、その NCM コアがシャットダウンしたときの影響を考慮します。(NCM 環境の要求で定義されているように)その NCM コアが長時間使用できないことが予測される場合、ダイナミック デバイス グループ メンバーシップの計算を実行するように別の NCM コアを設定します。

 

フェールバック後、設定を更新して、再び 1 つの NCM コアだけがダイナミック デバイス グループの計算を行うように指定します。

NCM コアでダイナミック デバイス グループの計算を再度イネーブルにするには、次の手順を実行します。

  1. adjustable_options.rcx ファイルのバックアップを、 <NCM_HOME> ディレクトリ以外の場所に作成します。
adjustable_options.rcx ファイルの中から、次の行を探します。
<option name="dynamic_group/disable">true</option>
見つかった行を次のように変更します。
<option name="dynamic_group/disable">false</option>
adjustable_options.rcx ファイルを保存します。
NCM サービスを再起動します。
  • Windows の場合 :コントロール パネルの [Services] を開きます。サービスのリストで、[TrueControl ManagementEngine] を右クリックし、[Restart] をクリックします。
  • UNIX の場合 :次のコマンドを実行します。
/etc/init.d/truecontrol restart

 

 

adjustable_options.rcx ファイルは NCM コアに固有なので、サーバ オプションをリロードしても、新しい設定は NCM コア間で同期されません。

停止した NCM コアのコア ゲートウェイの停止

停止した NCM コアに関連付けられたコア ゲートウェイが稼働し続けている場合、NCM サテライトはそのコア ゲートウェイに syslog メッセージを転送し続ける場合があります。NCM コアは停止しているので、これらの syslog メッセージは失われます。この損失を防ぐには、次のコマンドを実行して、コア ゲートウェイを停止します。

/etc/init.d/< coreGatewayName > stop

停止したコア ゲートウェイに syslog メッセージを転送していた NCM サテライトは、NCM サテライト opswgw.properties ファイルの opswgw.TunnelSrc エントリの設定に従って次に高いコスト(現在最も低いコスト)のコア ゲートウェイに syslog メッセージを転送します。

元の NCM コアへのフェールバック

NCM コアのフェールバックは、障害が発生する前の状態に NCM コアを復元する処理です。フェールバック処理は水平スケーラビリティのトポロジによって異なります。

  • 分散ラウンド ロビン トポロジでは、フェールバック処理は透過的です。NCM は通常のタスク分散処理中に復元した NCM コアにタスクを割り当てます。フェールオーバー中に移動したタスクは、それらの NCM コアに残ります。
  • コア バインディング トポロジでは、フェールバック処理で、復元した NCM コアにサイトを再度割り当てる必要があります。NCM は NCM コア間のサイトの移動を追跡しないので、このアクションは手動です。

NCM コンソールで、[Site Reassignment] ページを開き([Admin] > [Distributed] > [Site Reassignment])、復元した NCM コアに適切なパーティションを割り当てます。