第2章 Relax-and-Recover ツールを使用したアンダークラウドおよびコントロールプレーンノードのバックアップ
Red Hat Openstack Platform (RHOSP) をアップグレードまたは更新する場合は、アンダークラウドノードとコントロールプレーンノードをバックアップする必要があります。Relax-and-Recover (ReaR) ツールを使用して、アンダークラウドノードとコントロールプレーンノードをバックアップできます。ReaR ツールを使用して、アンダークラウドおよびコントロールプレーンノードをバックアップおよび復元するには、以下の手順を実行する必要があります。
- アンダークラウドノードのバックアップ
- コントロールプレーンノードのバックアップ
- アンダークラウドおよびコントロールプレーンノードの復元
2.1. Relax-and-Recover ツールを使用したアンダークラウドノードのバックアップ リンクのコピーリンクがクリップボードにコピーされました!
アンダークラウドノードをバックアップするには、バックアップノードを設定し、アンダークラウドノードに Relax-and-Recover ツールをインストールしてから、バックアップイメージを作成します。バックアップは、通常の環境メンテナンスの一環として作成できます。
さらに、更新またはアップグレードを実行する前にアンダークラウドノードをバックアップする必要があります。バックアップを使用して、更新またはアップグレード時にエラーが発生した場合に、アンダークラウドノードを以前の状態に復元することができます。
2.1.1. サポート対象のバックアップ形式およびプロトコル リンクのコピーリンクがクリップボードにコピーされました!
アンダークラウドおよびバックアップ/復元プロセスは、オープンソースのツールである Relax-and-Recover (ReaR) を使用してブート可能なバックアップイメージを作成し、復元します。ReaR は Bash で記述されており、複数のイメージ形式と複数の転送プロトコルをサポートします。
次のリストは、ReaR を使用してアンダークラウドとコントロールプレーンをバックアップおよび復元するときに Red Hat OpenStack Platform がサポートするバックアップ形式とプロトコルを示しています。
- ブート可能なメディア形式
- ISO
- ファイルトランスポートプロトコル
- SFTP
- NFS
2.1.2. バックアップストレージの場所の設定 リンクのコピーリンクがクリップボードにコピーされました!
コントロールプレーンノードのバックアップを作成する前に、bar-vars.yaml 環境ファイルでバックアップの保存場所を設定します。このファイルには、バックアップの実行に渡す Key-Value パラメーターが格納されています。
手順
-
アンダークラウドに
stackユーザーとしてログインします。 stackrcファイルを取得します。$ source ~/stackrcbar-vars.yamlファイルを作成します。touch /home/stack/bar-vars.yamlbar-vars.yamlファイルで、バックアップの保存場所を設定します。NFS サーバーを使用する場合は、以下のパラメーターを追加して、NFS サーバーおよびバックアップストレージフォルダーの IP アドレスの値を設定します。
tripleo_backup_and_restore_server: <ip_address> tripleo_backup_and_restore_shared_storage_folder: <backup_dir>-
<ip_address> および <backup_dir> を、使用中の環境に適用される値に置き換えます。デフォルトでは、
tripleo_backup_and_restore_serverパラメーターの値は192.168.24.1です。
-
<ip_address> および <backup_dir> を、使用中の環境に適用される値に置き換えます。デフォルトでは、
SFTP サーバーを使用する場合は、
tripleo_backup_and_restore_output_urlパラメーターを追加し、SFTP サーバーの URL と認証情報の値を設定します。tripleo_backup_and_restore_output_url: sftp://<user>:<password>@<backup_node>/ tripleo_backup_and_restore_backup_url: iso:///backup/<user>、<password>、および<backup_node>を、バックアップノードの URL および認証情報に置き換えます。
2.1.3. オプション: バックアップ暗号化の設定 リンクのコピーリンクがクリップボードにコピーされました!
バックアップは、機密データを保護するための追加のセキュリティー対策として暗号化できます。
手順
bar-vars.yamlファイルに以下のパラメーターを追加します。tripleo_backup_and_restore_crypt_backup_enabled: true tripleo_backup_and_restore_crypt_backup_password: <password><password>を、バックアップの暗号化に使用するパスワードに置き換えます。
2.1.4. バックアップノードへの NFS サーバーのインストールと設定 リンクのコピーリンクがクリップボードにコピーされました!
バックアップファイルを保存するために、新しい NFS サーバーをインストールして設定できます。バックアップノードに NFS サーバーをインストールして設定するには、インベントリーファイルと SSH キーを順次作成し、NFS サーバーオプションを指定して openstack undercloud backup コマンドを実行します。
- NFS サーバーまたは SFTP サーバーをインストールして設定している場合は、この手順を実行する必要はありません。バックアップするノードに ReaR を設定するときに、サーバー情報を入力します。
-
デフォルトでは、NFS サーバーの Relax and Recover (ReaR) IP アドレスパラメーターは
192.168.24.1です。使用している環境に一致する IP アドレス値を設定するには、tripleo_backup_and_restore_serverパラメーターを追加する必要があります。
手順
アンダークラウドノードにおいて、source コマンドでアンダークラウドの認証情報を読み込みます。
[stack@undercloud-0 ~]$ source stackrc (undercloud) [stack@undercloud ~]$アンダークラウドノードで、バックアップノードのインベントリーファイルを作成します。
(undercloud) [stack@undercloud ~]$ cat <<'EOF'> ~/nfs-inventory.yaml [BackupNode] <backup_node> ansible_host=<ip_address> ansible_user=<user> EOF<backup_node>、<ip_address>、および<user>を、使用中の環境に適用される値に置き換えます。公開 SSH 鍵をアンダークラウドノードからバックアップノードにコピーします。
(undercloud) [stack@undercloud ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub <backup_node><backup_node>をバックアップノードのパスおよび名前に置き換えます。バックアップノードに NFS サーバーを設定します。
(undercloud) [stack@undercloud ~]$ openstack undercloud backup --setup-nfs --extra-vars /home/stack/bar-vars.yaml --inventory /home/stack/nfs-inventory.yaml
2.1.5. アンダークラウドノードへの ReaR のインストール リンクのコピーリンクがクリップボードにコピーされました!
アンダークラウドノードのバックアップを作成する前に、アンダークラウドに Relax and Recover (ReaR) をインストールして設定します。
前提条件
- バックアップノードに NFS または SFTP サーバーがインストールおよび設定されている。新しい NFS サーバーの作成方法は 「バックアップノードへの NFS サーバーのインストールと設定」 を参照してください。
手順
アンダークラウドノードにおいて、source コマンドでアンダークラウドの認証情報を読み込みます。
[stack@undercloud-0 ~]$ source stackrcまだ行っていない場合は、インストール中に保存された場所から静的 ansible インベントリーファイルを展開します。
(undercloud) [stack@undercloud ~]$ cp ~/overcloud-deploy/<stack>/tripleo-ansible-inventory.yaml ~/tripleo-inventory.yaml-
<stack>は、スタックの名前に置き換えます。デフォルトでは、スタックの名前はovercloudです。
-
アンダークラウドノードに ReaR をインストールします。
(undercloud) [stack@undercloud ~]$ openstack undercloud backup --setup-rear --extra-vars /home/stack/bar-vars.yaml --inventory /home/stack/tripleo-inventory.yamlシステムで UEFI ブートローダーを使用している場合は、アンダークラウドノードで以下の手順を実施します。
以下のツールをインストールします。
$ sudo dnf install dosfstools efibootmgr-
USING_UEFI_BOOTLOADERパラメーターの値0を値1に置き換えて、UEFI_BOOTLOADER=/boot/efi/EFI/redhat/shimx64.efi を追加して、バックアップを有効にします。/etc/rear/local.confにある ReaR 設定ファイルで UEFI
2.1.6. オプション: アンダークラウドノードのスタンドアロンデータベースバックアップの作成 リンクのコピーリンクがクリップボードにコピーされました!
スタンドアロンのアンダークラウドデータベースのバックアップを定期的なバックアップスケジュールに追加して、データセキュリティーを強化できます。アンダークラウドノードの完全バックアップには、アンダークラウドノードのデータベースバックアップが含まれます。ただし、完全なアンダークラウドの復元が失敗した場合、完全なアンダークラウドバックアップのデータベース部分にアクセスできなくなる可能性があります。この場合、スタンドアロンのアンダークラウドデータベースのバックアップからデータベースを復元できます。
ReaR ツール、スナップショット、および Revert ツールと組み合わせて、スタンドアロンのアンダークラウドデータベースバックアップを作成できます。ただし、アンダークラウド全体をバックアップすることが推奨されます。アンダークラウドノードのバックアップ作成に関する詳細は、アンダークラウドノードのバックアップの作成 を参照してください。
手順
アンダークラウドノードのデータベースのバックアップを作成します。
openstack undercloud backup --db-onlyデータベースのバックアップファイルは
/home/stack with the name openstack-backup-mysql-<timestamp>.sqlに保存されます。
2.1.7. バックアップ用の Open vSwitch (OVS) インターフェイスの設定 リンクのコピーリンクがクリップボードにコピーされました!
お使いの環境で Open vSwitch (OVS) ブリッジを使用する場合は、アンダークラウドまたはコントロールプレーンノードをバックアップする前に OVS インターフェイスを手動で設定する必要があります。復元プロセスでは、この情報を使用してネットワークインターフェイスを復元します。
手順
/etc/rear/local.confファイルに、以下の形式でNETWORKING_PREPARATION_COMMANDSパラメーターを追加します。NETWORKING_PREPARATION_COMMANDS=('<command_1>' '<command_2>' ...')<
;command_1> および<command_2> を、ネットワークインターフェイスを設定するコマンドに置き換えます。たとえば、ip link add br-ctlplane type bridgeコマンドを追加してコントロールプレーンのブリッジを作成するか、ip link set eth0 upコマンドを追加してeth0の状態を up に変更します。ネットワーク設定に基づいて、パラメーターにさらにコマンドを追加します。たとえば、アンダークラウドの設定が以下のように設定します。
$ ip -4 addr ls br-ctlplane 8: br-ctlplane: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default qlen 1000 inet 172.16.9.1/24 brd 172.16.9.255 scope global br-ctlplane valid_lft forever preferred_lft forever $ sudo ovs-vsctl show ... Bridge br-ctlplane Controller "tcp:127.0.0.1:6633" is_connected: true fail_mode: secure datapath_type: system Port eth0 Interface eth0 Port br-ctlplane Interface br-ctlplane type: internal Port phy-br-ctlplane Interface phy-br-ctlplane type: patch options: {peer=int-br-ctlplane} ...NETWORKING_PREPARATION_COMMANDSパラメーターは以下のようにフォーマットされます。NETWORKING_PREPARATION_COMMANDS=('ip link add br-ctlplane type bridge' 'ip link set br-ctlplane up' 'ip link set eth0 up' 'ip link set eth0 master br-ctlplane' 'ip addr add 172.16.9.1/24 dev br-ctlplane')
2.1.8. アンダークラウドノードのバックアップの作成 リンクのコピーリンクがクリップボードにコピーされました!
アンダークラウドノードのバックアップを作成するには、openstack undercloud backup コマンドを使用します。その後、ノードが破損したりアクセスできなくなったりした場合に備えて、バックアップを使用して、アンダークラウドノードを以前の状態に復元できます。アンダークラウドノードのバックアップには、アンダークラウドノードで実行されるデータベースのバックアップが含まれます。
アンダークラウドノードをバックアップする前に、アンダークラウドノードを停止して、ファイルシステムが破損していることを確認します。たとえば、アンダークラウドノードのディスク破損により、ノードのバックアップが実行されなくなります。
以下の手順に従って、アンダークラウドノードのバックアップを作成することが推奨されます。ただし、アンダークラウドノードのスタンドアロンデータベースバックアップの作成 を完了している場合は、この手順を省略できます。
前提条件
- バックアップノードに NFS または SFTP サーバーがインストールおよび設定されている。新しい NFS サーバーの作成方法は 「バックアップノードへの NFS サーバーのインストールと設定」 を参照してください。
- アンダークラウドノードに ReaR がインストールされている。詳細は、「アンダークラウドノードへの ReaR のインストール」 を参照してください。
- ネットワークインターフェイスに OVS ブリッジを使用する場合は、OVS インターフェイスを設定している。詳細は、「バックアップ用の Open vSwitch (OVS) インターフェイスの設定」 を参照してください。
手順
-
アンダークラウドに
stackユーザーとしてログインします。 MySQL の root パスワードを取得します。
[stack@undercloud ~]$ PASSWORD=$(sudo /bin/hiera -c /etc/puppet/hiera.yaml mysql::server::root_password)アンダークラウドノードのデータベースのバックアップを作成します。
[stack@undercloud ~]$ sudo podman exec mysql bash -c "mysqldump -uroot -p$PASSWORD --opt --all-databases" | sudo tee /root/undercloud-all-databases.sqlアンダークラウドノードにおいて、source コマンドでアンダークラウドの認証情報を読み込みます。
[stack@undercloud-0 ~]$ source stackrcアンダークラウドノードのバックアップを作成します。
(undercloud) [stack@undercloud ~]$ openstack undercloud backup --inventory /home/stack/tripleo-inventory.yaml
2.1.9. cron を使用したアンダークラウドノードバックアップのスケジューリング リンクのコピーリンクがクリップボードにコピーされました!
Ansible backup-and-restore ロールを使用して、ReaR でアンダークラウドノードのバックアップをスケジュールできます。/var/log/rear-cron ディレクトリーでログを確認できます。
前提条件
- バックアップノードに NFS または SFTP サーバーがインストールおよび設定されている。新しい NFS サーバーの作成方法は 「バックアップノードへの NFS サーバーのインストールと設定」 を参照してください。
- アンダークラウドおよびコントロールプレーンノードに ReaR がインストールされている。詳細は、「コントロールプレーンノードへの ReaR のインストール」 を参照してください。
- バックアップの保存用に、バックアップの場所に十分なディスク領域がある。
手順
コントロールプレーンノードのバックアップをスケジュールするには、以下のコマンドを実行します。デフォルトのスケジュールは日曜日の午前 0 時です。
openstack undercloud backup --cronオプション: デプロイメントに応じてスケジュールが設定されたバックアップをカスタマイズします。
デフォルトのバックアップスケジュールを変更するには、
tripleo_backup_and_restore_cronパラメーターに別の cron スケジュールを渡します。openstack undercloud backup --cron --extra-vars '{"tripleo_backup_and_restore_cron": "0 0 * * 0"}'cron がスケジュールされたバックアップを実行する際にバックアップコマンドに追加されるパラメーターを定義するには、以下の例のように
tripleo_backup_and_restore_cron_extraパラメーターをバックアップコマンドに渡します。openstack undercloud backup --cron --extra-vars '{"tripleo_backup_and_restore_cron_extra":"--extra-vars bar-vars.yaml --inventory /home/stack/tripleo-inventory.yaml"}'バックアップを実行するデフォルトユーザーを変更するには、以下の例のように
tripleo_backup_and_restore_cron_userパラメーターを backup コマンドに渡します。openstack undercloud backup --cron --extra-vars '{"tripleo_backup_and_restore_cron_user": "root"}