2.2. Relax-and-Recover ツールを使用したコントロールプレーンノードのバックアップ
コントロールプレーンノードをバックアップするには、バックアップノードを設定し、コントロールプレーンノードに Relax-and-Recover ツールをインストールし、バックアップイメージを作成します。バックアップは、通常の環境メンテナンスの一環として作成できます。
さらに、更新またはアップグレードを実行する前にコントロールプレーンノードをバックアップする必要があります。更新またはアップグレード時にエラーが発生した場合は、バックアップを使用して、コントロールプレーンノードを以前の状態に復元できます。
バックアッププロセスでは、Pacemaker によって管理されるサービスのフェイルオーバーが発生します。このため、計画的なメンテナンス中に実行し、一部のトランザクションが失われることを期待する必要があります。
2.2.1. サポート対象のバックアップ形式およびプロトコル リンクのコピーリンクがクリップボードにコピーされました!
アンダークラウドおよびバックアップ/復元プロセスは、オープンソースのツールである Relax-and-Recover (ReaR) を使用してブート可能なバックアップイメージを作成し、復元します。ReaR は Bash で記述されており、複数のイメージ形式と複数の転送プロトコルをサポートします。
次のリストは、ReaR を使用してアンダークラウドとコントロールプレーンをバックアップおよび復元するときに Red Hat OpenStack Platform がサポートするバックアップ形式とプロトコルを示しています。
- ブート可能なメディア形式
- ISO
- ファイルトランスポートプロトコル
- SFTP
- NFS
2.2.2. バックアップノードへの 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.2.3. コントロールプレーンノードへの ReaR のインストール リンクのコピーリンクがクリップボードにコピーされました!
コントロールプレーンノードのバックアップを作成する前に、各コントロールプレーンノードに Relax and Recover (ReaR) をインストールして設定します。
既知の問題が原因でコントローラーノードがダウンしても、オーバークラウドノードの ReaR バックアップは継続されます。ReaR バックアップを実行する前に、すべてのコントローラーノードが実行されていることを確認してください。今後の Red Hat OpenStack Platform (RHOSP) リリースで修正される予定です。詳細は BZ#2077335 - Back up of the overcloud ctlplane keeps going even if one controller is unreachable を参照してください。
前提条件
- バックアップノードに 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です。
-
bar-vars.yamlファイルで、バックアップの保存場所を設定します。独自の NFS サーバーをインストールして設定している場合は、
tripleo_backup_and_restore_serverパラメーターを追加して、値を 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 および認証情報に置き換えます。
コントロールプレーンノードに ReaR をインストールします。
(undercloud) [stack@undercloud ~]$ openstack overcloud 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.2.4. バックアップ用の 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.2.5. コントロールプレーンノードのバックアップの作成 リンクのコピーリンクがクリップボードにコピーされました!
コントロールプレーンノードのバックアップを作成するには、openstack overcloud backup コマンドを使用します。その後、ノードが破損したりアクセスできなくなったりした場合に備えて、バックアップを使用して、コントロールプレーンノードを以前の状態に復元できます。コントロールプレーンのバックアップには、コントロールプレーンノードで実行されるデータベースのバックアップが含まれます。
コントロールプレーンノードをバックアップする前に、各コントロールプレーンノードを停止し、ファイルシステムが破損していることを確認します。たとえば、コントロールプレーンノードのディスク破損により、ノードのバックアップが実行されなくなります。
前提条件
- バックアップノードに NFS または SFTP サーバーがインストールおよび設定されている。新しい NFS サーバーの作成方法は 「バックアップノードへの NFS サーバーのインストールと設定」 を参照してください。
- コントロールプレーンノードに ReaR がインストールされている。詳細は、「コントロールプレーンノードへの ReaR のインストール」 を参照してください。
- ネットワークインターフェイスに OVS ブリッジを使用する場合は、OVS インターフェイスを設定している。詳細は、「バックアップ用の Open vSwitch (OVS) インターフェイスの設定」 を参照してください。
手順
各コントロールプレーンノードで
config-driveパーティションを見つけます。[stack@undercloud-0 ~]$ blkid -t LABEL="config-2" -odevice各コントロールプレーンノードで、各ノードの
config-driveパーティションをrootユーザーとしてバックアップします。[root@controller-x ~]# dd if=<config_drive_partition> of=/mnt/config-drive<config_drive_partition>を、手順 1 で見つけたconfig-driveパーティションの名前に置き換えます。アンダークラウドノードにおいて、source コマンドでアンダークラウドの認証情報を読み込みます。
[stack@undercloud-0 ~]$ source stackrcコントロールプレーンノードのバックアップを作成します。
(undercloud) [stack@undercloud ~]$ openstack overcloud backup --inventory /home/stack/tripleo-inventory.yamlバックアッププロセスは、環境へのサービスを中断することなく、各コントロールプレーンノードで順番に実行されます。
2.2.6. cron を使用したコントロールプレーンノードバックアップのスケジューリング リンクのコピーリンクがクリップボードにコピーされました!
Ansible backup-and-restore ロールを使用して、ReaR でコントロールプレーンノードのバックアップをスケジュールできます。/var/log/rear-cron ディレクトリーでログを確認できます。
前提条件
- バックアップノードに NFS または SFTP サーバーがインストールおよび設定されている。新しい NFS サーバーの作成方法は 「バックアップノードへの NFS サーバーのインストールと設定」 を参照してください。
- アンダークラウドおよびコントロールプレーンノードに ReaR がインストールされている。詳細は、「コントロールプレーンノードへの ReaR のインストール」 を参照してください。
- バックアップの保存用に、バックアップの場所に十分なディスク領域がある。
手順
コントロールプレーンノードのバックアップをスケジュールするには、以下のコマンドを実行します。デフォルトのスケジュールは日曜日の午前 0 時です。
openstack overcloud backup --cronオプション: デプロイメントに応じてスケジュールが設定されたバックアップをカスタマイズします。
デフォルトのバックアップスケジュールを変更するには、
tripleo_backup_and_restore_cronパラメーターに別の cron スケジュールを渡します。openstack overcloud backup --cron --extra-vars '{"tripleo_backup_and_restore_cron": "0 0 * * 0"}'cron がスケジュールされたバックアップを実行する際にバックアップコマンドに追加されるパラメーターを定義するには、以下の例のように
tripleo_backup_and_restore_cron_extraパラメーターをバックアップコマンドに渡します。openstack overcloud 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 overcloud backup --cron --extra-vars '{"tripleo_backup_and_restore_cron_user": "root"}