Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Openstack 16.1 Director の導入を使用して Openstack 環境で Contrail データベースを JSON 形式でバックアップおよび復元する方法

このドキュメントでは、RedHat Openstack 16.1 directorの導入を使用して導入されたOpenstackオーケストレーション環境でContrail Networkingが実行されている場合、Contrailデータベース(CassandraとZookeeper)をJSON形式でバックアップおよび復元する方法を説明します。

Openstack 13 ベースまたは Ansible 導入者を使用して導入された Openstack オーケストレーション環境で Contrail Networking を導入する場合は、「 Openstack 13 または Ansible Deployer を使用して、Openstack 環境で JSON 形式で Contrail データベースをバックアップおよび復元する方法」を参照してください。

Contrail Networking は当初、Contrail Networking リリース 2008 で Openstack 16.1 director を導入して Openstack 環境でサポートされています。オーケストレーション プラットフォームと導入者における Contrail Networking リリース サポートのマトリックスについては、 Contrail Networking 対応プラットフォームを参照してください。

始める前に

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

注意:

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

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

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

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

  1. コントローラーノードから、スクリプトを db_json_exim.py 有効にします。

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

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

    任意の設定ノードの Cassandra データベース インスタンスには、クラスタ内のすべての設定ノードに対する Cassandra データベースの完全なデータベースが含まれています。そのため、ステップ 2 および 3 は、1 つの設定ノードでのみ実行する必要があります。

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

    このステップは、クラスタ内の各コントローラ ノードで実行する必要があります。

  5. Contrail Analytics コンテナをホストするすべてのノードで、以下の分析サービスを停止します。

    このステップは、クラスタ内の各分析ノードで実行する必要があります。

  6. ステップ 2 と 3 を実行した構成ノードに戻ります。

    コマンドを podman images 使用して、 config api イメージの名前またはIDを一覧表示します。

    例:

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

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

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

    :

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

    例:

    任意の設定ノードの Cassandra データベース インスタンスには、クラスタ内のすべての設定ノードに対する Cassandra データベースの完全なデータベースが含まれています。そのため、必要なのは、構成ノードの 1 つからステップ 4~6 までのみです。

  9. (オプション。推奨)同じ設定ノードから コマンドを cat /tmp/db-dump.json | python -m json.tool | less 入力して、より読みやすいバージョンのファイル転送を表示します。

  10. 同じ設定ノードから、 config api コンテナから出ます。これでコンテナが停止します。

  11. 各設定ノードで、以下の設定サービスを開始します。

    この手順は、個々の設定ノードで実行する必要があります。

  12. 各分析ノードで、以下の分析サービスを開始します。

    このステップは、各分析ノードで実行する必要があります。

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

    メモ:

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

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

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

バックアップ JSON ファイルからシステムを復元するには、次の手順に示します。

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

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

  3. Contrail Analytics コンテナをホストしているすべてのノードで、以下のサービスを停止します。

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

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

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

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

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

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

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

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

  12. コマンドを podman images 使用して、 config api イメージの名前またはIDを一覧表示します。

    例:

  13. 同じ設定ノードでイメージの名前またはIDを config_api 使用して、新しいポッドマンコンテナを実行します。

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

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

    例:

  14. 同じ設定ノードで実行されている新しいコンテナ内のデータを復元します。

    例:

  15. 設定APIコンテナから出ます。これでコンテナが停止します。

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

  17. すべての分析ノードでサービスを開始します。

  18. 各設定ノードの コマンドを contrail-status 入力し、必要に応じて各分析ノードで サービスが active または running 状態であることを確認します。

    メモ:

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