Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Openstack 13 または Ansible デプロイヤを使用して、Openstack 環境で JSON 形式で Contrail データベースをバックアップおよび復元する方法

このドキュメントでは、Openstack 13ベースのまたはAnsibleデプロイヤを使用して導入されたOpenstackオーケストレーション環境でContrail Networkingを実行している場合に、Contrailデータベース(CassandraおよびZookeeper)をJSON形式でバックアップおよびリストアする方法について説明します。Openstack 13ベースのデプロイヤまたはAnsibleデプロイヤを使用して展開されるOpenstackオーケストレーション環境のリストについては、Contrail Networkingサポートされるプラットフォームのマトリックスを参照してください。

Openstack 16ベースのデプロイヤを使用して展開されたOpenstackオーケストレーション環境にContrail Networkingを展開する場合は、「 Openstack 16.1ディプレイヤーを使用したOpenstack環境でJSON形式でContrailデータベースをバックアップおよび復元する方法」を参照してください。

始める前に

同じ Contrail Networking リリースを実行しているノードの場合、バックアップと復元の手順を完了する必要があります。この手順は、Contrail Networking データベースのバックアップにのみ使用されます。オーケストレーション システム データベースをバックアップするための手順は含まれていません。

注意:

Contrailデータベースの状態はOpenStackデータベースなどの他のシステムデータベースに関連付けられているため、データベースのバックアップはすべてのシステムで一貫性を保つ必要があります。バックアップ操作を実行する前に、ノースバウンドAPIに関連するデータベースの変更をすべてのシステムで停止する必要があります。例えば、HAproxyなど、ロードバランサレベルでノースバウンドAPIの外部VIPをブロックすることができます。

JSON形式でのシンプルなデータベースバックアップ

この手順では、JSON 形式で簡単なデータベース バックアップを提供します。この手順は、コントローラノード上の/usr/lib/python2.7/site-packages/cfgm_commonにあるdb_json_exim.pyスクリプトを使用して実行されます。

このデータベースバックアップを実行するには:

  1. Contrail コントローラ ノードの 1 つにログインします。任意のContrailコントローラノードホストに /tmp/db-dump ディレクトリを作成します。

  2. 同じContrailコントローラノードで、コンテナからホストに contrail-api.conf ファイルをコピーします。

    Ansible Deployer:

    Red Hat Openstack Deployer:

    任意の Contrail コントローラ ノード上の Cassandra データベース インスタンスには、クラスター内のすべての Contrail コントローラ ノードの完全な Cassandra データベースが含まれています。したがって、ステップ 1 と 2 は 1 つの Contrail コントローラ ノードでのみ実行すればよいのです。

  3. すべてのContrailコントローラノードで、以下のDocker設定サービスを停止します。

    Ansible Deployer:

    Red Hat Openstack Deployer:

    この手順は、クラスター内の個々のContrailコントローラノードで実行する必要があります。

  4. 手順 1 と 2 を実行した Contrail コントローラ ノードに戻ります。

    dockerイメージを一覧表示して、 config api イメージの名前またはIDを見つけます。

    docker image ls | grep config-api

    例:

  5. 同じContrailコントローラノードから、entrypoint.shスクリプトを/bin/bashに向け、ホストからコンテナ内の/tmpディレクトリに/tmp/db-dumpをマッピングする設定APIコンテナを起動します。この手順を実行すると、API サービスが Contrail コントローラノードで開始されていないことを確認できます。

    cassandra_use_sslをAPIサーバー設定パラメータとして使用する場合は、-v /etc/contrail/ssl:/etc/contrail/ssl:roコマンドオプションを入力し、TLS証明書がContrail SSLディレクトリにマウントされるようにします。このマウントにより、TLS 認証を必要とするエンドポイントがある環境でバックアップ手順を確実に成功させることができます。

    registry_name変数とcontainer_tag変数は、ステップ4に一致する必要があります。

    例:

  6. ステップ 5のcontrailコントローラノードで作成したDockerコンテナから、 db_json_exim.py スクリプトを使用してJSON形式でデータをバックアップします。dbダンプファイルは、このContrailコントローラノードの /tmp/db-dump/ に保存されます。

    任意の Contrail コントローラ ノード上の Cassandra データベース インスタンスには、クラスター内のすべての Contrail コントローラ ノードの完全な Cassandra データベースが含まれています。したがって、ステップ 4 から 6 の 1 つから Contrail コントローラ ノードの 1 つから実行するだけで済みます。

  7. (オプション。推奨)同じcontrailコントローラノードから cat /tmp/db-dump.json | python -m json.tool | less コマンドを入力すると、ファイル転送のより読みやすいバージョンが表示されます。

  8. 同じcontrailコントローラノードから、 config api コンテナを終了します。これにより、コンテナが停止します。

  9. すべての Contrail コントローラ ノードで次の設定サービスを開始します。

    Ansible Deployer:

    Red Hat Openstack Deployer:

    この手順は、個々のContrailコントローラノードで実行する必要があります。

  10. 各contrailコントローラノードで、 contrail-status コマンドを入力して、サービスが active または running 状態であることを確認します。

    注:

    一部のコマンド出力フィールドと出力フィールドは、読みやすくするために削除されています。表示されている出力は、設定と分析サービスをホストするノードからのものです。

例:JSON 形式のシンプルなデータベース バックアップ

これらの例は、Ansible デプロイヤー環境と Red Hat Openstack デプロイー環境の両方で、JSON 形式で単純なデータベースバックアップを作成するプロセスを示しています。

各例では、control_config1、 control_config2、 control_config3の3つの設定ノードを持つクラスターがバックアップされています。単一の設定ノードで実行する必要があるすべてのタスクは、 control-config1で実行されます。タスクは、示された順序で実行する必要があります。

Ansible Deployer環境:

Red Hat Openstack Deployer環境:

バックアップからJSON形式でデータベースを復元

この手順では、 JSON形式の簡易データベース・バックアップで作成された簡易データベース・バックアップJSONファイルを使用してシステムをリストアする手順を説明します。

バックアップJSONファイルからシステムを復元するには:

  1. コンテナから任意の構成ノード上のホストに contrail-api.conf ファイルをコピーします。

    Ansible Deployer:

    Red Hat Openstack Deployer:

  2. すべてのコントローラの設定サービスを停止します。

    Ansible Deployer:

    Red Hat Openstack Deployer—Contrail Configコンテナをホストするノード:

    Red Hat Openstack Deployer—ノードホスティング Contrail Analyticsコンテナ:

  3. すべての config-db コントローラでCassandraサービスを停止します。

    Ansible Deployer:

    Red Hat Openstack Deployer:

  4. すべてのコントローラで Zookeeper サービスを停止します。

    Ansible Deployer:

    Red Hat Openstack Deployer:

  5. すべてのコントローラのZookeeperデータディレクトリをバックアップします。

    Ansible Deployer:

    Red Hat Openstack Deployer:

  6. すべてのコントローラでZookeeperデータディレクトリのコンテンツを削除します。

  7. すべてのコントローラでCassandraデータディレクトリをバックアップします。

    Ansible Deployer:

    Red Hat Openstack Deployer:

  8. すべてのコントローラでCassandraデータディレクトリのコンテンツを削除します。

  9. すべてのコントローラで Zookeeper サービスを開始します。

    Ansible Deployer:

    Red Hat Openstack Deployer:

  10. すべてのコントローラーでCassandraサービスを開始します。

    Ansible Deployer:

    Red Hat Openstack Deployer:

  11. List docker imageを選択して、コンフィグノード上の config-api イメージの名前またはIDを見つけます。

    例:

  12. 同じコンフィグノード上の config_api イメージの名前またはIDを使用して、新しいDockerコンテナを実行します。

    cassandra_use_sslをAPIサーバー設定パラメータとして使用する場合は、-v /etc/contrail/ssl:/etc/contrail/ssl:roコマンドオプションを入力し、TLS証明書がContrail SSLディレクトリにマウントされるようにします。このマウントにより、TLS 認証を必要とするエンドポイントがある環境でこのバックアップ手順を確実に成功させることができます。

    ステップ11の出力からのregistry_nameとcontainer_tagを使用します。

    例文

  13. 同じ構成ノードで実行中の新しいDockerにデータを復元します。

  14. config apiコンテナから終了します。これにより、コンテナが停止します。

  15. すべてのコントローラで設定サービスを開始します。

    Ansible Deployer:

    Red Hat Openstack Deployer—Contrail Configコンテナをホストするノード:

    Red Hat Openstack Deployer—ノードホスティング Contrail Analyticsコンテナ:

  16. 各設定ノードと、該当する場合は各分析ノードで contrail-status コマンドを入力して、サービスが active または running 状態であることを確認します。

    注:

    コンフィグノードの出力を示しています。一部のコマンド出力フィールドと出力フィールドは、読みやすくするために削除されています。

例:JSON バックアップを使用してデータベースを復元する方法(Ansible Deployer 環境)

この例では、Contrail 設定データベース(config-db)に接続された 3 つのコントローラのデータベースを復元する方法を示しています。この例では、データベースのJSONバックアップファイルが 、JSON形式の簡易データベースバックアップに記載されている手順を使用して以前に作成されたことを前提としています。ネットワークはAnsibleを使用して導入され、nodec53、nodec54、nodec55の3つのコントローラは別個のIPアドレスを持っています。

例: JSON バックアップを使用したデータベースの復元方法 (Red Hat Openstack Deployer 環境)

この例では、Red Hat Openstack を使用してデプロイされた環境からデータベースを復元する方法を示し、Contrail 設定データベース (config-db) に接続された 3 つの設定ノード (config1、 config2、 config3) を含めます。単一の設定ノードから実行する必要があるすべての手順は、 config1から実行されます。

環境には、分析サービスを提供するための3つの分析ノード(analytics1、 analytics2、 analytics3)も含まれています。

この例では、データベースのJSONバックアップファイルが 、JSON形式の簡易データベースバックアップに記載されている手順を使用して以前に作成されたことを前提としています。