アンダークラウドとコントロールプレーンのバックアップおよびリストア
更新/アップグレード時に、アンダークラウドとオーバークラウドのコントロールプレーンをバックアップおよびリストアする手順
概要
第1章 はじめに リンクのコピーリンクがクリップボードにコピーされました!
この機能は、本リリースではテクノロジープレビューとして提供しているため、Red Hat では全面的にはサポートしていません。これは、テスト用途にのみご利用いただく機能で、実稼働環境にデプロイすべきではありません。テクノロジープレビュー機能についての詳しい情報は、対象範囲の詳細 を参照してください。
更新およびアップグレードの前に、Red Hat OpenStack Platform 10 のアンダークラウドおよびオーバークラウドのコントローラーノード(ここにコントロールプレーンノードと呼ばれる)の状態をバックアップすることができます。更新またはアップグレード時にエラーが発生した場合に、アンダークラウドおよびオーバークラウドのコントロールプレーンノードを以前の状態に復元することができます。
この手順では、ハイパーコンバージドまたは共存する Red Hat Ceph Storage モニターデーモンを使用するコントロールプレーンノードのバックアップおよびリストアをサポートしません。このシナリオでは、Red Hat OpenStack Platform director が Ceph Storage をデプロイする場合に発生します。
1.1. 背景情報 リンクのコピーリンクがクリップボードにコピーされました!
本ガイドの手順では、Bash で書かれたオープンソースの災害復旧ソリューション Relax and Recover (ReaR) を使用します。ReaR は、アンダークラウドまたはコントロールプレーンノードの最新状態で設定されるブート可能なイメージを作成します。ReaR を使用すると、システム管理者はバックアップを作成するファイルを選択することもできます。
ReaR では、以下に示すさまざまなブートメディア用フォーマットがサポートされます。
- ISO
- USB
- eSATA
- PXE
本書に記載する例は、ISO ブートフォーマットを使用してテストされています。
ReaR は、以下に示すさまざまなプロトコルを使用してブートイメージを転送することができます。
- HTTP/HTTPS
- SSH/SCP
- FTP/SFTP
- NFS
- CIFS (SMB)
Red Hat OpenStack Platform 10 のアンダークラウドおよびオーバークラウドのコントロールプレーンノードをバックアップおよびリストアする目的で、本書に記載する例は、NFS を使用してテストされています。
1.2. バックアップ管理オプション リンクのコピーリンクがクリップボードにコピーされました!
ReaR では、内部および外部両方のバックアップ管理オプションを使用することができます。
内部バックアップ管理
内部バックアップ管理オプションを以下に示します。
-
tar -
rsync
外部バックアップ管理
外部バックアップ管理オプションには、オープンソースのソリューションおよびプロプライエタリーのソリューションの両方が含まれます。オープンソースのソリューションを以下に示します。
- Bacula
- Bareos
プロプライエタリーのソリューションを以下に示します。
- EMC NetWorker (Legato)
- HP DataProtector
- IBM Tivoli Storage Manager (TSM)
- Symantec NetBackup
第2章 バックアップノードの準備 リンクのコピーリンクがクリップボードにコピーされました!
アンダークラウドまたはコントロールプレーンノードをバックアップする前に、バックアップイメージを受け入れるバックアップノードを準備します。
2.1. NFS サーバーの準備 リンクのコピーリンクがクリップボードにコピーされました!
ReaR では、複数の転送手段を使用することができます。Red Hat は、NFS を使用した ReaR によるバックアップおよびリストアをサポートします。
バックアップノードに NFS サーバーをインストールします。
yum install -y nfs-utils
[root@backup ~]# yum install -y nfs-utilsCopy to Clipboard Copied! Toggle word wrap Toggle overflow ファイアウォールに NFS サービスを追加して、ポート
111および2049が開放されている状態にします。例を以下に示します。firewall-cmd --add-service=nfs firewall-cmd --add-service=nfs --permanent
[root@backup ~]# firewall-cmd --add-service=nfs [root@backup ~]# firewall-cmd --add-service=nfs --permanentCopy to Clipboard Copied! Toggle word wrap Toggle overflow NFS サーバーを有効にし、さらに起動します。
systemctl enable nfs-server systemctl restart nfs-server
[root@backup ~]# systemctl enable nfs-server [root@backup ~]# systemctl restart nfs-serverCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.2. バックアップディレクトリーの作成およびエクスポート リンクのコピーリンクがクリップボードにコピーされました!
バックアップ用 ISO イメージをアンダークラウドまたはコントロールプレーンノードからバックアップノードにコピーするには、バックアップディレクトリーが必要です。
バックアップディレクトリーを作成します。
mkdir /ctl_plane_backups
[root@backup ~]# mkdir /ctl_plane_backupsCopy to Clipboard Copied! Toggle word wrap Toggle overflow ディレクトリーをエクスポートします。
[root@backup ~]# cat > /etc/exports << EOF /ctl_plane_backups <ip-addr-x>/24(rw,sync,no_root_squash,no_subtree_check) EOF
[root@backup ~]# cat > /etc/exports << EOF /ctl_plane_backups <ip-addr-x>/24(rw,sync,no_root_squash,no_subtree_check) EOFCopy to Clipboard Copied! Toggle word wrap Toggle overflow <ip-addr-x>をネットワークの IP アドレスに置き換えてください。たとえば、<ip-addr-x>/24を10.0.0.1/24に置き換えます。ここで10.0.0.1/24は CIDR 表記の IP アドレスおよびサブネットマスクです。アンダークラウドおよびオーバークラウドのコントロールプレーンノードが異なるネットワークまたはサブネットを使用している場合には、それぞれのネットワークまたはサブネットについて、このステップを繰り返します。
第3章 ReaR のインストールおよび設定 リンクのコピーリンクがクリップボードにコピーされました!
アンダークラウドおよびオーバークラウドのコントロールプレーンをバックアップするには、まずアンダークラウドおよび各コントロールプレーンノードに Relax and Recover (ReaR) をインストール/設定する必要があります。
3.1. 必要なパッケージのインストール リンクのコピーリンクがクリップボードにコピーされました!
本アンダークラウドとコントロールプレーンのバックアップおよびリストアの手順では、Relax and Recover (ReaR) パッケージおよび ISO イメージを生成するためのパッケージを、アンダークラウドノードおよび各コントロールプレーンノードにインストールする必要があります。
必要なパッケージをアンダークラウドおよび各コントロールプレーンノードにインストールします。以下に例を示します。
yum install rear genisoimage nfs-utils -y
[root@controller-x ~]# yum install rear genisoimage nfs-utils -yCopy to Clipboard Copied! Toggle word wrap Toggle overflow アンダークラウドおよび各コントロールプレーンノードにバックアップディレクトリーを作成します。例を以下に示します。
mkdir -p /ctl_plane_backups
[root@controller-x ~]# mkdir -p /ctl_plane_backupsCopy to Clipboard Copied! Toggle word wrap Toggle overflow NFS を実行するバックアップノードの
ctl_plane_backupsNFS ディレクトリーを、アンダークラウドおよび各コントロールプレーンノードにマウントします。例を以下に示します。mount -t nfs <ip-addr>:/ctl_plane_backups /ctl_plane_backups
[root@controller-x ~]# mount -t nfs <ip-addr>:/ctl_plane_backups /ctl_plane_backupsCopy to Clipboard Copied! Toggle word wrap Toggle overflow <ip-addr>を NFS サーバーを実行するバックアップノードの IP アドレスに置き換えてください。
3.2. 設定ファイルの作成 リンクのコピーリンクがクリップボードにコピーされました!
アンダークラウドおよび各コントロールプレーンノード上で、root として以下の手順を実施します。
ReaR 設定ファイルを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow {{SERVER_NAME-X}}をノードのホスト名に置き換えてください。たとえば、ノードのホスト名がcontroller-0の場合には、{{SERVER_NAME-X}}をcontroller-0に置き換えます。{{nfs_server_ip}} は、2章バックアップノードの準備 で設定した NFS サーバーを実行するバックアップノードの IP アドレスに置き換えます。重要アンダークラウドまたはコントロールプレーンノードがブートモードに UEFI を使用している場合には、設定ファイルに
USING_UEFI_BOOTLOADER=1も追加する必要があります。rescue.confファイルを作成します。[root@controller-x ~]# tee -a "/etc/rear/rescue.conf" > /dev/null <<'EOF' BACKUP_PROG_OPTIONS+=( --anchored --xattrs-include='*.*' --xattrs ) EOF
[root@controller-x ~]# tee -a "/etc/rear/rescue.conf" > /dev/null <<'EOF' BACKUP_PROG_OPTIONS+=( --anchored --xattrs-include='*.*' --xattrs ) EOFCopy to Clipboard Copied! Toggle word wrap Toggle overflow
第4章 バックアップ手順の実行 リンクのコピーリンクがクリップボードにコピーされました!
Fast Forward Upgrade を実施する前に、アンダークラウドおよびオーバークラウドのコントロールプレーンノードをバックアップし、エラーが発生した場合に以前の状態に復元できるようにします。
4.1. アンダークラウドのバックアップ リンクのコピーリンクがクリップボードにコピーされました!
アンダークラウドノードをバックアップするには、アンダークラウドノードのコマンドラインインターフェイスから root で以下のコマンドを実行します。
rear -d -v mkbackup
# rear -d -v mkbackup
この操作により、バックアップノードの /ctl_plane_backups ディレクトリーに ISO イメージが作成されます。
4.2. コントロールプレーンのバックアップ リンクのコピーリンクがクリップボードにコピーされました!
コントロールプレーンをバックアップするには、まず Pacemaker クラスターを停止する必要があります。これにより、サービスが中断される可能性があります。コントロールプレーンの復元後にデータベースを復元できるように、予防措置としてデータベースのバックアップを作成する必要があります。コントロールプレーンノードを同時にバックアップし、状態の整合性を確保するためにスタックの操作を回避します。バックアップ手順が完了したら、Pacemaker クラスターを起動します。
データベースのパスワードを特定します。
/bin/hiera -c /etc/puppet/hiera.yaml mysql::server::root_password
# /bin/hiera -c /etc/puppet/hiera.yaml mysql::server::root_passwordCopy to Clipboard Copied! Toggle word wrap Toggle overflow データベースのバックアップを作成します。
mysql -uroot -p{{ mysql_root_password }} -s -N -e "select distinct table_schema from information_schema.tables where engine='innodb' and table_schema != 'mysql';" | xargs mysqldump -uroot -p{{ mysql_root_password }} --single-transaction --databases > openstack-backup-mysql.sql[heat-admin@overcloud-controller-x ~]$ mysql -uroot -p{{ mysql_root_password }} -s -N -e "select distinct table_schema from information_schema.tables where engine='innodb' and table_schema != 'mysql';" | xargs mysqldump -uroot -p{{ mysql_root_password }} --single-transaction --databases > openstack-backup-mysql.sqlCopy to Clipboard Copied! Toggle word wrap Toggle overflow mysql -uroot -p{{ mysql_root_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{{ mysql_root_password }} -s -N -e | sed 's/$/;/' > openstack-backup-mysql-grants.sql[heat-admin@overcloud-controller-x ~]$ mysql -uroot -p{{ mysql_root_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{{ mysql_root_password }} -s -N -e | sed 's/$/;/' > openstack-backup-mysql-grants.sqlCopy to Clipboard Copied! Toggle word wrap Toggle overflow Pacemaker クラスターおよび OpenStack サービスを停止します。
重要この手順により、コンピュートノードへのコントロールプレーンサービスが一時的に中断します。この手順の最終ステップでは、Pacemaker クラスターおよび OpenStack サービスを復元するまで、新規インスタンスの起動、インスタンスの移行、要求の認証、またはクラスターの健全性の監視を行うことができません。
コントロールプレーンノードのいずれかで、以下のコマンドを入力します。
pcs cluster stop --all
# pcs cluster stop --allCopy to Clipboard Copied! Toggle word wrap Toggle overflow 各コントロールプレーンノードで、OpenStack サービスを停止します。
systemctl stop openstack-* systemctl stop neutron-* systemctl stop haproxy systemctl stop httpd
# systemctl stop openstack-* # systemctl stop neutron-* # systemctl stop haproxy # systemctl stop httpdCopy to Clipboard Copied! Toggle word wrap Toggle overflow コントロールプレーンをバックアップするには、各コントロールプレーンノードのコマンドラインインターフェースから
rootで以下のコマンドを実行します。rear -d -v mkbackup
# rear -d -v mkbackupCopy to Clipboard Copied! Toggle word wrap Toggle overflow この操作により、バックアップノードの
/ctl_plane_backupsディレクトリーに ISO イメージが作成されます。バックアップ手順により各コントロールプレーンノードの ISO イメージが生成されたら、コントロールプレーンノードを再起動します。
reboot
# rebootCopy to Clipboard Copied! Toggle word wrap Toggle overflow コントロールプレーンノードを再起動したら、pacemaker のステータスをチェックして、サービスが正しく実行されていることを確認します。
pcs status
# pcs statusCopy to Clipboard Copied! Toggle word wrap Toggle overflow
第5章 リストア手順の実行 リンクのコピーリンクがクリップボードにコピーされました!
更新またはアップグレード中にエラーが発生した場合には、アンダークラウドもしくはオーバークラウドのコントロールプレーンノードのいずれか (またはその両方) を復元して、以前の状態にすることができます。
手順の概略は以下のとおりです。
- ブート可能な ISO イメージを DVD に書き込む、または ILO リモートアクセスを通じてイメージを読み込む。
- リカバリーメディアから復元が必要なノードをブートする。
-
Recover <hostname> を選択する。ここで、
<hostname>は復元するノードの名前です。 -
rootとしてログインする。 - バックアップを復元する。
5.1. アンダークラウドのリストア リンクのコピーリンクがクリップボードにコピーされました!
Fast Forward Upgrade を実施中にエラーが発生した場合には、「アンダークラウドのバックアップ」に記載の手順により作成した ISO イメージを使用して、アンダークラウドノードを以前に保存した状態にリストアすることができます。バックアップの手順により、ISO イメージは「バックアップディレクトリーの作成およびエクスポート」のステップで作成したバックアップノードのフォルダーに保存されます。
手順
- アンダークラウドノードをシャットダウンします。次のステップに進む前に、アンダークラウドノードが完全にシャットダウンされていることを確認します。
-
バックアッププロセス中に作成した ISO イメージを使用してアンダークラウドノードをブートし、復元します。ISO イメージは、バックアップノードの
/ctl_plane_backupsディレクトリーにあります。 ブートフェーズ中にブートメニューが表示されます。
Recover <Undercloud Node>を選択します。ここで、<Undercloud Node>はアンダークラウドノードの名前です。注記Automatic Recover <Undercloud Node> を選択してください。これにより、SELinux コンテキストが一致しなくなる可能性があります。以下のメッセージが表示されるはずです。
Welcome to Relax-and-Recover. Run "rear recover" to restore your system! RESCUE <Undercloud Node>:~ # rear recover
Welcome to Relax-and-Recover. Run "rear recover" to restore your system! RESCUE <Undercloud Node>:~ # rear recoverCopy to Clipboard Copied! Toggle word wrap Toggle overflow イメージの復元は素早く進行するはずです。復元が完了すると、コンソールに以下のメッセージが表示されるはずです。
Finished recovering your system Exiting rear recover Running exit tasks
Finished recovering your system Exiting rear recover Running exit tasksCopy to Clipboard Copied! Toggle word wrap Toggle overflow コマンドラインインターフェイスが利用できる状態になったら、イメージの復元プロセスは完了です。ノードの電源をオフにします。
RESCUE <Undercloud Node>:~ # poweroff
RESCUE <Undercloud Node>:~ # poweroffCopy to Clipboard Copied! Toggle word wrap Toggle overflow ノードをブートすると、以前の状態で再開されます。
5.2. コントロールプレーンのリストア リンクのコピーリンクがクリップボードにコピーされました!
Fast Forward Upgrade を実施中にエラーが発生した場合には、「コントロールプレーンのバックアップ」 に記載の手順により作成した ISO イメージを使用して、コントロールプレーンノードを以前に保存した状態に復元することができます。コントロールプレーンをリストアする場合には、状態の整合性を確保するために、すべてのコントロールプレーンノードを以前の状態にリストアする必要があります。
- 各コントロールプレーンノードをシャットダウンします。次のステップに進む前に、コントロールプレーンノードが完全にシャットダウンされていることを確認します。
-
バックアッププロセス中に作成した ISO イメージを使用してコントロールプレーンノードをブートし、復元します。ISO イメージは、バックアップノードの
/ctl_plane_backupsディレクトリーにあります。 ブートフェーズ中にブートメニューが表示されます。
Recover <Control Plane Node>を選択します。ここで、<Control Plane Node>はコントロールプレーンノードの名前です。注記Automatic Recover <Control Plane Node> を選択しないでください。これにより、SELinux コンテキストが一致しなくなる可能性があります。以下のメッセージが表示されるはずです。
Welcome to Relax-and-Recover. Run "rear recover" to restore your system! RESCUE <Control Plane Node>:~ # rear recover
Welcome to Relax-and-Recover. Run "rear recover" to restore your system! RESCUE <Control Plane Node>:~ # rear recoverCopy to Clipboard Copied! Toggle word wrap Toggle overflow イメージの復元は素早く進行するはずです。復元が完了すると、コンソールに以下のメッセージが表示されるはずです。
Finished recovering your system Exiting rear recover Running exit tasks
Finished recovering your system Exiting rear recover Running exit tasksCopy to Clipboard Copied! Toggle word wrap Toggle overflow コマンドラインインターフェイスが利用できる状態になったら、イメージの復元プロセスは完了です。ノードの電源をオフにします。
RESCUE <Control Plane Node>:~ # poweroff
RESCUE <Control Plane Node>:~ # poweroffCopy to Clipboard Copied! Toggle word wrap Toggle overflow ノードをブートすると、以前の状態で再開されます。
pacemaker のステータスをチェックして、サービスが適切に実行されていることを確認します。
pcs status
# pcs statusCopy to Clipboard Copied! Toggle word wrap Toggle overflow