障害回復の概要
Junos Spaceクラスタにより、ネットワーク管理ソリューションの高可用性と拡張性を維持できます。ただし、クラスタ内のすべてのノードは同じサブネット内にある必要があるため、通常は同じデータセンターまたは同じキャンパス内に導入されます。しかし、クラスタ上の元のJunos Spaceインストールを、地理的に異なる場所にある別のクラスタにミラーリングすることで、ある場所での災害からクラスタを簡単に復旧することができます。そのため、地震などの災害によりメインのJunos Spaceサイトに障害が発生した場合、もう一方のサイトが引き継ぐことができます。したがって、障害回復セットアップの物理インストールは、通常、アクティブ サイトまたはメイン サイト (つまり、ローカル サイト) とスタンバイ サイトまたはバックアップ サイト (つまり、リモート サイト) という、地理的に離れた 2 つのクラスターのセットです。
基本的な接続要件と前提条件が満たされている場合(「障害回復を構成するための前提条件」および「障害回復を構成するための接続要件」を参照)、アクティブ サイトのクラスターからのデータは、ほぼリアルタイムでスタンバイ サイトのクラスターにレプリケートされます。
MySQL および PgSQL データベースのデータは、SSL 接続を介してアクティブ サイトからスタンバイ サイトに非同期的にレプリケートされます。ディザスター リカバリー サイト間の MySQL および PgSQL データは、ディザスター リカバリーの初期化時に生成される自己署名 SSL 証明書を使用して暗号化されます。CA ルート証明書、CRL、ユーザー証明書、スクリプト、デバイス イメージ、アーカイブされた監査ログ、およびスケジュールされたジョブに関する情報は、スタンバイ サイトへのリアルタイム データ レプリケーション中にスタンバイ サイトにレプリケートされます。構成ファイルとラウンドロビン データベース(RRD)ファイルは、アクティブ サイトからスタンバイ サイトへのセキュア コピー プロトコル(SCP)を使用して定期的に同期されます。
Junos Space メカニズムに組み込まれたディザスタリカバリウォッチドッグは、サイト間のデータベースレプリケーションの整合性を監視します。他のすべてのサービス (JBoss、OpenNMS、Apache など) は、アクティブ サイトがスタンバイ サイトにフェールオーバーするまで、スタンバイ サイトで実行されません。スタンバイ サイトへのフェールオーバーは、アクティブ サイトがダウンすると自動的に開始されます。デバイスアービトレーションアルゴリズムを使用して、両方のサイトがアクティブにしようとするスプリットブレインシナリオを防ぐために、どのサイトをアクティブサイトにするかを決定します。デバイス アービトレーション アルゴリズムの詳細については、「 デバイス アービトレーション アルゴリズムを使用したエラー検出」を参照してください。
次のセクションでは、ディザスタリカバリプロセス、障害検出メカニズム、およびディザスタリカバリコマンドの接続要件について説明します。
災害復旧ソリューション
アクティブサイトとスタンバイサイト間のディザスタリカバリプロセスを構成して開始すると、サイト間でMySQLおよびPgSQLデータベースの非同期レプリケーションが開始されます。設定ファイルとRRDファイルは、定義された時間間隔でSCPを介してスタンバイサイトにバックアップされます。
災害復旧プロセスでは、Cassandra データベースのスタンバイ サイトへのリアルタイム レプリケーションは実行されず、Junos Space ノードで実行されている Cassandra サービスの監視も行われません。
ディザスタリカバリソリューションの通常の運用中、GUIおよびAPIユーザと管理対象デバイスは、すべてのネットワーク管理サービスのアクティブサイトに接続されます。スタンバイ サイトと管理対象デバイス間の接続は、アクティブ サイトが機能している限り無効になります。災害によりアクティブ・サイトが使用できなくなると、スタンバイ・サイトが稼働状態になります。この時点で、スタンバイ サイトのすべてのサービスが開始され、スタンバイ サイトと管理対象デバイス間の接続が確立されます。
図 1 に、障害復旧ソリューションを示します。

災害復旧ウォッチドッグ プロセスは、アクティブ サイトとスタンバイ サイトの両方の VIP ノードで開始され、レプリケーション プロセスの正常性を監視し、リモート サイトがダウンしたときに検出します。ローカルサイトのディザスタリカバリウォッチドッグは、両方のサイト間に接続の問題があるかどうか(リモートサイトのノードにpingを送信)、およびサイトがアービターデバイスに接続されているかどうか(デバイスアービトレーションアルゴリズムを使用している場合)をチェックします。
サイトのディザスタリカバリウォッチドッグは、次のタスクを実行して、リモートサイトおよびアービターデバイスとの接続を確認します。
定期的に設定可能な間隔で、リモートサイトの VIP アドレスに ping を実行します。間隔のデフォルト値は30秒です。
ping ごとに、構成可能なタイムアウト間隔内の応答を待ちます。タイムアウト間隔のデフォルト値は 5 秒です。
ローカルサイトがタイムアウト間隔内に応答を受信できない場合、災害復旧ウォッチドッグは設定可能な回数だけpingを再試行します。既定では、再試行回数は 4 回です。
すべての再試行が失敗した場合、ローカル サイトのディザスター リカバリー ウォッチドッグは、リモート サイトの VIP アドレスに到達できないと結論付けます。
ただし、ディザスタリカバリウォッチドッグは、リモートサイトがローカルスイッチオーバーのためにVIPアドレスをスタンバイノードに切り換えている可能性があるため、リモートサイトがダウンしていると結論付けません。
VIP アドレスの切り替えの可能性を考慮するために、ディザスター リカバリー ウォッチドッグはリモート サイトの他のロード バランサー ノードの IP アドレスに ping を実行します。いずれかのノードへの ping が応答を受信すると、災害復旧ウォッチドッグはリモート サイトがまだ稼働していると判断します。
ノードへの ping が失敗した場合、ディザスタリカバリウォッチドッグはリモートサイトがダウンしていると結論付けません。代わりに、ディザスター リカバリー ウォッチドッグは、サイト間の接続の問題の可能性を考慮します。両方のサイトがアクティブになろうとします。
両方のサイトがアクティブになるのを防ぐために、ディザスタリカバリウォッチドッグはデバイスアービトレーションアルゴリズムを開始し、フェイルオーバーが必要かどうかを判断します。
フェイルオーバーは、アクティブなサイトによって管理されている監視デバイスの割合がフェイルオーバーしきい値を下回った場合にのみ開始されます。その後、アクティブ サイトがスタンバイ サイトになり、スタンバイ サイトがアクティブ サイトになります。
監視デバイスの割合がフェイルオーバーしきい値を超えた場合、スタンバイサイトはスタンバイのままで、アクティブサイトはアクティブなままになります。アクティブなサイトで管理される監視デバイスの割合は設定可能で、デフォルト値は 50% です。
フェールオーバーは、次の条件が満たされた場合に開始されます。
スタンバイ・サイトは、アクティブ・サイトの VIP アドレスまたはアクティブ・サイトの他のロード・バランサー・ノードのノード IP アドレスに到達できません。
アクティブサイトによって管理されている監視デバイスの割合がフェイルオーバーしきい値を下回っています。
デバイス アービトレーション アルゴリズムの詳細については、「 デバイス アービトレーション アルゴリズムを使用したエラー検出」を参照してください。
障害回復を構成するための前提条件
災害復旧を設定する前に、Junos Space のインストールが以下の前提条件を満たしていることを確認する必要があります。
プライマリ サイトまたはアクティブ サイト(単一ノードまたは複数ノード)の Junos Space クラスタとリモート サイトまたはスタンバイ サイト(単一ノードまたは複数ノード)のクラスタは、すべて同じアプリケーション、デバイス アダプタ、同じ IP ファミリ設定で、まったく同じ方法でセットアップする必要があります。 などなど。
どちらのクラスタも、Junos Space ユーザー インターフェイスからの SMTP サーバー情報を使用して設定する必要があります。詳細については、「 SMTP サーバーの管理」を参照してください。この構成により、レプリケーションが失敗した場合に、アクティブ サイトとスタンバイ サイトの両方のクラスターが管理者に電子メールで通知できます。
アクティブ サイトとスタンバイ サイトのノード数は同じである必要があります。
障害回復を構成するための接続要件
ディザスター リカバリーを構成する前に、ディザスター リカバリー ソリューションが次の接続要件を満たしていることを確認する必要があります。
アクティブ サイトとスタンバイ サイトの Junos Space クラスター間のレイヤー 3 接続。これはですね:
クラスター内のすべてのノードは、他のクラスターの VIP アドレスに正常に ping を実行できます
クラスタ内のすべてのノードは、SCP を使用してアクティブ サイトとスタンバイ サイト間でファイルを転送できます
2 つのクラスター間のデータベース レプリケーションは、TCP ポート 3306 (MySQL データベース レプリケーション) および 5432 (PostgreSQL データベース レプリケーション) を介して可能です
2 つのクラスター間の接続の帯域幅と待機時間は、リアルタイムのデータベース レプリケーションが成功するようなものです。必要な帯域幅は転送されるデータの量によって異なりますが、レイテンシが 150 ミリ秒未満の 100 Mbps 帯域幅接続以上を推奨します。
各クラスターと管理対象デバイス間の独立したレイヤー 3 接続
各クラスタと GUI または NBI クライアント間の独立したレイヤー 3 接続
災害復旧プロセスを設定するには、 アクティブ サイトとスタンバイ サイト間の災害復旧プロセスの設定を参照してください。
災害復旧ウォッチドッグ
災害復旧ウォッチドッグは、DRウォッチドッグとも呼ばれ、サイト間のデータレプリケーション(MySQLデータベース、PgSQLデータベース、構成ファイル、RRDファイル)の整合性を監視するための、Junos Spaceに組み込まれたメカニズムです。また、ディザスター リカバリー ウォッチドッグは、ディザスター リカバリー セットアップの全体的な正常性を監視し、アクティブ サイトに障害が発生したときにアクティブ サイトからスタンバイ サイトへのフェールオーバーを開始し、スタンバイ サイトが最小限のサービスの中断でネットワーク管理サービスを再開できるようにします。ディザスタリカバリウォッチドッグのインスタンスは、ディザスタリカバリプロセスを開始すると、両方のサイトのVIPノードで開始されます。
ディザスタリカバリウォッチドッグは、次のサービスを提供します。
ハートビート
アクティブ サイトとスタンバイ サイト間のハートビート サービスは、ping を使用してサイト間の接続を確認します。両方のサイトが相互にハートビートメッセージを送信します。ハートビート サービスは、次のタスクを実行します。
定期的にリモートサイトに ping を実行して、リモートサイトの障害を検出します。
リモート・サイトが応答に失敗した場合は、リモート・サイトでのローカル・フェイルオーバーによる一時的な問題の可能性を排除します。
障害回復の構成設定に応じて、自動フェールオーバーを有効または無効にします。
スプリットブレイン シナリオを回避するには、デバイス アービトレーション アルゴリズム (既定) またはカスタム スクリプトで構成されたロジックを実行します。
サイトの再起動後に、ディザスタ リカバリーの設定を確認します。
mysqlMonitor
mysqlMonitor サービスは、次のタスクを実行します。
サイト内およびアクティブサイトとスタンバイサイト間の MySQL データベースレプリケーションの正常性を監視します。
MySQLデータベースのレプリケーションエラーを修正しました。
MySQL データベースのレプリケーション エラーのいずれかを自動的に修正できない場合は、電子メールで管理者に通知します。
pgsqlMonitor
pgsqlMonitor サービスは、次のタスクを実行します。
サイト内およびアクティブ サイトとスタンバイ サイト間の PgSQL データベース レプリケーションの正常性を監視します。
PgSQL データベースのレプリケーション エラーを修正しました。
PgSQL データベース レプリケーション エラーのいずれかを自動的に修正できない場合は、電子メールで管理者に通知します。
ファイルモニター
ファイル モニター サービスは、次のタスクを実行します。
サイト内およびアクティブ サイトとスタンバイ サイト間でレプリケートされた構成ファイルと RRD ファイルの正常性を監視します。
構成ファイルと RRD ファイルの複製中に見つかったエラーを修正します。
レプリケーション エラーを自動的に修正できない場合は、電子メールで管理者に通知します。cronジョブの出力でレプリケーションエラーを表示することもできます。
アービターモニター
arbiterMonitor サービスは、ローカル サイトがすべての監視デバイスに対して ping できるかどうかを定期的にチェックします。到達可能な監視デバイスの割合が構成された警告しきい値(デフォルトでは 70%)を下回ると、管理者に電子メール通知が送信されます。
構成モニター
コンフィグ・モニター・サービスは、以下のタスクを実行します。
両方のサイトのすべてのノードで災害復旧構成ファイルを監視します。
ファイルが同期していない場合は、サイト内のノード間で構成ファイルを転送します。
サービスモニター
サービス・モニター・サービスは、以下のタスクを実行します。
特定のサイト内の選択されたサービス(jboss、jboss-dc、httpd、dr-watchdog など)のステータスを監視します。
選択したサービスが正しくない状態が表示された場合は、サービスを開始または停止します。
通知
通知サービスは、ディザスター リカバリー ウォッチドッグによって検出されたエラー状態、警告、またはディザスター リカバリー状態の変更を電子メールで管理者に通知します。通知メールは、次の場合に送信されます。
サイトと監視デバイス間の接続に問題があるため、自動フェールオーバーが無効になっています。
到達可能な監視デバイスの割合が警告しきい値を下回っています。
サイトがスタンバイまたはアクティブになります。
スタンバイ サイトは、SCP を介してアクティブ サイトからファイルをバックアップできません。
サイトは、リモートサイトへの SSH 接続を確立できません。
ローカルサイトは、MySQL プライマリノードのホスト名を取得できません。
サイトは MySQL および PgSQL データベースのレプリケーション エラーを修正できません。
通知サービスは、構成可能な期間内 (既定では 3600 秒) 内に同じエラーを報告する電子メールを送信しません。
デバイスアービトレーションアルゴリズムを使用した障害検出
デバイスアービトレーションアルゴリズムは、サイトでの障害を検出するために使用されます。Junos OSを実行し、Junos Space Platformによって管理される到達性の高いデバイスのリストがアービターデバイスとして選択されます。以下の基準に基づいてアービターデバイスを選択することをお勧めします。
両方のサイトから、Junos Space が開始する SSH 接続を介してアービターデバイスに到達できる必要があります。デバイスが開始するJunos Space Platformへの接続を使用するデバイスは選択しないでください。
両方のディザスタリカバリサイトからアービターデバイスにpingできる必要があります。
Junos Space Platform との接続を維持するアービターデバイス、または再起動やシャットダウンの頻度が低いアービターデバイスを選択する必要があります。デバイスアービトレーションアルゴリズムの結果に影響する可能性があるためです。特定のアービターデバイスが寿命の一部でオフラインになることが予想される場合は、それらのデバイスを選択しないでください。
ある場所の管理ネットワークの問題によってすべてのアービターデバイスがサイトから到達不能にならないようにするには、地理的に異なる場所からアービターデバイスを選択する必要があります。
NATおよびWW Junos OSデバイスをアービターデバイスとして選択することはできません。
アクティブサイトのデバイスアービトレーションアルゴリズムは、ping を使用してアクティブサイトからアービターデバイスに接続します。スタンバイサイトのデバイスアービトレーションアルゴリズムは、Junos Space プラットフォームデータベースのログイン認証情報を使用して、SSH接続を介してアービターデバイスにログインします。次に、アクティブ サイトとスタンバイ サイトでのデバイス アービトレーション アルゴリズムのワークフローを示します。
アクティブなサイト:
選択したすべての監視デバイスに対して ping を実行します。
ping できるアービターデバイスの割合を計算します。
ping できる監視デバイスの割合が、フェールオーバーしきい値の設定値を上回っているか、同じかを確認します。
接続されている監視デバイスの割合がフェールオーバーしきい値の設定値 (障害復旧 API のウォッチドッグセクションの failureDetection.threshold.failover パラメーター) と同じか同じ場合、アクティブサイトが監視デバイスの大部分を管理しているため、フェイルオーバーは開始されません。
監視デバイスの割合がフェイルオーバーしきい値の設定値を下回ると、フェイルオーバーが開始され(自動フェイルオーバーが有効になっている場合)、アクティブサイトがスタンバイになります。自動フェールオーバーが無効になっている場合、アクティブなサイトはアクティブなままです。
スタンバイサイト:
SSH接続を介してアービターデバイスにログインします。
各アービターデバイスでコマンドを実行して、アクティブサイトの任意のノード(ノードによって管理されている)へのSSH接続のリストを取得します。
アクティブなサイトによって管理されている監視デバイスの割合を計算します。
SSH接続で到達できないアービターデバイスの割合を計算します。
アクティブサイトによって管理される監視デバイスの割合がフェールオーバーしきい値の設定値を上回るか同じである場合、アクティブサイトは依然として監視デバイスの大部分を管理しているため、フェールオーバーは必要ありません。
アクティブ サイトによって管理される監視デバイスの割合がフェールオーバーしきい値の構成値を下回る場合、ディザスタ リカバリー ウォッチドッグはフェールオーバーが必要である可能性があると結論付けます。
ただし、スタンバイ サイトから到達できないデバイスはアクティブ サイトによって接続および管理される可能性があるため、スタンバイ サイトは、到達できないすべての監視デバイスがアクティブ サイトによって管理されていると見なし、アクティブ サイトによって管理されるデバイスの新しい割合を計算します。
アクティブ サイトによって管理されるデバイスの割合が、管理対象デバイスを調整するしきい値の割合 (ディザスター リカバリー API のウォッチドッグ セクションの failureDetection.threshold.adjustManaged パラメーター、既定値は 50%) を下回っている場合、スタンバイ サイトはスタンバイ状態のままになります。既定では、管理対象デバイスを調整するしきい値の割合は、フェールオーバーしきい値を下回る必要があります。
アクティブ サイトで管理されているデバイスとアービター デバイスを追加して計算した新しい割合のうち、到達できないものがフェールオーバーしきい値を下回っている場合、ディザスター リカバリー ウォッチドッグはフェールオーバーを開始する必要があると結論付けます。
自動フェールオーバーが有効になっている場合、スタンバイ サイトはアクティブになるプロセスを開始します。自動フェールオーバーが無効になっている場合、フェールオーバーは発生しません。
自動フェールオーバーを無効にした場合、または接続の問題により機能が無効になった場合は、スタンバイ サイトで実行 jmp-dr manualFailover
して、スタンバイ サイトからネットワーク管理サービスを再開する必要があります。
カスタム障害検出スクリプトを使用した障害検出
デバイス アービトレーション アルゴリズムの使用に加えて、カスタム障害検出スクリプト (sh、bash、Perl、または Python) を作成して、スタンバイ サイトにフェールオーバーするタイミングまたはかどうかを決定できます。カスタム障害スクリプトは、 jmp-dr api v1 config ––include
コマンドを呼び出し、ディザスタリカバリ設定とディザスタリカバリウォッチドッグサービスのステータスを取得します。サイトのディザスタリカバリ設定とディザスタリカバリウォッチドッグサービスのステータスは、さまざまなセクションとして編成されています。 表 1 に、これらのセクションを示します。
-- include <section-name> オプションを使用して、セクションの詳細を表示するか、カスタム障害検出スクリプトでセクションの詳細を使用します。
セクション |
説明 |
セクションに含まれる詳細 |
サンプル出力 |
---|---|---|---|
役割 |
現在のサイトの障害復旧の役割 |
ロールは、アクティブ、スタンバイ、またはスタンドアロンにすることができます。 |
– |
フェールオーバー |
最後に発生したフェールオーバーの種類 |
値は active_to_standby、standby_to_active、またはフェールオーバーがまだ発生していない場合は空にすることができます。 |
– |
コア |
リモート・サイト・ノードの詳細を含むコア災害復旧構成 |
peerVip–リモートサイトのロードバランサーのVIP adminPass - リモートサイトの暗号化された管理者パスワード。複数のエントリはコンマで区切ります。 scpTimeout:サイト間のSCP転送障害を検出するために使用されるタイムアウト値 peerLoadBalancerNodes - リモートサイトのロードバランサーノードのノードIPアドレス。複数のエントリはコンマで区切ります。 peerBusinessLogicNodes - リモートサイトの JBoss ノードのノード IP アドレス。複数のエントリはコンマで区切ります。 peerDeviceMgtIps:リモートサイトのデバイス管理IPアドレス。複数のエントリはコンマで区切ります。 |
{ "core": { "peerVip": "10.155.90.210", "adminPass": "ABCDE12345", "scpTimeout": 120, "peerLoadBalancerNodes": "10.155.90.211", "peerBusinessLogicNodes": "10.155.90.211", "peerDeviceMgtIps": "10.155.90.211"} } |
Mysql |
リモートサイトのMySQLデータベースに関連するディザスタリカバリ設定 |
hasDedicatedDb - リモートサイトに専用データベースノードが含まれているかどうか リモートサイトの MySQL ノード (通常ノードまたは専用データベースノード) の peerVip–VIP peerNodes - リモートサイト (通常ノードまたは専用 DB ノード) の MySQL ノードのノード IP アドレス。複数のエントリはコンマで区切ります。 |
{ "mysql": { "hasDedicatedDb": false, "peerVip": "10.155.90.210", "peerNodes": "10.155.90.211" } } |
Pgsql |
リモートサイトのPgSQLデータベースに関するディザスタリカバリ設定 |
hasFmpm:リモートサイトに特殊なFMPMノードが含まれているかどうか peerFmpmVip–リモート サイト(通常ノードまたは FM/PM 専用ノード)の PostgreSQL ノードの VIP peerNodes–リモートサイト(通常ノードまたはFM/PM専用ノード)のPostgreSQLノードのノードIPアドレス。複数のエントリはコンマで区切ります。 |
{ "psql": { "hasFmpm": false, "peerFmpmVip": "10.155.90.210", "peerNodes": "10.155.90.211" } } |
ファイル |
リモート・サイトでの構成およびRRDファイル関連の災害復旧構成 |
backup.maxCount - 保持するバックアップ ファイルの最大数 backup.hoursOfDay - ファイルをバックアップする時刻 backup.daysOfWeek - ファイルをバックアップするための曜日 restore.hoursOfDay - アクティブなサイトからファイルをポーリングする時刻 restore.daysOfWeek - アクティブなサイトからファイルをポーリングする曜日 |
{ "file": { "backup": { "maxCount": 3, "hoursOfDay": "*", "daysOfWeek": "*" }, "restore": { "hoursOfDay": "*", "daysOfWeek": "*" } } } |
ウォッチドッグ |
現在のサイトでのディザスタリカバリウォッチドッグに関連するディザスタリカバリ設定 |
heartbeat.retries - ハートビートメッセージを再試行する回数 heartbeat.timeout - 各ハートビートメッセージのタイムアウト(秒単位) heartbeat.interval:サイト間のハートビートメッセージ間隔(秒単位) notification.email–サービスの問題を報告するために電子メールアドレスに連絡する 通知間隔 - 影響を受けるサービスに関する電子メールを受信する間隔を減衰させます。 failureDetection.isCustom - リモート サイトでカスタム障害検出を使用するかどうか failureDetection.script - 障害検出スクリプトのパス failureDetection.threshold.failover–フェイルオーバーをトリガーするしきい値の割合 failureDetection.threshold.adjustManaged–管理対象デバイスの割合を調整するためのしきい値の割合 failureDetection.threshold.warning:デバイスアービトレーションアルゴリズムの精度を向上させるために、ディザスタリカバリサイトがより多くのアービターデバイスに到達できるように警告を送信するしきい値の割合 failureDetection.waitDuration–両方のサイトがスタンバイになったときに、元のアクティブサイトが再びアクティブになることを可能にする猶予期間 failureDetection.arbiters - アービターデバイスのリスト |
{ "watchdog": { "heartbeat": { "retries": 4, "timeout": 5, "interval": 30 }, "notification": { "email": "abc@example.com", "interval": 3600 }, "failureDetection": { "isCustom": false, "script": "/var/cache/jmp-geo/watchdog/bin/arbitration", "threshold": { "failover": 0.5, "adjustManaged": 0.5, "warning": 0.7 }, "waitDuration": "8h", "arbiters": [{ "username": "user1", "password": "xxx", "host": "10.155.69.114", "port": 22, "privateKey": "" }] } } } |
デバイス管理 |
リモートサイトのデバイス管理IPアドレス |
peerNode - リモートサイトのデバイス管理IPアドレス。複数のエントリはコンマで区切ります。 ノード:現在のサイトのデバイス管理 IP アドレス。複数のエントリはコンマで区切ります。 ip:このノード(コマンドが実行されるノード |
{ "deviceManagement": { "peerNodes": "10.155.90.211", "nodes": "10.155.90.222", ”ip”: “10.155.90.228,eth0” } } |
状態 |
現在のサイトでのディザスタリカバリウォッチドッグサービスのランタイム情報。このサイトで障害回復ウォッチドッグを実行したことがない場合、このセクションは使用できません。ディザスタリカバリウォッチドッグが停止している場合、このセクションの情報は古くなっています。 |
– |
{ "states": { "arbiterMonitor": { "progress": "idle", "msg": { "service": "arbiterMonitor", "description": "", "state": true, "force": false, "progress": "unknown", "payload": { "code": 0 }, "time": "2015-07-18T22:18:55+00:00" }, "service": {} }, |
"configMonitor": { "progress": "idle", "msg": { "service": "configMonitor", "description": "", "state": true, "force": false, "progress": "unknown", "payload": { "code": 0 }, "time": "2015-07-18T22:19:15+00:00" },"service": {} }, |
|||
"fileMonitor": { "progress": "idle", "msg": { "service": "fileMonitor", "description": "", "state": true, "force": false, "progress": "unknown", "payload": { "code": 0 }, "time": "2015-07-18T22:18:59+00:00" }, "service": {} }, |
|||
"heartbeat": { "progress": "unknown", "msg": { "service": "heartbeat", "description": "", "state": true, "force": false, "progress": "unknown", "payload": { "localFailover": false }, "time": "2015-07-18T22:17:49+00:00" }, "service": { "booting": false, "bootEndTime": null, "waitTime": null, "automaticFailover": false, "automaticFailoverEndTime": "2015-07-18T07:41:41+00:00" } }, |
|||
"mysqlMonitor": { "progress": "idle", "msg": { "service": "mysqlMonitor", "description": "", "state": true, "force": false, "progress": "unknown", "payload": { "code": 0 }, "time": "2015-07-18T22:19:09+00:00" }, "service": {} }, |
|||
"pgsqlMonitor": { "progress": "unknown", "msg": { "service": "pgsqlMonitor", "description": "Master node pgsql in active or standby site maybe CRASHED. Pgsql replication is in bad status. Please manually check Postgresql-9.4 status.", "state": false, "force": false, "progress": "unknown", "payload": { "code": 1098 }, "time": "2015-07-18T22:18:27+00:00" },"service": {} }, |
|||
"serviceMonitor": { "progress": "running", "msg": { "service": "serviceMonitor", "description": "", "state": true, "force": false, "progress": "unknown", "payload": { "code": 0 }, "time": "2015-07-18T22:19:30+00:00" }, "service": {} } } } |
カスタム スクリプトからの出力は、スタンバイ サイトへのフェールオーバーが必要かどうかをディザスター リカバリー ウォッチドッグに通知します。ディザスター リカバリー ウォッチドッグは、スクリプトからの出力を JSON 形式で解釈します。次に例を示します。
{ "state": "active", "action": "nothing", "description": "", "payload": { "waitTime": "", "details": { "percentages": { "connected": 1, "arbiters": { "10.155.69.114": "reachable" } } } } }
表 2 に、スクリプト出力の詳細を示します。
プロパティ |
説明 |
データ・タイプ |
値または形式 |
その他の詳細 |
---|---|---|---|---|
状態 |
このサイトの現在の障害復旧の役割 |
文字列 |
アクティブ スタンバイ |
必須 空の文字列は使用できません。 |
アクション |
ディザスタリカバリウォッチドッグが実行する必要があるアクション |
文字列 |
beActive–ロールをアクティブに変更します。 beStandby–役割をスタンバイに変更します。 何も - ロールを変更しません。 wait–現在のロールで、payload.waitTimeプロパティで指定された時間待機します。 |
必須 空の文字列は使用できません。 |
説明 |
アクション フィールドと電子メール通知で送信されるメッセージの説明 |
文字列 |
– |
必須 空の文字列を使用できます。 |
ペイロード.待機時間 |
両方のサイトがスタンバイになる猶予期間の終了時刻 |
文字列 (日付) |
YYYY-MM-DD、UTC 時刻 (HH:MM+00:00 形式) |
必須 空の文字列を使用できます。 このプロパティは、アクションの値を wait に指定した場合に使用されます。 |
ペイロード.詳細 |
スクリプトのデバッグに使用できるユーザーカスタマイズ情報 |
– |
JSON オブジェクト |
オプション 空の文字列は使用できません。 |
障害回復を構成する手順
アクティブ・サイトとスタンバイ・サイト間の災害復旧を構成するには:
Junos Space ネットワーク管理プラットフォーム リリース 15.2R1 にアップグレードする前に、以前のリリースで設定した災害復旧プロセスを停止します。アップグレードプロセスの詳細については、 Junos Spaceネットワーク管理プラットフォームリリースノート15.2R1のアップグレード手順のセクションを参照してください。
以前のリリースで設定されたディザスタリカバリプロセスの停止の詳細については、 Junos Spaceネットワーク管理プラットフォームリリース14.1R3以前のディザスタリカバリプロセスの停止を参照してください。
Junos Space ネットワーク管理プラットフォーム リリース 15.2R1 のクリーン インストールの場合、この手順を実行する必要はありません。
通知を受信するために、Junos Spaceのユーザーインターフェイスから両方のサイトでSMTPサーバーを設定します。詳細については、『Junos Space ネットワーク管理プラットフォーム ワークスペース ユーザー ガイド』の「SMTP サーバーの管理」を参照してください。
監視デバイスのリスト(デバイスアービトレーションアルゴリズムを使用している場合)またはカスタム障害検出スクリプトを含むファイルを、アクティブなサイトの適切な場所にコピーします。すべての監視デバイスがアクティブサイトで検出されていることを確認します。詳細については、 Junos Spaceネットワーク管理プラットフォームワークスペースユーザーガイドの デバイス検出プロファイルの概要を参照してください。
アクティブ・サイトで災害復旧構成ファイルを構成します。ディザスタリカバリ設定には、設定ファイルとRRDファイルを同期するためのSCP設定、ハートビート設定、通知設定、および障害検出メカニズムが含まれます。
スタンバイ・サイトで災害復旧構成ファイルを構成します。ディザスタリカバリ設定には、設定とRRDファイルを同期するためのSCP設定、ハートビート設定、および通知設定が含まれます。
アクティブ・サイトから災害復旧プロセスを開始します。
詳細については、「 アクティブ サイトとスタンバイ サイト間のディザスタ リカバリ プロセスの設定」を参照してください。
障害回復コマンド
表 3 にリストされている災害復旧コマンドを使用して、災害復旧サイトを構成および管理します。これらのコマンドは、サイトの VIP ノードで実行する必要があります。これらのコマンドで オプションを使用すると--help
、詳細情報を表示できます。
コマンド |
説明 |
オプション |
---|---|---|
|
両方のサイトで障害回復構成ファイルを初期化します。 コマンドによってプロンプトが出されるパラメーターの値を入力する必要があります。 データをレプリケートし、ディザスター リカバリー サイト間でレプリケーションを監視するために必要な MySQL および PgSQL ユーザーとパスワードを作成します。次のユーザーが作成されます。
|
|
|
||
|
両方のサイトで災害復旧プロセスを開始します。 このコマンドは、アクティブ・サイトの VIP ノードで実行する必要があります。アクティブ・サイトは、スタンバイ・サイトへの SSH 接続を確立し、スタンバイ・サイトで コマンドを実行します このコマンドを実行すると、MySQLデータベースとPgSQLデータベースのレプリケーションと構成、およびスタンバイサイトへのRRDファイルのバックアップが開始されます。 次のコマンドを実行します。
|
|
|
||
|
オプションを指定せずにコマンドを実行すると、コマンドは次のようになります。
コマンドは、次の順序で実行する必要があります。
このコマンドは、ローカル・サイトの VIP ノードで実行して構成を変更し、リモート・サイトの VIP ノードで実行して、変更された構成を受け入れる必要があります。 |
これらのオプションを使用して、サイトで障害回復構成を変更し、ピア サイトで変更を更新します。 |
|
||
|
||
|
||
|
||
|
||
|
||
|
障害復旧プロセスの状態を確認します。 このコマンドは、MySQL および PgSQL データベースがレプリケートされ、構成ファイルと RRD ファイルがバックアップされているかどうかを確認し、ディザスター リカバリー ウォッチドッグのステータスを検証してエラーを報告します。 |
– |
|
サイト間のディザスタリカバリプロセスを停止します。 このコマンドを実行すると、MySQL および PgSQL データベースのレプリケーションと構成、およびサイト間の RRD ファイルのバックアップが停止します。災害復旧データ ファイルは削除されません。JBoss、OpenNMS、Apacheなどのサービスのステータスは変更されていません。 |
– |
|
ディザスタリカバリプロセスを停止し、サイトからディザスタリカバリデータファイルを削除します。サイトは、スタンドアロン クラスターとしてサービスを開始します。 このコマンドは、両方のサイトの VIP ノードで実行して、災害復旧プロセスを完全に停止し、両方のサイトから災害復旧データファイルを削除する必要があります。 |
– |
|
スタンバイ サイトに手動でフェールオーバーします。 このコマンドを実行すると、スタンバイ サイトが新しいアクティブ サイトになり、アクティブ サイトが新しいスタンバイ サイトになります。 |
|
|
||
|
スタンバイ サイトへの自動フェールオーバーを有効にするか、指定した期間、スタンバイ サイトへの自動フェールオーバーを無効にします。
メモ:
このコマンドは、災害復旧ウォッチドッグがサイトでアクティブになっている場合にのみ実行できます。 |
|
|
||
|
災害復旧の構成とランタイム情報を JSON 形式で表示します。 |
|
カスタム障害検出スクリプトにこのコマンドを含めると、コマンドはディザスタリカバリ設定とディザスタリカバリウォッチドッグサービスのステータスを取得し、スクリプト内のロジックを実行します。 |