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スクリプトを使用して実行されます。
このデータベースバックアップを実行するには:
-
Contrail コントローラ ノードの 1 つにログインします。任意のContrailコントローラノードホストに /tmp/db-dump ディレクトリを作成します。
mkdir /tmp/db-dump
-
同じContrailコントローラノードで、コンテナからホストに
contrail-api.confファイルをコピーします。Ansible Deployer:
docker cp config_api_1:/etc/contrail/contrail-api.conf /tmp/db-dump/
Red Hat Openstack Deployer:
docker cp contrail_config_api:/etc/contrail/contrail-api.conf /tmp/db-dump/
任意の Contrail コントローラ ノード上の Cassandra データベース インスタンスには、クラスター内のすべての Contrail コントローラ ノードの完全な Cassandra データベースが含まれています。したがって、ステップ 1 と 2 は 1 つの Contrail コントローラ ノードでのみ実行すればよいのです。
-
すべてのContrailコントローラノードで、以下のDocker設定サービスを停止します。
Ansible Deployer:
docker stop config_svcmonitor_1 docker stop config_devicemgr_1 docker stop config_schema_1 docker stop config_api_1
Red Hat Openstack Deployer:
docker stop contrail_config_svc_monitor docker stop contrail_config_device_manager docker stop contrail_config_schema docker stop contrail_config_api
この手順は、クラスター内の個々のContrailコントローラノードで実行する必要があります。
-
手順 1 と 2 を実行した Contrail コントローラ ノードに戻ります。
dockerイメージを一覧表示して、 config api イメージの名前またはIDを見つけます。
docker image ls | grep config-api例:
docker image ls | grep config-api hub.juniper.net/contrail/contrail-controller-config-api 1909.30-ocata c9d757252a0c 4 months ago 583MB -
同じ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に一致する必要があります。
docker run --rm -it -v /tmp/db-dump/:/tmp/ -v /etc/contrail/ssl:/etc/contrail/ssl:ro --network host --entrypoint=/bin/bash <registry_name>/contrail-controller-config_api:<container_tag>
例:
docker run --rm -it -v /tmp/db-dump/:/tmp/ -v /etc/contrail/ssl:/etc/contrail/ssl:ro --network host --entrypoint=/bin/bash hub.juniper.net/contrail/contrail-controller-config-api:1909.30-ocata
-
ステップ 5のcontrailコントローラノードで作成したDockerコンテナから、
db_json_exim.pyスクリプトを使用してJSON形式でデータをバックアップします。dbダンプファイルは、このContrailコントローラノードの /tmp/db-dump/ に保存されます。cd /usr/lib/python2.7/site-packages/cfgm_common python db_json_exim.py --export-to /tmp/db-dump.json --api-conf /tmp/contrail-api.conf
任意の Contrail コントローラ ノード上の Cassandra データベース インスタンスには、クラスター内のすべての Contrail コントローラ ノードの完全な Cassandra データベースが含まれています。したがって、ステップ 4 から 6 の 1 つから Contrail コントローラ ノードの 1 つから実行するだけで済みます。
-
(オプション。推奨)同じcontrailコントローラノードから
cat /tmp/db-dump.json | python -m json.tool | lessコマンドを入力すると、ファイル転送のより読みやすいバージョンが表示されます。cat /tmp/db-dump.json | python -m json.tool | less
-
同じcontrailコントローラノードから、 config api コンテナを終了します。これにより、コンテナが停止します。
exit
-
すべての Contrail コントローラ ノードで次の設定サービスを開始します。
Ansible Deployer:
docker start config_api_1 docker start config_schema_1 docker start config_svcmonitor_1 docker start config_devicemgr_1
Red Hat Openstack Deployer:
docker start contrail_config_api docker start contrail_config_schema docker start contrail_config_svc_monitor docker start contrail_config_device_manager
この手順は、個々のContrailコントローラノードで実行する必要があります。
-
各contrailコントローラノードで、
contrail-statusコマンドを入力して、サービスが active または running 状態であることを確認します。注:一部のコマンド出力フィールドと出力フィールドは、読みやすくするために削除されています。表示されている出力は、設定と分析サービスをホストするノードからのものです。
contrail-status Pod Service Original Name State analytics api contrail-analytics-api running analytics collector contrail-analytics-collector running analytics nodemgr contrail-nodemgr running analytics provisioner contrail-provisioner running analytics redis contrail-external-redis running analytics-alarm alarm-gen contrail-analytics-alarm-gen running analytics-alarm kafka contrail-external-kafka running <some output removed for readability> == Contrail control == control: active nodemgr: active named: active dns: active == Contrail analytics-alarm == nodemgr: active kafka: active alarm-gen: active == Contrail database == nodemgr: active query-engine: active cassandra: active == Contrail analytics == nodemgr: active api: active collector: active == Contrail config-database == nodemgr: active zookeeper: active rabbitmq: active cassandra: active == Contrail webui == web: active job: active == Contrail analytics-snmp == snmp-collector: active nodemgr: active topology: active == Contrail config == svc-monitor: active nodemgr: active device-manager: active api: active schema: active
例:JSON 形式のシンプルなデータベース バックアップ
これらの例は、Ansible デプロイヤー環境と Red Hat Openstack デプロイー環境の両方で、JSON 形式で単純なデータベースバックアップを作成するプロセスを示しています。
各例では、control_config1、 control_config2、 control_config3の3つの設定ノードを持つクラスターがバックアップされています。単一の設定ノードで実行する必要があるすべてのタスクは、 control-config1で実行されます。タスクは、示された順序で実行する必要があります。
Ansible Deployer環境:
## control_config1 ## mkdir /tmp/db-dump docker cp config_api_1:/etc/contrail/contrail-api.conf /tmp/db-dump/ docker stop config_svcmonitor_1 docker stop config_devicemgr_1 docker stop config_schema_1 docker stop config_api_1 ## control_config2 ## docker stop config_svcmonitor_1 docker stop config_devicemgr_1 docker stop config_schema_1 docker stop config_api_1 ## control_config3 ## docker stop config_svcmonitor_1 docker stop config_devicemgr_1 docker stop config_schema_1 docker stop config_api_1 ## control_config1 ## docker run --rm -it -v /tmp/db-dump/:/tmp/ -v /etc/contrail/ssl:/etc/contrail/ssl:ro --network host --entrypoint=/bin/bash hub.juniper.net/contrail/contrail-controller-config-api:1909.30-ocata cd /usr/lib/python2.7/site-packages/cfgm_common python db_json_exim.py --export-to /tmp/db-dump.json --api-conf /tmp/contrail-api.conf cat /tmp/db-dump.json | python -m json.tool | less exit docker start config_api_1 docker start config_schema_1 docker start config_svcmonitor_1 docker start config_devicemgr_1 contrail-status ## control_config2 ## docker start config_api_1 docker start config_schema_1 docker start config_svcmonitor_1 docker start config_devicemgr_1 contrail-status ## control_config3 ## docker start config_api_1 docker start config_schema_1 docker start config_svcmonitor_1 docker start config_devicemgr_1 contrail-status
Red Hat Openstack Deployer環境:
## control_config1 ## mkdir /tmp/db-dump docker cp contrail_config_api:/etc/contrail/contrail-api.conf /tmp/db-dump/ docker stop contrail_config_svc_monitor docker stop contrail_config_device_manager docker stop contrail_config_schema docker stop contrail_config_api ## control_config2 ## docker stop contrail_config_svc_monitor docker stop contrail_config_device_manager docker stop contrail_config_schema docker stop contrail_config_api ## control_config3 ## docker stop contrail_config_svc_monitor docker stop contrail_config_device_manager docker stop contrail_config_schema docker stop contrail_config_api ## control_config1 ## docker run --rm -it -v /tmp/db-dump/:/tmp/ -v /etc/contrail/ssl:/etc/contrail/ssl:ro --network host --entrypoint=/bin/bash hub.juniper.net/contrail/contrail-controller-config-api:1909.30-ocata cd /usr/lib/python2.7/site-packages/cfgm_common python db_json_exim.py --export-to /tmp/db-dump.json --api-conf /tmp/contrail-api.conf cat /tmp/db-dump.json | python -m json.tool | less exit docker start contrail_config_api docker start contrail_config_schema docker start contrail_config_svc_monitor docker start contrail_config_device_manager contrail-status ## control_config2 ## docker start contrail_config_api docker start contrail_config_schema docker start contrail_config_svc_monitor docker start contrail_config_device_manager contrail-status ## control_config3 ## docker start contrail_config_api docker start contrail_config_schema docker start contrail_config_svc_monitor docker start contrail_config_device_manager contrail-status
バックアップからJSON形式でデータベースを復元
この手順では、 JSON形式の簡易データベース・バックアップで作成された簡易データベース・バックアップJSONファイルを使用してシステムをリストアする手順を説明します。
バックアップJSONファイルからシステムを復元するには:
-
コンテナから任意の構成ノード上のホストに
contrail-api.confファイルをコピーします。Ansible Deployer:
docker cp config_api_1:/etc/contrail/contrail-api.conf /tmp/db-dump/
Red Hat Openstack Deployer:
docker cp contrail_config_api:/etc/contrail/contrail-api.conf /tmp/db-dump/
-
すべてのコントローラの設定サービスを停止します。
Ansible Deployer:
docker stop config_svcmonitor_1 docker stop config_devicemgr_1 docker stop config_schema_1 docker stop config_api_1 docker stop config_nodemgr_1 docker stop config_database_nodemgr_1 docker stop analytics_snmp_snmp-collector_1 docker stop analytics_snmp_topology_1 docker stop analytics_alarm_alarm-gen_1 docker stop analytics_api_1 docker stop analytics_collector_1 docker stop analytics_alarm_kafka_1
Red Hat Openstack Deployer—Contrail Configコンテナをホストするノード:
docker stop contrail_config_svc_monitor docker stop contrail_config_device_manager docker stop contrail_config_schema docker stop contrail_config_api docker stop contrail_config_nodemgr docker stop contrail_config_database_nodemgr
Red Hat Openstack Deployer—ノードホスティング Contrail Analyticsコンテナ:
docker stop contrail_analytics_snmp_collector docker stop contrail_analytics_topology docker stop contrail_analytics_alarmgen docker stop contrail_analytics_api docker stop contrail_analytics_collector docker stop contrail_analytics_kafka
-
すべての
config-dbコントローラでCassandraサービスを停止します。Ansible Deployer:
docker stop config_database_cassandra_1
Red Hat Openstack Deployer:
docker stop contrail_config_database
-
すべてのコントローラで Zookeeper サービスを停止します。
Ansible Deployer:
docker stop config_database_zookeeper_1
Red Hat Openstack Deployer:
docker stop contrail_config_zookeeper
-
すべてのコントローラのZookeeperデータディレクトリをバックアップします。
Ansible Deployer:
cd /var/lib/docker/volumes/config_database_config_zookeeper/ cp -R _data/version-2/ version-2-save
Red Hat Openstack Deployer:
cd /var/lib/docker/volumes/config_zookeeper/ cp -R _data/version-2/ version-2-save
-
すべてのコントローラでZookeeperデータディレクトリのコンテンツを削除します。
rm -rf _data/version-2/*
-
すべてのコントローラでCassandraデータディレクトリをバックアップします。
Ansible Deployer:
cd /var/lib/docker/volumes/config_database_config_cassandra/ cp -R _data/ Cassandra_data-save
Red Hat Openstack Deployer:
cd /var/lib/docker/volumes/config_cassandra/ cp -R _data/ Cassandra_data-save
-
すべてのコントローラでCassandraデータディレクトリのコンテンツを削除します。
rm -rf _data/*
-
すべてのコントローラで Zookeeper サービスを開始します。
Ansible Deployer:
docker start config_database_zookeeper_1
Red Hat Openstack Deployer:
docker start contrail_config_zookeeper
-
すべてのコントローラーでCassandraサービスを開始します。
Ansible Deployer:
docker start config_database_cassandra_1
Red Hat Openstack Deployer:
docker start contrail_config_database
-
List docker imageを選択して、コンフィグノード上の
config-apiイメージの名前またはIDを見つけます。docker image ls | grep config-api
例:
docker image ls | grep config-api hub.juniper.net/contrail/contrail-controller-config-api 1909.30-ocata c9d757252a0c 4 months ago 583MB -
同じコンフィグノード上の
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を使用します。
docker run --rm -it -v /tmp/db-dump/:/tmp/ -v /etc/contrail/ssl:/etc/contrail/ssl:ro --network host --entrypoint=/bin/bash <registry_name>/contrail-controller-config_api:<container tag>
例文
docker run --rm -it -v /tmp/db-dump/:/tmp/ -v /etc/contrail/ssl:/etc/contrail/ssl:ro --network host --entrypoint=/bin/bash hub.juniper.net/contrail/contrail-controller-config-api:1909.30-ocata
-
同じ構成ノードで実行中の新しいDockerにデータを復元します。
cd /usr/lib/python2.7/site-packages/cfgm_common python db_json_exim.py --import-from /tmp/db-dump.json --api-conf /tmp/contrail-api.conf
-
config apiコンテナから終了します。これにより、コンテナが停止します。
exit
-
すべてのコントローラで設定サービスを開始します。
Ansible Deployer:
docker start config_svcmonitor_1 docker start config_devicemgr_1 docker start config_schema_1 docker start config_api_1 docker start config_nodemgr_1 docker start config_database_nodemgr_1 docker start analytics_snmp_snmp-collector_1 docker start analytics_snmp_topology_1 docker start analytics_alarm_alarm-gen_1 docker start analytics_api_1 docker start analytics_collector_1 docker start analytics_alarm_kafka_1
Red Hat Openstack Deployer—Contrail Configコンテナをホストするノード:
docker start contrail_config_svc_monitor docker start contrail_config_device_manager docker start contrail_config_schema docker start contrail_config_api docker start contrail_config_nodemgr docker start contrail_config_database_nodemgr
Red Hat Openstack Deployer—ノードホスティング Contrail Analyticsコンテナ:
docker start contrail_analytics_snmp_collector docker start contrail_analytics_topology docker start contrail_analytics_alarmgen docker start contrail_analytics_api docker start contrail_analytics_collector docker start contrail_analytics_kafka
-
各設定ノードと、該当する場合は各分析ノードで
contrail-statusコマンドを入力して、サービスが active または running 状態であることを確認します。注:コンフィグノードの出力を示しています。一部のコマンド出力フィールドと出力フィールドは、読みやすくするために削除されています。
contrail-status Pod Service Original Name State config api contrail-controller-config-api running config device-manager contrail-controller-config-devicemgr running config dnsmasq contrail-controller-config-dnsmasq running config nodemgr contrail-nodemgr running config provisioner contrail-provisioner running config schema contrail-controller-config-schema running config stats contrail-controller-config-stats running <some output removed for readability> == Contrail control == control: active nodemgr: active named: active dns: active == Contrail database == nodemgr: active query-engine: active cassandra: active == Contrail config-database == nodemgr: active zookeeper: active rabbitmq: active cassandra: active == Contrail webui == web: active job: active == Contrail config == svc-monitor: active nodemgr: active device-manager: active api: active schema: active
例:JSON バックアップを使用してデータベースを復元する方法(Ansible Deployer 環境)
この例では、Contrail 設定データベース(config-db)に接続された 3 つのコントローラのデータベースを復元する方法を示しています。この例では、データベースのJSONバックアップファイルが 、JSON形式の簡易データベースバックアップに記載されている手順を使用して以前に作成されたことを前提としています。ネットワークはAnsibleを使用して導入され、nodec53、nodec54、nodec55の3つのコントローラは別個のIPアドレスを持っています。
## Make db-dump directory. Copy contrail-api.conf to db-dump directory. ## root@nodec54 ~]# mkdir /tmp/db-dump root@nodec54 ~]# docker cp config_api_1:/etc/contrail/contrail-api.conf /tmp/db-dump/ ## Stop Configuration Services on All Controllers ## [root@nodec53 ~]# docker stop config_schema_1 [root@nodec53 ~]# docker stop config_api_1 [root@nodec53 ~]# docker stop config_svcmonitor_1 [root@nodec53 ~]# docker stop config_devicemgr_1 [root@nodec53 ~]# docker stop config_nodemgr_1 [root@nodec53 ~]# docker stop config_database_nodemgr_1 [root@nodec53 ~]# docker stop analytics_snmp_snmp-collector_1 [root@nodec53 ~]# docker stop analytics_snmp_topology_1 [root@nodec53 ~]# docker stop analytics_alarm_alarm-gen_1 [root@nodec53 ~]# docker stop analytics_api_1 [root@nodec53 ~]# docker stop analytics_collector_1 [root@nodec53 ~]# docker stop analytics_alarm_kafka_1 [root@nodec54 ~]# # docker stop config_schema_1 [root@nodec54 ~]# docker stop config_api_1 [root@nodec54 ~]# docker stop config_svcmonitor_1 [root@nodec54 ~]# docker stop config_devicemgr_1 [root@nodec54 ~]# docker stop config_nodemgr_1 [root@nodec54 ~]# docker stop config_database_nodemgr_1 [root@nodec54 ~]# docker stop analytics_snmp_snmp-collector_1 [root@nodec54 ~]# docker stop analytics_snmp_topology_1 [root@nodec54 ~]# docker stop analytics_alarm_alarm-gen_1 [root@nodec54 ~]# docker stop analytics_api_1 [root@nodec54 ~]# docker stop analytics_collector_1 [root@nodec54 ~]# docker stop analytics_alarm_kafka_1 [root@nodec55 ~]# docker stop config_schema_1 [root@nodec55 ~]# docker stop config_api_1 [root@nodec55 ~]# docker stop config_svcmonitor_1 [root@nodec55 ~]# docker stop config_devicemgr_1 [root@nodec55 ~]# docker stop config_nodemgr_1 [root@nodec55 ~]# docker stop config_database_nodemgr_1 [root@nodec55 ~]# docker stop analytics_snmp_snmp-collector_1 [root@nodec55 ~]# docker stop analytics_snmp_topology_1 [root@nodec55 ~]# docker stop analytics_alarm_alarm-gen_1 [root@nodec55 ~]# docker stop analytics_api_1 [root@nodec55 ~]# docker stop analytics_collector_1 [root@nodec55 ~]# docker stop analytics_alarm_kafka_1 ## Stop Cassandra ## [root@nodec53 ~]# docker stop config_database_cassandra_1 [root@nodec54 ~]# docker stop config_database_cassandra_1 [root@nodec55 ~]# docker stop config_database_cassandra_1 ## Stop Zookeeper ## [root@nodec53 ~]# docker stop config_database_zookeeper_1 [root@nodec54 ~]# docker stop config_database_zookeeper_1 [root@nodec55 ~]# docker stop config_database_zookeeper_1 ## Backup Zookeeper Directories Before Deleting Zookeeper Data Directory Contents ## [root@nodec53 _data]# cd /var/lib/docker/volumes/config_database_config_zookeeper/ [root@nodec53 config_database_config_zookeeper]# cp -R _data/version-2/ version-2-save [root@nodec53 config_database_config_zookeeper]# rm -rf _data/version-2/* [root@nodec54 _data]# cd /var/lib/docker/volumes/config_database_config_zookeeper/ [root@nodec54 config_database_config_zookeeper]# cp -R _data/version-2/ version-2-save [root@nodec54 config_database_config_zookeeper]# rm -rf _data/version-2/* [root@nodec55 _data]# cd /var/lib/docker/volumes/config_database_config_zookeeper/ [root@nodec55 config_database_config_zookeeper]# cp -R _data/version-2/ version-2-save [root@nodec55 config_database_config_zookeeper]# rm -rf _data/version-2/* ## Backup Cassandra Directory Before Deleting Cassandra Data Directory Contents ## [root@nodec53 ~]# cd /var/lib/docker/volumes/config_database_config_cassandra/ [root@nodec53 config_database_config_cassandra]# cp -R _data/ Cassandra_data-save [root@nodec53 config_database_config_cassandra]# rm -rf _data/* [root@nodec54 ~]# cd /var/lib/docker/volumes/config_database_config_cassandra/ [root@nodec54 config_database_config_cassandra]# cp -R _data/ Cassandra_data-save [root@nodec54 config_database_config_cassandra]# rm -rf _data/* [root@nodec55 ~]# cd /var/lib/docker/volumes/config_database_config_cassandra/ [root@nodec55 config_database_config_cassandra]# cp -R _data/ Cassandra_data-save [root@nodec55 config_database_config_cassandra]# rm -rf _data/* ## Start Zookeeper ## [root@nodec53 ~]# docker start config_database_zookeeper_1 [root@nodec54 ~]# docker start config_database_zookeeper_1 [root@nodec55 ~]# docker start config_database_zookeeper_1 ## Start Cassandra ## [root@nodec53 ~]# docker start config_database_cassandra_1 [root@nodec54 ~]# docker start config_database_cassandra_1 [root@nodec55 ~]# docker start config_database_cassandra_1 ## Run Docker Image & Mount Contrail TLS Certificates to Contrail SSL Directory ## [root@nodec54 ~]# docker image ls | grep config-api hub.juniper.net/contrail/contrail-controller-config-api 1909.30-ocata c9d757252a0c 4 months ago 583MB [root@nodec54 ~]# docker run --rm -it -v /tmp/db-dump/:/tmp/ -v /etc/contrail/ssl:/etc/contrail/ssl:ro --network host --entrypoint=/bin/bash hub.juniper.net/contrail/contrail-controller-config-api:1909.30-ocata ## Restore Data in New Docker Containers ## (config_api_1)[root@nodec54 /root]$ cd /usr/lib/python2.7/site-packages/cfgm_common/ (config_api_1)[root@nodec54 /usr/lib/python2.7/site-packages/cfgm_common]$ python db_json_exim.py --import-from /tmp/db-dump.json --api-conf /tmp/contrail-api.conf ## Start Configuration Services ## [root@nodec53 ~]# docker start config_schema_1 [root@nodec53 ~]# docker start config_svcmonitor_1 [root@nodec53 ~]# docker start config_devicemgr_1 [root@nodec53 ~]# docker start config_nodemgr_1 [root@nodec53 ~]# docker start config_database_nodemgr_1 [root@nodec53 ~]# docker start config_api_1 [root@nodec53 ~]# docker start analytics_snmp_snmp-collector_1 [root@nodec53 ~]# docker start analytics_snmp_topology_1 [root@nodec53 ~]# docker start analytics_alarm_alarm-gen_1 [root@nodec53 ~]# docker start analytics_api_1 [root@nodec53 ~]# docker start analytics_collector_1 [root@nodec53 ~]# docker start analytics_alarm_kafka_1 [root@nodec54 ~]# docker start config_schema_1 [root@nodec54 ~]# docker start config_svcmonitor_1 [root@nodec54 ~]# docker start config_devicemgr_1 [root@nodec54 ~]# docker start config_nodemgr_1 [root@nodec54 ~]# docker start config_database_nodemgr_1 [root@nodec54 ~]# docker start config_api_1 [root@nodec54 ~]# docker start analytics_snmp_snmp-collector_1 [root@nodec54 ~]# docker start analytics_snmp_topology_1 [root@nodec54 ~]# docker start analytics_alarm_alarm-gen_1 [root@nodec54 ~]# docker start analytics_api_1 [root@nodec54 ~]# docker start analytics_collector_1 [root@nodec54 ~]# docker start analytics_alarm_kafka_1 [root@nodec55 ~]# docker start config_schema_1 [root@nodec55 ~]# docker start config_svcmonitor_1 [root@nodec55 ~]# docker start config_devicemgr_1 [root@nodec55 ~]# docker start config_nodemgr_1 [root@nodec55 ~]# docker start config_database_nodemgr_1 [root@nodec55 ~]# docker start config_api_1 [root@nodec55 ~]# docker start analytics_snmp_snmp-collector_1 [root@nodec55 ~]# docker start analytics_snmp_topology_1 [root@nodec55 ~]# docker start analytics_alarm_alarm-gen_1 [root@nodec55 ~]# docker start analytics_api_1 [root@nodec55 ~]# docker start analytics_collector_1 [root@nodec55 ~]# docker start analytics_alarm_kafka_1 ## Confirm Services are Active ## [root@nodec53 ~]# contrail-status [root@nodec54 ~]# contrail-status [root@nodec55 ~]# contrail-status
例: JSON バックアップを使用したデータベースの復元方法 (Red Hat Openstack Deployer 環境)
この例では、Red Hat Openstack を使用してデプロイされた環境からデータベースを復元する方法を示し、Contrail 設定データベース (config-db) に接続された 3 つの設定ノード (config1、 config2、 config3) を含めます。単一の設定ノードから実行する必要があるすべての手順は、 config1から実行されます。
環境には、分析サービスを提供するための3つの分析ノード(analytics1、 analytics2、 analytics3)も含まれています。
この例では、データベースのJSONバックアップファイルが 、JSON形式の簡易データベースバックアップに記載されている手順を使用して以前に作成されたことを前提としています。
## Make db-dump directory. Copy contrail-api.conf to db-dump directory. ## [root@config1 ~]# mkdir /tmp/db-dump [root@config1 ~]# docker cp config_api_1:/etc/contrail/contrail-api.conf /tmp/db-dump/ ## Stop Configuration Services on All Config Nodes ## [root@config1 ~]# docker stop contrail_config_svc_monitor [root@config1 ~]# docker stop contrail_config_device_manager [root@config1 ~]# docker stop contrail_config_schema [root@config1 ~]# docker stop contrail_config_api [root@config1 ~]# docker stop contrail_config_nodemgr [root@config1 ~]# docker stop contrail_config_database_nodemgr [root@config2 ~]# docker stop contrail_config_svc_monitor [root@config2 ~]# docker stop contrail_config_device_manager [root@config2 ~]# docker stop contrail_config_schema [root@config2 ~]# docker stop contrail_config_api [root@config2 ~]# docker stop contrail_config_nodemgr [root@config2 ~]# docker stop contrail_config_database_nodemgr [root@config3 ~]# docker stop contrail_config_svc_monitor [root@config3 ~]# docker stop contrail_config_device_manager [root@config3 ~]# docker stop contrail_config_schema [root@config3 ~]# docker stop contrail_config_api [root@config3 ~]# docker stop contrail_config_nodemgr [root@config3 ~]# docker stop contrail_config_database_nodemgr ## Stop Analytics Services on All Analytics Nodes ## [root@analytics1 ~]# docker stop contrail_analytics_snmp_collector [root@analytics1 ~]# docker stop contrail_analytics_topology [root@analytics1 ~]# docker stop contrail_analytics_alarmgen [root@analytics1 ~]# docker stop contrail_analytics_api [root@analytics1 ~]# docker stop contrail_analytics_collector [root@analytics1 ~]# docker stop contrail_analytics_kafka [root@analytics2 ~]# docker stop contrail_analytics_snmp_collector [root@analytics2 ~]# docker stop contrail_analytics_topology [root@analytics2 ~]# docker stop contrail_analytics_alarmgen [root@analytics2 ~]# docker stop contrail_analytics_api [root@analytics2 ~]# docker stop contrail_analytics_collector [root@analytics2 ~]# docker stop contrail_analytics_kafka [root@analytics3 ~]# docker stop contrail_analytics_snmp_collector [root@analytics3 ~]# docker stop contrail_analytics_topology [root@analytics3 ~]# docker stop contrail_analytics_alarmgen [root@analytics3 ~]# docker stop contrail_analytics_api [root@analytics3 ~]# docker stop contrail_analytics_collector [root@analytics3 ~]# docker stop contrail_analytics_kafka ## Stop Cassandra ## [root@config1 ~]# docker stop contrail_config_database [root@config2 ~]# docker stop contrail_config_database [root@config3 ~]# docker stop contrail_config_database ## Stop Zookeeper ## [root@config1 ~]# docker stop contrail_config_zookeeper [root@config2 ~]# docker stop contrail_config_zookeeper [root@config3 ~]# docker stop contrail_config_zookeeper ## Backup Zookeeper Directories Before Deleting Zookeeper Data Directory Contents ## [root@config1 _data]# cd /var/lib/docker/volumes/config_zookeeper/ [root@config1 config_zookeeper]# cp -R _data/version-2/ version-2-save [root@config1 config_zookeeper]# rm -rf _data/version-2/* [root@config2 _data]# cd /var/lib/docker/volumes/config_zookeeper/ [root@config2 config_zookeeper]# cp -R _data/version-2/ version-2-save [root@config2 config_zookeeper]# rm -rf _data/version-2/* [root@config3 _data]# cd /var/lib/docker/volumes/config_zookeeper/ [root@config3 config_zookeeper]# cp -R _data/version-2/ version-2-save [root@config3 config_zookeeper]# rm -rf _data/version-2/* ## Backup Cassandra Directory Before Deleting Cassandra Data Directory Contents ## [root@config1 ~]# cd /var/lib/docker/volumes/config_cassandra/ [root@config1 config_cassandra]# cp -R _data/ Cassandra_data-save [root@config1 config_cassandra]# rm -rf _data/* [root@config2 ~]# cd /var/lib/docker/volumes/config_cassandra/ [root@config2 config_cassandra]# cp -R _data/ Cassandra_data-save [root@config2 config_cassandra]# rm -rf _data/* [root@config3 ~]# cd /var/lib/docker/volumes/config_cassandra/ [root@config3 config_cassandra]# cp -R _data/ Cassandra_data-save [root@config3 config_cassandra]# rm -rf _data/* ## Start Zookeeper ## [root@config1 ~]# docker start contrail_config_zookeeper [root@config2 ~]# docker start contrail_config_zookeeper [root@config3 ~]# docker start contrail_config_zookeeper ## Start Cassandra ## [root@config1 ~]# docker start contrail_config_database [root@config2 ~]# docker start contrail_config_database [root@config3 ~]# docker start contrail_config_database ## Run Docker Image & Mount Contrail TLS Certificates to Contrail SSL Directory ## [root@config1 ~]# docker image ls | grep config-api hub.juniper.net/contrail/contrail-controller-config-api 1909.30-ocata c9d757252a0c 4 months ago 583MB [root@config1 ~]# docker run --rm -it -v /tmp/db-dump/:/tmp/ -v /etc/contrail/ssl:/etc/contrail/ssl:ro --network host --entrypoint=/bin/bash hub.juniper.net/contrail/contrail-controller-config-api:1909.30-ocata ## Restore Data in New Docker Containers ## (config_api_1)[root@config1 /root]$ cd /usr/lib/python2.7/site-packages/cfgm_common/ (config_api_1)[root@config1 /usr/lib/python2.7/site-packages/cfgm_common]$ python db_json_exim.py --import-from /tmp/db-dump.json --api-conf /tmp/contrail-api.conf ## Start Configuration Services on All Config Nodes ## [root@config1 ~]# docker start contrail_config_svc_monitor [root@config1 ~]# docker start contrail_config_device_manager [root@config1 ~]# docker start contrail_config_schema [root@config1 ~]# docker start contrail_config_api [root@config1 ~]# docker start contrail_config_nodemgr [root@config1 ~]# docker start contrail_config_database_nodemgr [root@config2 ~]# docker start contrail_config_svc_monitor [root@config2 ~]# docker start contrail_config_device_manager [root@config2 ~]# docker start contrail_config_schema [root@config2 ~]# docker start contrail_config_api [root@config2 ~]# docker start contrail_config_nodemgr [root@config2 ~]# docker start contrail_config_database_nodemgr [root@config3 ~]# docker start contrail_config_svc_monitor [root@config3 ~]# docker start contrail_config_device_manager [root@config3 ~]# docker start contrail_config_schema [root@config3 ~]# docker start contrail_config_api [root@config3 ~]# docker start contrail_config_nodemgr [root@config3 ~]# docker start contrail_config_database_nodemgr ## Start Configuration Services on All Analytics Nodes ## [root@analytics1 ~]# docker start contrail_analytics_snmp_collector [root@analytics1 ~]# docker start contrail_analytics_topology [root@analytics1 ~]# docker start contrail_analytics_alarmgen [root@analytics1 ~]# docker start contrail_analytics_api [root@analytics1 ~]# docker start contrail_analytics_collector [root@analytics1 ~]# docker start contrail_analytics_kafka [root@analytics2 ~]# docker start contrail_analytics_snmp_collector [root@analytics2 ~]# docker start contrail_analytics_topology [root@analytics2 ~]# docker start contrail_analytics_alarmgen [root@analytics2 ~]# docker start contrail_analytics_api [root@analytics2 ~]# docker start contrail_analytics_collector [root@analytics2 ~]# docker start contrail_analytics_kafka [root@analytics3 ~]# docker start contrail_analytics_snmp_collector [root@analytics3 ~]# docker start contrail_analytics_topology [root@analytics3 ~]# docker start contrail_analytics_alarmgen [root@analytics3 ~]# docker start contrail_analytics_api [root@analytics3 ~]# docker start contrail_analytics_collector [root@analytics3 ~]# docker start contrail_analytics_kafka ## Confirm Services are Active ## [root@config1 ~]# contrail-status [root@config2 ~]# contrail-status [root@config3 ~]# contrail-status [root@analytics1 ~]# contrail-status [root@analytics2 ~]# contrail-status [root@analytics3 ~]# contrail-status