Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

ディザスター リカバリーの概要

Junos Space クラスターを使用すると、ネットワーク管理ソリューションの高可用性と拡張性を維持できます。ただし、クラスタ内のすべてのノードは同じサブネット内にある必要があるため、通常は同じデータセンターまたは同じキャンパス内に導入されます。ただし、クラスタ上の元の Junos Space インストール済み環境を、地理的に異なる場所にある別のクラスタにミラーリングすることで、その場所で障害発生時にクラスタを簡単に復旧できます。したがって、地震などの災害でJunos Spaceのメインサイトに障害が発生した場合、もう一方のサイトが引き継がれる可能性があります。したがって、災害時リカバリー設定の物理インストールは、通常、アクティブ・サイトまたはメイン・サイト (つまり、ローカル・サイト) とスタンバイまたはバックアップ・サイト (つまり、リモート・サイト) の 2 つの地理的に分離されたクラスターのセットです。

基本的な接続要件と前提条件が満たされた場合(「災害復旧を構成するための前提条件」および「災害復旧を構成するための接続要件」を参照)、アクティブなサイトのクラスタからのデータがほぼリアルタイムでスタンバイ サイトのクラスタに複製されます。

MySQL データベースと PgSQL データベース内のデータは、SSL 接続を介してアクティブ サイトからスタンバイ サイトに非同期で複製されます。災害復旧サイト間の MySQL および PgSQL データは、災害復旧を初期化したときに生成される自己署名 SSL 証明書を使用して暗号化されます。CA ルート証明書、CRL、ユーザー証明書、スクリプト、デバイス イメージ、アーカイブされた監査ログ、スケジュールされたジョブに関する情報は、スタンバイ サイトへのリアルタイム データレプリケーション中にスタンバイ サイトに複製されます。アクティブサイトからスタンバイサイトにSCP(セキュアコピープロトコル)を使用して、設定ファイルとRRD(ラウンドロビンデータベース)ファイルを定期的に同期します。

Junos Space メカニズムが組み込まれたディザスター リカバリー ウォッチドッグは、サイト間のデータベース レプリケーションの整合性を監視します。アクティブ サイトがスタンバイ サイトにフェールオーバーするまで、その他のすべてのサービス(JBoss、OpenNMS、Apache など)は、スタンバイ サイトで実行されません。アクティブ サイトがダウンすると、スタンバイ サイトへのフェールオーバーが自動的に開始されます。デバイスアービトレーションアルゴリズムを使用して、どちらのサイトがアクティブサイトであるべきかを判断し、両サイトがアクティブを試みるスプリットブレインシナリオを防止します。デバイス・アービトレーション・アルゴリズムの詳細については、 デバイス・アービトレーション・アルゴリズムを使用した障害検出を参照してください

以下のセクションでは、災害復旧プロセス、障害検知メカニズム、および災害復旧コマンドの接続要件について説明します。

災害復旧ソリューション

アクティブ・サイトとスタンバイ・サイトの間でディザスタ・リカバリー・プロセスを構成して開始すると、そのサイト間で MySQL および PgSQL データベースの非同期複製が開始されます。設定とRRDファイルは、定義された時間間隔でSCPを介してスタンバイサイトにバックアップされます。

障害回復プロセスでは、Cassandra データベースをスタンバイ サイトにリアルタイムで複製したり、Junos Space ノードで実行されている Cassandra サービスを監視したりすることはありません。

災害復旧ソリューションの通常の運用時には、GUI および API ユーザーと管理対象デバイスが、すべてのネットワーク管理サービスのアクティブ サイトに接続されます。アクティブ サイトが機能している限り、スタンバイ サイトと管理対象デバイス間の接続は無効になります。障害が発生してアクティブ・サイトが利用できなくなった場合、スタンバイ・サイトが動作します。この時点で、スタンバイ・サイト上のすべてのサービスが開始され、スタンバイ・サイトと管理対象デバイス間の接続が確立されます。

図 1 に、災害復旧ソリューションを示します。

図 1:災害復旧ソリューション Disaster Recovery Solution

ディザスター・リカバリー・ウォッチドッグ・プロセスは、アクティブ・サイトとスタンバイ・サイトの両方の VIP ノードで開始され、複製プロセスの状態を監視し、リモート・サイトがダウンしたときに検出します。ローカルサイトのディザスターリカバリーウォッチドッグは、(リモートサイトのノードに ping を実行することで)両方のサイト間に接続の問題があるかどうか、サイトがアービターデバイスに接続されているか否かをチェックします(デバイスアービトレーションアルゴリズムを使用する場合)。

あるサイトの災害復旧ウォッチドッグは、リモートサイトとアービターデバイスとの接続を確認するために、以下のタスクを実行します。

  • リモート サイトの VIP アドレスを定期的に設定可能な間隔で ping します。間隔のデフォルト値は30秒です。

    pingごとに、設定可能なタイムアウト間隔内で返信を期待します。タイムアウト間隔のデフォルト値は5秒です。

  • ローカル サイトがタイムアウト間隔内で応答を受信できない場合、ディザスター リカバリー ウォッチドッグは構成可能な回数の ping を再試行します。デフォルトでは、再試行回数は4です。

  • すべての再試行に失敗した場合、ローカルサイトの災害復旧ウォッチドッグは、リモートサイトのVIPアドレスが到達できないと結論付けます。

    ただし、ディザスターリカバリーウォッチドッグは、ローカルのスイッチオーバーにより、リモートサイトがVIPアドレスを介してスタンバイノードにスイッチングする可能性があるため、リモートサイトがダウンしていると結論付けるわけではありません。

  • VIP アドレスの切り替えの可能性を考慮するために、ディザスター リカバリー ウォッチドッグはリモート サイトにある他のロード バランサー ノードの IP アドレスに ping を実行します。いずれかのノードへの ping が応答を受信すると、ディザスター リカバリー ウォッチドッグはリモート サイトがまだ稼働していると結論付けます。

    ノードへの ping が失敗した場合、ディザスター リカバリー ウォッチドッグはリモート サイトがダウンしていると結論付けしません。代わりに、災害復旧ウォッチドッグは、サイト間の接続問題の可能性を考慮します。両方のサイトがアクティブになります。

  • 両方のサイトがアクティブになることを防ぐために、ディザスター リカバリー ウォッチドッグがデバイスアービトレーション アルゴリズムを開始し、フェイルオーバーが必要かどうかを判断します。

    フェールオーバーは、アクティブ サイトで管理されている監視デバイスの割合がフェールオーバーしきい値を下回る場合にのみ開始されます。そして、アクティブサイトがスタンバイサイトになり、スタンバイサイトがアクティブサイトとなります。

    監視デバイスの割合がフェイルオーバーしきい値を超えている場合、スタンバイ サイトはスタンバイのままで、アクティブ なサイトはアクティブなままになります。アクティブ サイトで管理するアービター デバイスの割合は構成可能で、デフォルト値は 50% です。

以下の条件が満たされた場合、フェイルオーバーが開始されます。

  • スタンバイ・サイトは、アクティブ・サイトの VIP アドレス、またはアクティブ・サイトの他のロード・バランサー・ノードのノード IP アドレスに到達できません。

  • アクティブ サイトで管理される監視デバイスの割合がフェイルオーバーしきい値を下回っています。

デバイス・アービトレーション・アルゴリズムの詳細については、 デバイス・アービトレーション・アルゴリズムを使用した障害検出を参照してください

障害回復を設定するための前提条件

障害回復を構成する前に、Junos Space のインストール環境が以下の前提条件を満たしていることを確認する必要があります。

  • 1 次サイトまたはアクティブ・サイトの Junos Space クラスター(単一ノードでも複数ノードでも構いません)と、リモート・サイトまたはスタンバイ・サイト(単一ノードでも複数ノードでも構いません)のクラスタは、まったく同じ方法でセットアップする必要があります。同じアプリケーション、デバイス・アダプター、同じIPファミリー構成、 などなど。

  • どちらのクラスターも、Junos Space ユーザー インターフェイスからの SMTP サーバー情報を使用して構成する必要があります。詳細については、「 SMTP サーバーの管理」を参照してください。この構成により、アクティブ・サイトとスタンバイ・サイトの両方のクラスターは、複製に失敗した場合に管理者に電子メールで通知することができます。

メモ:

アクティブ サイトとスタンバイ サイトのノード数は同じにする必要があります。

障害回復を設定するための接続要件

ディザスター リカバリーを設定する前に、ディザスター リカバリー ソリューションが以下の接続要件を満たしていることを確認する必要があります。

  • アクティブサイトとスタンバイサイトのJunos Spaceクラスタ間のレイヤー3接続。これはですね:

    • クラスタ内のすべてのノードは、他のクラスタの VIP アドレスに正常に ping を実行できます。

    • クラスタ内のすべてのノードは、SCPを使用して、アクティブサイトとスタンバイサイト間でファイルを転送できます。

    • TCP ポート 3306(MySQL データベース レプリケーション)および 5432(PostgreSQL データベース レプリケーション)を使用して、2 つのクラスター間のデータベース レプリケーションを実行できます。

    • 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 データベースの複製エラーを自動的に修正できない場合は、電子メールで管理者に通知します。

ファイルモニター

fileMonitor サービスは、以下のタスクを実行します。

  • サイト内およびアクティブサイトとスタンバイサイト間で複製された設定ファイルとRRDファイルの正常性を監視します。

  • 設定ファイルと RRD ファイルのレプリケーション中に発生するエラーを修正します。

  • 複製エラーを自動的に修正できない場合は、管理者に電子メールで通知します。また、クロネジョブの出力で複製エラーを表示することもできます。

arbiterMonitor

arbiterMonitor サービスは、ローカル サイトがすべてのアービター デバイスに ping を実行できるかどうかを定期的にチェックします。到達可能な監視デバイスの割合が構成済みの警告しきい値(デフォルトでは 70%)を下回ると、管理者に電子メール通知が送信されます。

configMonitor

configMonitor サービスは、以下のタスクを実行します。

  • 両方のサイトのすべてのノードで障害回復構成ファイルを監視します。

  • ファイルが同期していない場合は、サイト内のノード間で設定ファイルを転送します。

サービス監視

serviceMonitor サービスは、以下のタスクを実行します。

  • 特定のサイト内の選択したサービス(jboss、jboss-dc、httpd、dr-watchdogなど)のステータスを監視します。

  • 誤ったステータスが表示された場合、選択したサービスを開始または停止します。

通知

通知サービスは、電子メールを介して障害回復ウォッチドッグによって検出されたエラー状態、警告、または災害復旧状態の変更について管理者に通知します。通知メールは、以下の場合に送信されます。

  • サイトと監視デバイス間の接続の問題により、自動フェイルオーバーが無効になっています。

  • 到達可能な監視デバイスの割合は、警告のしきい値よりも低くなります。

  • サイトはスタンバイまたはアクティブになります。

  • スタンバイサイトは、SCPを介してアクティブサイトからファイルをバックアップできません。

  • サイトはリモートサイトへのSSH接続を確立できません。

  • ローカルサイトは、MySQLプライマリノードのホスト名を取得できません。

  • サイトで MySQL および PgSQL データベースの複製エラーを修正できません。

通知サービスは、構成可能な期間内(デフォルトでは 3600 秒)内に同じエラーを報告する電子メールを送信しません。

デバイスアービトレーションアルゴリズムを使用した障害検知

デバイスアービトレーションアルゴリズムを使用して、サイトでの障害を検出します。Junos OS を実行し、Junos Space プラットフォームによって管理される、到達性の高いデバイスのリストが、アービター デバイスとして選択されます。以下の基準に基づいてアービター デバイスを選択することをお勧めします。

  • 両方のサイトからJunos Spaceが開始するSSH接続を通じて、アービターデバイスにアクセスできる必要があります。Junos Space プラットフォームへのデバイス開始接続を使用するデバイスは選択しないでください。

  • 両方の障害復旧サイトから監視デバイスに ping を実行できる必要があります。

  • デバイスの仲裁アルゴリズムの結果に影響を与える可能性があるため、Junos Spaceプラットフォームへの接続を維持するか、頻繁に再起動またはシャットダウンされるアービターデバイスを選択する必要があります。生活の一部で特定の監視デバイスがオフラインになると予測した場合、デバイスの選択は避けてください。

  • 管理ネットワークに問題が発生してサイトからすべての監視デバイスに到達できないようにするには、地理的に異なる場所から監視デバイスを選択する必要があります。

  • NAT および ww Junos OS デバイスをアービター デバイスとして選択することはできません。

アクティブ サイトのデバイス アービトレーション アルゴリズムは、ping を使用してアクティブ サイトからアービター デバイスに接続します。スタンバイサイトのデバイスアービトレーションアルゴリズムは、Junos Spaceプラットフォームデータベースからのログイン認証情報を使用して、SSH接続を介してアービターデバイスにログインします。以下に、アクティブサイトとスタンバイサイトにおけるデバイスアービトレーションアルゴリズムのワークフローを示します。

アクティブサイト:

  1. 選択されたすべてのアービター デバイスに Ping を送信します。

  2. ping できるアーバイト デバイスの割合を計算します。

  3. ping 可能な監視デバイスの割合がフェイルオーバーしきい値の設定値を上回っているか、同じか確認します。

    • 接続されたアービター デバイスの割合がフェールオーバーしきい値の構成値(failureDetection.threshold.failover パラメータ(障害回復 API のウォッチドッグ セクション)以上の場合、アクティブ サイトが大部分の監視デバイスを管理しているため、フェイルオーバーは開始されません。

    • 監視デバイスの割合がフェイルオーバーしきい値の設定した値を下回ると、フェイルオーバーが開始され(自動フェイルオーバーが有効になっている場合)、アクティブなサイトはスタンバイになります。自動フェイルオーバーが無効になっている場合、アクティブなサイトはアクティブなままになります。

スタンバイサイト:

  1. SSH接続を介してアービターデバイスにログインします。

  2. 各監視デバイスでコマンドを実行し、アクティブサイトの任意のノード(ノードで管理)へのSSH接続のリストを取得します。

  3. アクティブサイトで管理される監視デバイスの割合を計算します。

  4. SSH接続を介して到達できないアーバイトデバイスの割合を計算します。

    • アクティブ サイトで管理されているアービター デバイスの割合がフェイルオーバーしきい値の設定値を上回っているか同じ場合、アクティブ サイトは依然として大部分の監視デバイスを管理しているため、フェイルオーバーは必要ありません。

    • アクティブ サイトで管理される監視デバイスの割合がフェールオーバーしきい値の設定された値を下回る場合、ディザスター リカバリー ウォッチドッグはフェイルオーバーが必要になる可能性があると結論付けます。

  5. ただし、スタンバイ サイトからアクセスできないデバイスをアクティブ サイトで接続して管理する場合があるため、スタンバイ サイトは到達できないすべてのアリバイト デバイスがアクティブ サイトによって管理されていると見なし、アクティブ サイトが管理するデバイスの新しい割合を計算します。

    • アクティブサイトで管理されているデバイスの割合が、管理対象デバイスを調整するためのしきい値のパーセンテージを下回っている場合(failureDetection.threshold.adjust災害復旧APIのウォッチドッグセクションのManagedパラメーターは、デフォルト値は50%)であり、スタンバイサイトはスタンバイのままです。デフォルトでは、管理対象デバイスを調整するしきい値の割合はフェイルオーバーしきい値を下回る必要があります。

    • アクティブ サイトで管理されるデバイスと、到達できないアービター デバイスを追加して計算した新しい割合がフェールオーバーしきい値を下回る場合、ディザスター リカバリー ウォッチドッグはフェイルオーバーを開始する必要があると結論付けます。

      自動フェイルオーバーが有効になっている場合、スタンバイ サイトはアクティブになるプロセスを開始します。自動フェイルオーバーが無効になっている場合、フェイルオーバーは発生しません。

自動フェイルオーバーを無効にした場合、または接続の問題で機能が無効になっている場合、スタンバイ サイトからネットワーク管理サービスを再開するには、スタンバイ サイトで実行 jmp-dr manualFailover する必要があります。

カスタム障害検知スクリプトを使用した障害検知

デバイスアービトレーションアルゴリズムを使用するだけでなく、カスタムの障害検出スクリプト(sh、bash、Perl、またはPython)を作成して、スタンバイサイトにいつまたはフェイルオーバーするかを決定できます。カスタム障害スクリプトは、 コマンドを jmp-dr api v1 config ––include 呼び出し、災害復旧設定と災害復旧ウォッチドッグサービスのステータスを取得します。サイトの災害復旧構成と災害復旧ウォッチドッグサービスのステータスは、さまざまなセクションで構成されています。 表 1 は、 これらのセクションを示しています。

< オプションを使用して、セクションの詳細を表示したり>カスタム障害検知スクリプトのセクションの詳細を使用したりします。

表 1:API セクション

セクション

説明

セクションに含まれる詳細

サンプル出力

役割

現在のサイトの災害復旧の役割

ロールは、アクティブ、スタンバイ、またはスタンドアロンにできます。

フェールオーバー

最後に発生したフェイルオーバーのタイプ

フェイルオーバーがまだ発生していない場合は、値をactive_to_standby、standby_to_active、または空にすることができます。

コア

リモート サイト ノードの詳細を含むコア ディザスター リカバリー構成

リモートサイトのロードバランサーのピアVip

adminPass - リモートサイトの暗号化された管理者パスワード。複数のエントリーはコンマで区切られます。

scpTimeout - サイト間のSCP転送障害を検出するために使用されるタイムアウト値

peerLoadBalancerNodes – リモート サイトのロード バランサー ノードのノード IP アドレス。複数のエントリーはコンマで区切られます。

ピアBusinessLogicNodes - リモートサイトの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 ノードのピアVip-VIP(通常ノードまたは専用データベース ノード)

peerNodes - リモート サイトの MySQL ノードのノード IP アドレス(通常のノードまたは専用 DB ノードのいずれか)。複数のエントリーはコンマで区切られます。

{ "mysql": {
   "hasDedicatedDb": false,
   "peerVip": "10.155.90.210",
   "peerNodes": "10.155.90.211"
   }
}

Pgsql

リモートサイトの PgSQL データベースに関連するディザスター リカバリー設定

hasFmpm - リモート サイトに特殊な FMPM ノードが含まれているかどうか

peerFmpmVip リモート サイトの PostgreSQL ノードの VIP(通常ノードまたは FM/PM 専用ノード)

peerNodes - リモート サイトの PostgreSQL ノードのノード IP アドレス(通常ノードまたは FM/PM 専用ノードのいずれか)。複数のエントリーはコンマで区切られます。

{ "psql": {
  "hasFmpm": false,
  "peerFmpmVip": "10.155.90.210",
  "peerNodes": "10.155.90.211"
  }
}

ファイル

リモート サイトでの設定と RRD ファイル関連の災害復旧設定

backup.maxCount - 保持するバックアップ ファイルの最大数

backup.hoursOfDay – ファイルをバックアップするのに1日の時間

backup.daysOfWeek – ファイルをバックアップする曜日

restore.hoursOfDay – アクティブなサイトからファイルをポーリングする日の時間

restore.daysOfweek – アクティブサイトからファイルをポーリングする曜日

{ "file": {
  "backup": {
    "maxCount": 3,
    "hoursOfDay": "*",
    "daysOfWeek": "*" },
  "restore": {
    "hoursOfDay": "*",
"daysOfWeek": "*" }
  }
}

ウォッチドッグ

現在のサイトのディザスター リカバリー ウォッチドッグに関連するディザスター リカバリー構成

ハートビート.再試行 - ハートビート メッセージを再試行する回数

ハートビート.タイムアウト - 各ハートビート メッセージのタイムアウト(秒)

ハートビート.interval - サイト間のハートビート メッセージ間隔(秒)

notification.email - サービスの問題を報告するために、電子メール アドレスに問い合わせる

通知.interval - 影響を受けるサービスに関する電子メールを受信するまでの減衰間隔

failureDetection.isCustom – リモート サイトがカスタム障害検知を使用しているかどうか

failureDetection.script – 障害検知スクリプトのパス

failureDetection.threshold.failover – フェールオーバーをトリガーするしきい値の割合

failureDetection.threshold.adjust管理デバイスの割合を調整するための管理しきい値の割合

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 アドレス

peerNodes - リモートサイトのデバイス管理IPアドレス。複数のエントリーはコンマで区切られます。

ノード - 現在のサイトのデバイス管理IPアドレス。複数のエントリーはコンマで区切られます。

ip- このノード(コマンドが実行されるノード)上の jmp-dr api v1 config --list デバイス管理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 形式で解釈します。以下に例を示します。

表 2 は、スクリプト出力の詳細を示しています。

表 2:カスタム スクリプト出力の詳細

プロパティ

説明

データタイプ

値または形式

その他の詳細

状態

このサイトの現在の障害回復ロール

文字列

アクティブ

スタンバイ

必須

空の文字列は使用できません。

アクション

ディザスター・リカバリー・ウォッチドッグが実行しなければならないアクション

文字列

beActive - ロールをアクティブに変更します。

beStandby - ロールをスタンバイに変更します。

役割を変更しないでください。

wait – ペイロードで指定された時間を現在のロールで待機します。waitTime プロパティ。

必須

空の文字列は使用できません。

説明

アクション フィールドの説明と電子メール通知で送信されるメッセージ

文字列

必須

空の文字列が許可されます。

ペイロード.waitTime

両サイトがスタンバイ状態になった猶予期間の終了時間

文字列(日付)

YYYY-MM-DD、UTC 時刻(HH:MM+00:00 形式)

必須

空の文字列が許可されます。

このプロパティーは、待機としてアクションの値を指定する場合に使用されます。

ペイロード詳細

スクリプトのデバッグに使用できるユーザーカスタマイズ情報

JSON オブジェクト

オプション

空の文字列は使用できません。

ディザスター リカバリーを設定する手順

アクティブ・サイトとスタンバイ・サイトの間でディザスター・リカバリーを構成するには、以下を行います。

  1. Junos Space ネットワーク管理プラットフォーム リリース 15.2R1 にアップグレードする前に、以前のリリースで設定した障害回復プロセスを停止します。アップグレード プロセスの詳細については、 Junos Space ネットワーク管理プラットフォーム リリース ノート 15.2R1 の「アップグレード手順」セクションを参照してください。

    以前のリリースで設定された障害回復プロセスの停止について詳しくは、 Junos Space ネットワーク管理プラットフォーム リリース 14.1R3 以前での障害回復プロセスの停止を参照してください。

    Junos Space ネットワーク管理プラットフォーム リリース 15.2R1 をクリーン インストールするために、この手順を実行する必要はありません。

  2. Junos Spaceユーザーインターフェイスから両方のサイトにSMTPサーバーを設定し、通知を受信します。詳細については、 Junos Spaceネットワーク管理プラットフォームワークスペースユーザーガイドでのSMTPサーバーの管理を参照してください。

  3. アービター デバイスのリスト(デバイス アービトレーション アルゴリズムを使用している場合)またはカスタムの障害検知スクリプトをアクティブ サイトの適切な場所にコピーします。すべてのアービター デバイスがアクティブなサイトで検出されていることを確認します。詳細については、『 Junos Space Network Management Platform Workspaces User Guide』の「デバイス検出プロファイルの概要」を参照してください。

  4. アクティブ・サイトで障害回復構成ファイルを構成します。ディザスターリカバリー設定には、設定とRRDファイル、ハートビート設定、通知設定、障害検知メカニズムを同期するSCP設定が含まれています。

  5. スタンバイ・サイトで障害回復構成ファイルを構成します。ディザスターリカバリー設定には、設定とRRDファイル、ハートビート設定、通知設定を同期するSCP設定が含まれています。

  6. アクティブ・サイトから障害回復プロセスを開始します。

    詳細については、「アクティブサイト とスタンバイサイト間の障害回復プロセスの設定」を参照してください。

ディザスター リカバリー コマンド

表 3 に示すディザスター リカバリー コマンドを使用して、災害復旧サイトを構成および管理します。これらのコマンドは、サイトの VIP ノードで実行する必要があります。これらのコマンドと一緒に オプションを--help使用すると、詳細情報を表示できます。

表 3: 災害復旧コマンド

コマンド

説明

オプション

jmp-dr init

両方のサイトで障害回復構成ファイルを初期化します。

コマンドでプロンプトが表示されるパラメータの値を入力する必要があります。

データを複製し、災害復旧サイト全体の複製を監視するために必要な MySQL および PgSQL のユーザーとパスワードを作成します。以下のユーザーが作成されます。

  • デフォルトユーザー名を持つユーザー repUser およびパスワード repPass for MySQL データベースレプリケーション。

  • 既定のユーザー名を持つユーザー repAdmin およびパスワード repAdminPass を使用して、MySQL データベースレプリケーションの正常性とフェイルオーバーを監視します。

  • PgSQLレプリケーション用のデフォルトのユーザー名レプリケーションとパスワードレプリケーションを持つユーザー。

  • PgSQLレプリケーションの状態とフェイルオーバーを監視するためのデフォルトのユーザー名postgresとパスワードpostgresを持つユーザー。

-a– 災害時リカバリー構成ファイルは、アクティブ・サイトでのみ初期化します。

-s– スタンバイ・サイトでのみ障害回復構成ファイルを初期化します。

jmp-dr start

両方のサイトで障害回復プロセスを開始します。

このコマンドは、アクティブサイトの VIP ノードで実行する必要があります。アクティブサイトは、スタンバイサイトへのSSH接続を確立し、スタンバイサイトで コマンドを実行 jmp-dr start します。

このコマンドを実行すると、MySQL データベースと PgSQL データベースの複製と設定、スタンバイ サイトへの RRD ファイルのバックアップが開始されます。

次のコマンドを実行します。

  • 最初にディザスター リカバリー プロセスを開始するには

  • Junos Space セットアップのアップグレード プロセスを停止した後にディザスター リカバリー プロセスを再開するには、

-a– 障害回復プロセスは、アクティブなサイトでのみ開始します。

-s– 障害回復プロセスはスタンバイ・サイトでのみ開始します。

jmp-dr toolkit config update

オプションなしで コマンドを実行すると、 コマンドは次のようになります。

  • サイトで変更されたクラスタ設定を表示し、ローカル サイトで更新します。

  • リモート サイトで変更されたクラスタ設定を受け入れ、更新します。

コマンドは、以下の順序で実行する必要があります。

  1. 両方のサイトで、クラスタ設定の変更を受け入れて更新します。

  2. ロードバランサの変更を更新し、両方のサイトでSCPタイムアウト設定を変更および更新します。

  3. その他の災害復旧設定パラメータを変更および更新します。

このコマンドは、ローカル・サイトの VIP ノードで実行し、構成を変更し、変更された構成を受け入れるリモート・サイトの VIP ノードで行う必要があります。

これらのオプションを使用して、サイトの障害回復構成を変更し、ピア・サイトで変更を更新します。

-user-coreVIPアドレス、パスワード、SCPタイムアウト設定を変更します。

-user-file-backup設定とRRDファイルのバックアップ設定を変更します。

-user-file-restore構成を変更し、RRD ファイルの複製をスタンバイ サイトの設定に変更します。

-user-watchdog-heartbeat– 災害復旧ウォッチドッグのハートビート設定を変更します。

-user-watchdog-notification電子メール通知の設定を変更します.

-user-watchdog-failureDetection– 障害検知設定を変更します。

jmp-dr health

障害回復プロセスのステータスを確認します。

このコマンドは、MySQL データベースと PgSQL データベースが複製され、設定と RRD ファイルがバックアップされるかどうかをチェックし、ディザスター リカバリー ウォッチドッグのステータスを検証し、エラーを報告します。

jmp-dr stop

サイト間の障害回復プロセスを停止します。

このコマンドを実行すると、MySQLとPgSQLデータベースの複製と設定、サイト間のRRDファイルのバックアップが停止します。ディザスター リカバリー データ ファイルは削除されません。JBoss、OpenNMS、Apache などのサービスのステータスは変わりません。

jmp-dr reset

ディザスター リカバリー プロセスを停止し、サイトからディザスター リカバリー データ ファイルを削除します。このサイトは、スタンドアロンクラスタとしてサービスを開始します。

このコマンドは、両方のサイトの VIP ノードで実行して、障害回復プロセスを完全に停止し、両方のサイトから災害時リカバリー・データ・ファイルを削除する必要があります。

jmp-dr manualFailover

スタンバイ サイトに手動でフェールオーバーします。

このコマンドを実行すると、スタンバイ サイトは新しいアクティブ サイトになり、アクティブ サイトは新しいスタンバイ サイトになります。

-a手動でサイトのロールをアクティブに変更します。

-s手動でサイトの役割をスタンバイに変更します。

jmp-dr toolkit watchdog status [options]

スタンバイ サイトへの自動フェールオーバーを有効にする、または指定した期間のスタンバイ サイトへの自動フェールオーバーを無効にします。

メモ:

このコマンドは、障害回復ウォッチドッグがサイトでアクティブになっている場合にのみ実行できます。

–enable-automatic-failoverスタンバイサイトへの自動フェイルオーバーを有効にします。

–disable-automatic-failover durationスタンバイサイトへの自動フェイルオーバーを指定時間無効にします。時間を数時間または分で入力します。例えば、1hまたは30m。「h」または「m」を値(例えば、2)と一緒に入力しない場合、デフォルトの期間は時間単位で計算されます。ゼロと入力すると、自動フェイルオーバーは永続的に無効になります。

jmp-dr api v1 config

災害復旧の構成とランタイム情報を JSON 形式で表示します。

--list– 災害復旧ウォッチドッグサービスの災害復旧構成とステータスの特定のセクションを表示します。 表 1 は、セクション名を示しています。

–-include<sections>– カスタム障害検知スクリプトに、災害復旧の構成と災害復旧ウォッチドッグサービスのステータスの特定のセクションを含めます。複数のセクション名をコンマで区切ります。

このコマンドをカスタム障害検知スクリプトに含めると、コマンドは災害復旧監視犬サービスの災害復旧構成とステータスを取得し、スクリプト内のロジックを実行します。