4.3. コントロールプレーンのバックアップ
コントロールプレーンをバックアップするには、まず Pacemaker クラスターおよびコントロールプレーンノード上で動作しているすべてのコンテナーを停止する必要があります。状態の整合性確保のためにスタックを操作しないでください。バックアップ手順が完了したら、Pacemaker クラスターおよびコンテナーを起動します。
Pacemaker クラスターおよびコンテナーを再起動した後にデータベースを復元できるように、データベースをバックアップする必要がある点に注意してください。
コントロールプレーンノードを同時にバックアップします。
前提条件
- バックアップディレクトリーを作成し、エクスポートしている。詳細は、バックアップディレクトリーの作成およびエクスポート を参照してください。
- 各コントロールプレーンノードに ReaR をインストールし、設定している。詳細は、Relax and Recover (ReaR) のインストールと設定 を参照してください。
手順
データベースのパスワードを特定します。
[heat-admin@overcloud-controller-x ~]# PASSWORD=$(sudo /bin/hiera -c /etc/puppet/hiera.yaml mysql::server::root_password)
データベースのバックアップを作成します。
[heat-admin@overcloud-controller-x ~]# mysql -uroot -p$PASSWORD -s -N -e "select distinct table_schema from information_schema.tables where engine='innodb' and table_schema != 'mysql';" | xargs mysqldump -uroot -p$PASSWORD --single-transaction --databases > openstack-backup-mysql.sql
[heat-admin@overcloud-controller-x ~]# mysql -uroot -p$PASSWORD -s -N -e "SELECT CONCAT('\"SHOW GRANTS FOR ''',user,'''@''',host,''';\"') FROM mysql.user where (length(user) > 0 and user NOT LIKE 'root')" | xargs -n1 mysql -uroot -p$PASSWORD -s -N -e | sed 's/$/;/' > openstack-backup-mysql-grants.sql
注記データベースのバックアップは、万が一を考えての措置です。このステップにより、復元手順の一部として Galera クラスターが自動的に復元されない場合に、手動で復元することができます。Galera クラスターの復元に関する詳細は、Galera クラスターに関するトラブルシューティング を参照してください。
コントロールプレーンノードのいずれかで、Pacemaker クラスターを停止します。
重要スタックは操作しないでください。Pacemaker クラスターおよびコンテナーを停止すると、コンピュートノードへのコントロールプレーンサービスが一時的に中断します。また、ネットワーク接続、Ceph、および NFS データプレーンサービスにも中断が発生します。この手順の最終ステップに従い、Pacemaker クラスターおよびコンテナーがサービスに戻るまで、インスタンスの作成、インスタンスの移行、要求の認証、クラスターの健全性の監視はできません。
[heat-admin@overcloud-controller-x ~]# sudo pcs cluster stop --all
各コントロールプレーンノードで、コンテナーを停止します。
コンテナーを停止します。
[heat-admin@overcloud-controller-x ~]# sudo docker stop $(sudo docker ps -a -q)
ceph-mon@controller.service コンテナーを停止します。
[heat-admin@overcloud-controller-x ~]# sudo systemctl stop ceph-mon@$(hostname -s)
ceph-mgr@controller.service コンテナーを停止します。
[heat-admin@overcloud-controller-x ~]# sudo systemctl stop ceph-mgr@$(hostname -s)
オプション:
ganesha-nfs
を使用する場合は、1 つのコントローラー上のファイルサーバーを無効にします。[heat-admin@overcloud-controller-x ~]# sudo pcs resource disable ceph-nfs
オプション: ceph サービスの
ceph-mds
およびceph-rgw
を使用する場合は、以下のサービスを停止します。[heat-admin@overcloud-controller-x ~]# sudo systemctl stop ceph-mds@$(hostname -s) [heat-admin@overcloud-controller-x ~]# sudo systemctl stop ceph-rgw@$(hostname -s)
コントロールプレーンをバックアップするには、各コントロールプレーンノードでコントロールプレーンのバックアップを実行します。
[heat-admin@overcloud-controller-x ~]# sudo rear -d -v mkbackup
ReaR で作成するバックアップの ISO ファイルは、バックアップノードの
/ctl_plane_backups
ディレクトリーにあります。注記バックアップコマンドを実行すると、
tar
コマンドおよび tar プロセス時に無視されるソケットに関する以下のような警告メッセージが表示されることがあります。WARNING: tar ended with return code 1 and below output: ---snip--- tar: /var/spool/postfix/public/qmgr: socket ignored ... ... This message indicates that files have been modified during the archiving process and the backup might be inconsistent. Relax-and-Recover continues to operate, however, it is important that you verify the backup to ensure that you can use this backup to recover your system.
バックアップ手順により各コントロールプレーンノードの ISO イメージが生成されたら、Pacemaker クラスターを再起動します。コントロールプレーンノードのいずれかで、以下のコマンドを入力します。
[heat-admin@overcloud-controller-x ~]# sudo pcs cluster start --all
各コントロールプレーンノードで、コンテナーを起動します。
コンテナーを起動します。
[heat-admin@overcloud-controller-x ~]# sudo systemctl restart docker
ceph-mon@controller.service
コンテナーを起動します。[heat-admin@overcloud-controller-x ~]# sudo systemctl start ceph-mon@$(hostname -s)
ceph-mgr@controller.service
コンテナーを起動します。[heat-admin@overcloud-controller-x ~]# sudo systemctl start ceph-mgr@$(hostname -s)
オプション:
ceph-mds
およびceph-rgw
を使用する場合は、以下のサービスを起動します。[heat-admin@overcloud-controller-x ~]# sudo systemctl start ceph-rgw@$(hostname -s) [heat-admin@overcloud-controller-x ~]# sudo systemctl start ceph-mds@$(hostname -s)
オプション:
ganesha-nfs
を使用する場合は、1 つのコントローラー上のファイルサーバーを有効にします。[heat-admin@overcloud-controller-x ~]# sudo pcs resource enable ceph-nfs