2.2. 使用 Relax-and-Recover 工具备份 control plane 节点
要备份 control plane 节点,请配置备份节点,在 control plane 节点上安装 Relax-and-Recover 工具,并创建备份镜像。您可以将备份创建作为常规环境维护的一部分。
另外,您必须在执行更新或升级前备份 control plane 节点。如果在更新或升级过程中出现错误,您可以使用备份将 control plane 节点恢复到之前的状态。
2.2.1. 支持的备份格式和协议 复制链接链接已复制到粘贴板!
undercloud 和备份和恢复过程使用开源工具 Relax-and-Recover (ReaR)创建和恢复可引导备份镜像。ReaR 使用 Bash 编写,支持多个镜像格式和多个传输协议。
以下列表显示了 Red Hat OpenStack Platform 在使用 ReaR 备份和恢复 undercloud 和 control plane 时支持的备份格式和协议。
- 可引导介质格式
- ISO
- 文件传输协议
- SFTP
- NFS
2.2.2. 在备份节点上安装和配置 NFS 服务器 复制链接链接已复制到粘贴板!
您可以安装和配置新的 NFS 服务器来存储备份文件。要在备份节点上安装和配置 NFS 服务器,请创建一个清单文件,创建 SSH 密钥,并使用 NFS 服务器选项运行 openstack undercloud backup 命令。
- 如果您之前安装和配置了 NFS 或 SFTP 服务器,则不需要完成此流程。当您在要备份的节点上设置 ReaR 时,输入服务器信息。
-
默认情况下,NFS 服务器的 Relax 和 Recover (ReaR) IP 地址参数是
192.168.24.1。您必须添加参数tripleo_backup_and_restore_server来设置与您的环境匹配的 IP 地址值。
流程
在 undercloud 节点上,提供 undercloud 凭证:
source stackrc
[stack@undercloud-0 ~]$ source stackrc (undercloud) [stack@undercloud ~]$Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 undercloud 节点上,为备份节点创建一个清单文件:
(undercloud) [stack@undercloud ~]$ cat <<'EOF'> ~/nfs-inventory.yaml [BackupNode] <backup_node> ansible_host=<ip_address> ansible_user=<user> EOF
(undercloud) [stack@undercloud ~]$ cat <<'EOF'> ~/nfs-inventory.yaml [BackupNode] <backup_node> ansible_host=<ip_address> ansible_user=<user> EOFCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将 &
lt;backup_node> , <ip_address> , 和 <user> 替换为应用到您的环境的值。将公共 SSH 密钥从 undercloud 节点复制到备份节点。
ssh-copy-id -i ~/.ssh/id_rsa.pub <backup_node>
(undercloud) [stack@undercloud ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub <backup_node>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
<backup_node>替换为备份节点的路径和名称。在备份节点上配置 NFS 服务器:
openstack undercloud backup --setup-nfs --extra-vars /home/stack/bar-vars.yaml --inventory /home/stack/nfs-inventory.yaml
(undercloud) [stack@undercloud ~]$ openstack undercloud backup --setup-nfs --extra-vars /home/stack/bar-vars.yaml --inventory /home/stack/nfs-inventory.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.2.3. 在 control plane 节点上安装 ReaR 复制链接链接已复制到粘贴板!
在创建 control plane 节点的备份前,在每个 control plane 节点上安装和配置 Relax 和 Recover (ReaR)。
由于一个已知问题,即使 Controller 节点停机,overcloud 节点的 ReaR 备份也会继续。在运行 ReaR 备份前,请确保所有 Controller 节点都在运行。计划在以后的 Red Hat OpenStack Platform (RHOSP)发行版本进行修复。有关更多信息,请参阅 BZ#2077335 - 即使一个控制器无法访问,也会保留 overcloud ctlplane。
先决条件
- 您已在备份节点上安装并配置了 NFS 或 SFTP 服务器。有关创建新 NFS 服务器的详情请参考 第 2.2.2 节 “在备份节点上安装和配置 NFS 服务器”。
流程
在 undercloud 节点上,提供 undercloud 凭证:
source stackrc
[stack@undercloud-0 ~]$ source stackrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您之前还没有这样做,请从安装过程中保存它的位置提取静态 ansible 清单文件:
cp ~/overcloud-deploy/<stack>/tripleo-ansible-inventory.yaml ~/tripleo-inventory.yaml
(undercloud) [stack@undercloud ~]$ cp ~/overcloud-deploy/<stack>/tripleo-ansible-inventory.yaml ~/tripleo-inventory.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<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>
tripleo_backup_and_restore_server: <ip_address> tripleo_backup_and_restore_shared_storage_folder: <backup_dir>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将 <ip_address> 和 <backup_dir> 替换为应用到您的环境的值。默认情况下,
tripleo_backup_and_restore_server参数值为192.168.24.1adtrust
-
将 <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/
tripleo_backup_and_restore_output_url: sftp://<user>:<password>@<backup_node>/ tripleo_backup_and_restore_backup_url: iso:///backup/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 &
lt;user> , <password> , 和 <backup_node> 替换为备份节点 URL 和凭证。
在 control plane 节点上安装 ReaR:
openstack overcloud backup --setup-rear --extra-vars /home/stack/bar-vars.yaml --inventory /home/stack/tripleo-inventory.yaml
(undercloud) [stack@undercloud ~]$ openstack overcloud backup --setup-rear --extra-vars /home/stack/bar-vars.yaml --inventory /home/stack/tripleo-inventory.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您的系统使用 UEFI 引导装载程序,请在 control plane 节点上执行以下步骤:
安装以下工具:
sudo dnf install dosfstools efibootmgr
$ sudo dnf install dosfstools efibootmgrCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
通过将
USING_UEFI_BOOTLOADER参数值0替换为值1,在/etc/rear/local.conf中的 ReaR 配置文件中启用 UEFI 备份。
2.2.4. 配置 Open vSwitch (OVS)接口以进行备份 复制链接链接已复制到粘贴板!
如果您在环境中使用 Open vSwitch (OVS)网桥,则必须在创建 undercloud 或 control plane 节点的备份前手动配置 OVS 接口。恢复过程使用此信息来恢复网络接口。
流程
在
/etc/rear/local.conf文件中,以以下格式添加NETWORKING_PREPARATION_COMMANDS参数:NETWORKING_PREPARATION_COMMANDS=('<command_1>' '<command_2>' ...')NETWORKING_PREPARATION_COMMANDS=('<command_1>' '<command_2>' ...')Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
<command_1> 和 <command_2> 替换为配置网络接口名称或 IP 地址的命令。例如,您可以添加ip link add br-ctlplane type bridge命令来配置 control plane 网桥名称,或者添加ip link set eth0 up命令来设置接口名称。您可以根据网络配置在 参数中添加更多命令。
2.2.5. 创建 control plane 节点的备份 复制链接链接已复制到粘贴板!
要创建 control plane 节点的备份,请使用 openstack overcloud backup 命令。然后,如果节点被破坏或无法访问,您可以使用备份将 control plane 节点恢复到之前的状态。control plane 节点的备份包括在 control plane 节点上运行的数据库的备份。
先决条件
- 您已在备份节点上安装并配置了 NFS 或 SFTP 服务器。有关创建新 NFS 服务器的详情请参考 第 2.2.2 节 “在备份节点上安装和配置 NFS 服务器”。
- 您已在 control plane 节点上安装 ReaR。更多信息请参阅 第 2.2.3 节 “在 control plane 节点上安装 ReaR”。
- 如果您的网络接口使用 OVS 网桥,您已配置 OVS 接口。更多信息请参阅 第 2.2.4 节 “配置 Open vSwitch (OVS)接口以进行备份”。
流程
在每个 control plane 节点上找到
config-drive分区:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
config-drive分区是未挂载的 1M 分区。
在每个 control plane 节点上,以
root用户身份备份每个节点的config-drive分区:dd if=<config_drive_partition> of=/mnt/config-drive
[root@controller-x ~]# dd if=<config_drive_partition> of=/mnt/config-driveCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将
<config_drive_partition> 替换为在第 1 步中的config-drive分区的名称。在 undercloud 节点上,提供 undercloud 凭证:
source stackrc
[stack@undercloud-0 ~]$ source stackrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 创建 control plane 节点的备份:
openstack overcloud backup --inventory /home/stack/tripleo-inventory.yaml
(undercloud) [stack@undercloud ~]$ openstack overcloud backup --inventory /home/stack/tripleo-inventory.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 备份过程在每个 control plane 节点上按顺序运行,而不会破坏您的环境的服务。
2.2.6. 使用 cron 调度 control plane 节点备份 复制链接链接已复制到粘贴板!
您可以使用 Ansible backup-and-restore 角色使用 ReaR 调度 control plane 节点的备份。您可以查看 /var/log/rear-cron 目录中的日志。
先决条件
- 您已在备份节点上安装并配置了 NFS 或 SFTP 服务器。有关创建新 NFS 服务器的详情请参考 第 2.1.4 节 “在备份节点上安装和配置 NFS 服务器”。
- 您已在 undercloud 和 control plane 节点上安装 ReaR。更多信息请参阅 第 2.2.3 节 “在 control plane 节点上安装 ReaR”。
- 在您的备份位置有足够的可用磁盘空间来存储备份。
流程
要调度 control plane 节点的备份,请运行以下命令。默认调度为 Sundays 在午夜:
openstack overcloud backup --cron
openstack overcloud backup --cronCopy to Clipboard Copied! Toggle word wrap Toggle overflow 可选:根据您的部署自定义调度的备份:
要更改默认备份调度,请在
tripleo_backup_and_restore_cron参数上传递不同的 cron 调度:openstack overcloud backup --cron --extra-vars '{"tripleo_backup_and_restore_cron": "0 0 * * 0"}'openstack overcloud backup --cron --extra-vars '{"tripleo_backup_and_restore_cron": "0 0 * * 0"}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要定义在 cron 运行调度备份时添加到 backup 命令中的其他参数,请将
tripleo_backup_and_restore_cron_extra参数传递给 backup 命令,如下例所示:openstack overcloud backup --cron --extra-vars '{"tripleo_backup_and_restore_cron_extra":"--extra-vars bar-vars.yaml --inventory /home/stack/tripleo-inventory.yaml"}'openstack overcloud backup --cron --extra-vars '{"tripleo_backup_and_restore_cron_extra":"--extra-vars bar-vars.yaml --inventory /home/stack/tripleo-inventory.yaml"}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要更改执行备份的默认用户,请将
tripleo_backup_and_restore_cron_user参数传递给 backup 命令,如下例所示:openstack overcloud backup --cron --extra-vars '{"tripleo_backup_and_restore_cron_user": "root"}openstack overcloud backup --cron --extra-vars '{"tripleo_backup_and_restore_cron_user": "root"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow