付録B オーバークラウドの復元
B.1. オーバークラウドのコントロールプレーンサービスの復元
以下の手順では、オーバークラウドのデータベースと設定を復元します。このような場合には、ターミナルのウィンドウを 3 つ開いて、特定の操作を 3 つのコントローラーノードすべてで同時に実行できるようにすることを推奨します。また、高可用性の操作を実行するコントローラーノードを 1 台選択することもお勧めします。この手順では、このコントローラーノードを ブートストラップコントローラーノード と呼びます。
この手順では、コントロールプレーンサービスのみを復元します。コンピュートノードのワークロードや Ceph Storage ノード上のデータの復元は含まれません。
手順
メジャーバージョンのアップグレードの失敗から復元する場合には、全ノードで実行された
yumトランザクションをすべて元に戻さなければならない場合があります。これには、各ノードで以下の操作が必要です。以前のバージョンのリポジトリーを有効化します。以下に例を示します。
# sudo subscription-manager repos --enable=rhel-7-server-openstack-10-rpms # sudo subscription-manager repos --enable=rhel-7-server-openstack-11-rpms # sudo subscription-manager repos --enable=rhel-7-server-openstack-12-rpms
yumの履歴をチェックします。# sudo yum history list all
アップグレードプロセス中に発生したトランザクションを特定します。これらの操作の大半は、コントローラーノードの 1 台で発生しているはずです (アップグレード中にブートストラップノードとして選択されていたコントローラーノード)。特定のトランザクションを確認する必要がある場合は、
history infoサブコマンドで表示してください。# sudo yum history info 25
注記yum history list allで各トランザクションから実行したコマンドを表示するように強制するには、yum.confファイルでhistory_list_view=commandsを設定します。アップグレードから発生した
yumトランザクションをすべて元に戻します。以下に例を示します。# sudo yum history undo 25 # sudo yum history undo 24 # sudo yum history undo 23 ...
最後のトランザクションから開始して、降順に操作を継続するようにしてください。また、
rollbackオプションを使用すると、複数のトランザクションを 1 回の実行で元に戻すこともできます。たとえば、以下のコマンドは最後のトランザクションから 23 までのトランザクションをロールバックします。# sudo yum history rollback 23
重要各トランザクションの取り消しを確認できるようにするには、
rollbackではなくundoを使用することを推奨します。関連する
yumトランザクションが取り消されたら、全ノードで元の OpenStack Platform リポジトリーのみを有効化します。以下に例を示します。# sudo subscription-manager repos --disable=rhel-7-server-openstack-*-rpms # sudo subscription-manager repos --enable=rhel-7-server-openstack-10-rpms
データベースを復元します。
- ブートストラップコントローラーノードにデータベースのバックアップをコピーします。
全コントローラーノード上でデータベースポートへの接続を停止します。
# MYSQLIP=$(hiera mysql_bind_host) # sudo /sbin/iptables -I INPUT -d $MYSQLIP -p tcp --dport 3306 -j DROP
これにより、ノードへのデータベーストラフィックがすべて分離されます。
ブートストラップコントローラーノードで、Pacemaker による Galera の管理を無効にします。
# pcs resource unmanage galera
コントローラーノード上の
/etc/my.cnf.d/galera.cnfからwsrep_cluster_addressパラメーターをコメントアウトします。# grep wsrep_cluster_address /etc/my.cnf.d/galera.cnf # vi /etc/my.cnf.d/galera.cnf
すべてのコントローラーノード上の MariaDB データベースを停止します。
# mysqladmin -u root shutdown
注記HAProxy から、データベースが無効になったという警告が表示される可能性があります。
既存の MariaDB データディレクトリーを移動し、全コントローラーノード上で新規データディレクトリーを準備します。
# mv /var/lib/mysql/ /var/lib/mysql.old # mkdir /var/lib/mysql # chown mysql:mysql /var/lib/mysql # chmod 0755 /var/lib/mysql # mysql_install_db --datadir=/var/lib/mysql --user=mysql # chown -R mysql:mysql /var/lib/mysql/ # restorecon -R /var/lib/mysql
root の設定とクラスターのチェックを全コントローラーノード上のバックアップファイルに移動します。
# sudo mv /root/.my.cnf /root/.my.cnf.old # sudo mv /etc/sysconfig/clustercheck /etc/sysconfig/clustercheck.old
ブートストラップコントローラーノードで、Pacemaker が Galera クラスターを管理するように設定します。
# pcs resource manage galera # pcs resource cleanup galera
Galera クラスターがきちんと立ち上がるのを待ちます。以下のコマンドを実行して、全ノードがマスターとして設定されているかどうかを確認します。
# watch "pcs status | grep -C3 galera" Master/Slave Set: galera-master [galera] Masters: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ]
クリーンアップの実行後に全コントローラーがマスターとして表示されない場合には、クリーンアップコマンドを再度実行してください。
# pcs resource cleanup galera
ブートストラップコントローラーノードで、OpenStack データベースを復元します。これは、Galera によって他のコントローラーノードに複製されます。
# mysql -u root < openstack_database.sql
ブートストラップコントローラーノードで、ユーザーとパーミッションを復元します。
# mysql -u root < grants.sql
ブートストラップコントローラーノードで、データベースのパスワードを元のパスワードに再設定します。
# /usr/bin/mysqladmin -u root password "$(hiera mysql::server::root_password)"
ブートストラップコントローラーノードで、
pcs statusを実行して Galera リソースを表示します。# pcs status | grep -C3 galera
このコマンドでエラーが表示される場合があります。これは、データベースが間違ったユーザー名とパスワードを使用して接続し、データベースのステータスをポーリングするようになったことが理由です。全コントローラーノードで、データベースの設定を復元します。
# sudo mv /root/.my.cnf.old /root/.my.cnf # sudo mv /etc/sysconfig/clustercheck.old /etc/sysconfig/clustercheck
各コントローラーノードのクラスターチェックをローカルでテストします。
# /bin/clustercheck
ブートストラップコントローラーノードで、Pacemaker のクリーンアップを実行して、Galera の状態を再度プロービングするようにします。
# pcs resource cleanup galera
各コントローラーノードでクラスターのチェックをテストします。
# curl overcloud-controller-0:9200 # curl overcloud-controller-1:9200 # curl overcloud-controller-2:9200
各ノードからファイアウォールルールを削除して、サービスがデータベースへのアクセスを復元するようにします。
# sudo /sbin/iptables -D INPUT -d $MYSQLIP -p tcp --dport 3306 -j DROP
コントローラーノード上の
/etc/my.cnf.d/galera.cnfからwsrep_cluster_addressパラメーターをコメント解除します。# vi /etc/my.cnf.d/galera.cnf
ファイルシステムを復元します。
各コントローラーノードのバックアップ
tarファイルを一時ディレクトリーにコピーして、圧縮された全データを展開します。# mkdir /var/tmp/filesystem_backup/data/ # cd /var/tmp/filesystem_backup/data/ # mv <backup_file>.tar.gz . # tar -xvzf --xattrs <backup_file>.tar.gz
注記/ディレクトリーには直接展開しないようにしてください。直接展開すると、現在のファイルシステムが上書きされてしまいます。一時ディレクトリーで抽出することを推奨します。/usr/libexec/os-apply-config/templates/etc/os-net-config/config.jsonファイルを復元します。$ cp /var/tmp/filesystem_backup/data/usr/libexec/os-apply-config/templates/etc/os-net-config/config.json /usr/libexec/os-apply-config/templates/etc/os-net-config/config.json
- 設定ファイルが必要な場合には、このディレクトリーを保持します。
redis リソースをクリーンアップします。
# pcs resource cleanup redis
オーバークラウドのコントロールプレーンのデータを復元した後には、関連する各サービスが有効化されて正しく実行されていることを確認します。
コントローラーノード上の高可用性サービスの場合:
# pcs resource enable [SERVICE] # pcs resource cleanup [SERVICE]
コントローラーおよびコンピュートノード上のシステムサービスの場合:
# systemctl start [SERVICE] # systemctl enable [SERVICE]
以下の項には、有効にすべきサービスについての参考情報を記載します。
B.2. 復元した高可用性サービス
復元の後に OpensTack Platform 10 のコントローラーノードでアクティブにする必要のある高可用性サービスの一覧は以下のとおりです。これらのサービスのいずれかが無効化されている場合には、以下のコマンドで有効化します。
# pcs resource enable [SERVICE] # pcs resource cleanup [SERVICE]
| コントローラーサービス |
|---|
|
galera |
|
haproxy |
|
openstack-cinder-volume |
|
rabbitmq |
|
redis |
B.3. コントローラーサービスの復元
復元の後に OpensTack Platform 10 のコントローラーノードでアクティブにする必要のある Systemd のコアサービスの一覧は以下のとおりです。これらのサービスのいずれかが無効化されている場合には、以下のコマンドで有効化します。
# systemctl start [SERVICE] # systemctl enable [SERVICE]
| コントローラーサービス |
|---|
|
httpd |
|
memcached |
|
neutron-dhcp-agent |
|
neutron-l3-agent |
|
neutron-metadata-agent |
|
neutron-openvswitch-agent |
|
neutron-ovs-cleanup |
|
neutron-server |
|
ntpd |
|
openstack-aodh-evaluator |
|
openstack-aodh-listener |
|
openstack-aodh-notifier |
|
openstack-ceilometer-central |
|
openstack-ceilometer-collector |
|
openstack-ceilometer-notification |
|
openstack-cinder-api |
|
openstack-cinder-scheduler |
|
openstack-glance-api |
|
openstack-glance-registry |
|
openstack-gnocchi-metricd |
|
openstack-gnocchi-statsd |
|
openstack-heat-api-cfn |
|
openstack-heat-api-cloudwatch |
|
openstack-heat-api |
|
openstack-heat-engine |
|
openstack-nova-api |
|
openstack-nova-conductor |
|
openstack-nova-consoleauth |
|
openstack-nova-novncproxy |
|
openstack-nova-scheduler |
|
openstack-swift-account-auditor |
|
openstack-swift-account-reaper |
|
openstack-swift-account-replicator |
|
openstack-swift-account |
|
openstack-swift-container-auditor |
|
openstack-swift-container-replicator |
|
openstack-swift-container-updater |
|
openstack-swift-container |
|
openstack-swift-object-auditor |
|
openstack-swift-object-expirer |
|
openstack-swift-object-replicator |
|
openstack-swift-object-updater |
|
openstack-swift-object |
|
openstack-swift-proxy |
|
openvswitch |
|
os-collect-config |
|
ovs-delete-transient-ports |
|
ovs-vswitchd |
|
ovsdb-server |
|
pacemaker |
B.4. オーバークラウドの Compute サービスの復元
復元の後に OpensTack Platform 10 のコンピュートノードでアクティブにする必要のある Systemd のコアサービスは以下のとおりです。これらのサービスのいずれかが無効化されている場合には、以下のコマンドで有効化します。
# systemctl start [SERVICE] # systemctl enable [SERVICE]
| Compute サービス |
|---|
|
neutron-openvswitch-agent |
|
neutron-ovs-cleanup |
|
ntpd |
|
openstack-ceilometer-compute |
|
openstack-nova-compute |
|
openvswitch |
|
os-collect-config |

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.