第 2 章 使用 Relax-and-Recover 工具备份 undercloud 和 control plane 节点


升级或更新 Red Hat Openstack Platform (RHOSP)时,您必须备份 undercloud 节点和 control plane 节点。您可以使用 Relax-and-Recover (ReaR)工具备份 undercloud 节点和 control plane 节点。要使用 ReaR 工具备份和恢复 undercloud 和 control plane 节点,您必须完成以下步骤:

  1. 备份 undercloud 节点
  2. 备份 control plane 节点
  3. 恢复 undercloud 和 control plane 节点

要备份 undercloud 节点,请配置备份节点,在 undercloud 节点上安装 Relax-and-Recover 工具,然后创建备份镜像。您可以将备份创建作为常规环境维护的一部分。

另外,您必须在执行更新或升级前备份 undercloud 节点。如果在更新或升级过程中出现错误,您可以使用备份将 undercloud 节点恢复到之前的状态。

2.1.1. 支持的备份格式和协议

undercloud 和备份和恢复过程使用开源工具 Relax-and-Recover (ReaR)创建和恢复可引导备份镜像。ReaR 使用 Bash 编写,支持多个镜像格式和多个传输协议。

以下列表显示了 Red Hat OpenStack Platform 在使用 ReaR 备份和恢复 undercloud 和 control plane 时支持的备份格式和协议。

可引导介质格式
  • ISO
文件传输协议
  • SFTP
  • NFS

2.1.2. 配置备份存储位置

在创建 control plane 节点的备份前,在 bar-vars.yaml 环境文件中配置备份存储位置。此文件存储要传递给备份执行的键值参数。

流程

  1. stack 用户的身份登录 undercloud。
  2. Source stackrc 文件:

    $ source ~/stackrc
    Copy to Clipboard Toggle word wrap
  3. 创建 bar-vars.yaml 文件:

    touch /home/stack/bar-vars.yaml
    Copy to Clipboard Toggle word wrap
  4. bar-vars.yaml 文件中,配置备份存储位置:

    1. 如果使用 NFS 服务器,请添加以下参数并设置 NFS 服务器的 IP 地址和备份存储文件夹:

      tripleo_backup_and_restore_server: <ip_address>
      tripleo_backup_and_restore_shared_storage_folder: <backup_dir>
      Copy to Clipboard Toggle word wrap
      • 将 <ip_address> 和 <backup_dir> 替换为应用到您的环境的值。默认情况下,tripleo_backup_and_restore_server 参数值为 192.168.24.1
    2. 如果您使用 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/
      Copy to Clipboard Toggle word wrap

      将 & lt;user& gt; , & lt;password & gt; , 和 <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>
    Copy to Clipboard Toggle word wrap

    &lt;password> 替换为您要用来加密备份的密码。

2.1.4. 在备份节点上安装和配置 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 地址值。

流程

  1. 在 undercloud 节点上,提供 undercloud 凭证:

    [stack@undercloud-0 ~]$ source stackrc
    (undercloud) [stack@undercloud ~]$
    Copy to Clipboard Toggle word wrap
  2. 在 undercloud 节点上,为备份节点创建一个清单文件:

    (undercloud) [stack@undercloud ~]$ cat <<'EOF'> ~/nfs-inventory.yaml
    [BackupNode]
    <backup_node> ansible_host=<ip_address> ansible_user=<user>
    EOF
    Copy to Clipboard Toggle word wrap

    将 & lt;backup_node&gt; , < ip_address &gt ; , 和 <user > 替换为应用到您的环境的值。

  3. 将公共 SSH 密钥从 undercloud 节点复制到备份节点。

    (undercloud) [stack@undercloud ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub <backup_node>
    Copy to Clipboard Toggle word wrap

    <backup_node> 替换为备份节点的路径和名称。

  4. 在备份节点上配置 NFS 服务器:

    (undercloud) [stack@undercloud ~]$ openstack undercloud backup --setup-nfs --extra-vars /home/stack/bar-vars.yaml --inventory /home/stack/nfs-inventory.yaml
    Copy to Clipboard Toggle word wrap

2.1.5. 在 undercloud 节点上安装 ReaR

在创建 undercloud 节点的备份前,在 undercloud 上安装和配置 Relax 和 Recover (ReaR)。

先决条件

流程

  1. 在 undercloud 节点上,提供 undercloud 凭证:

    [stack@undercloud-0 ~]$ source stackrc
    Copy to Clipboard Toggle word wrap
  2. 如果您之前还没有这样做,请从安装过程中保存它的位置提取静态 ansible 清单文件:

    (undercloud) [stack@undercloud ~]$ cp ~/overcloud-deploy/<stack>/tripleo-ansible-inventory.yaml ~/tripleo-inventory.yaml
    Copy to Clipboard Toggle word wrap
    • <stack> 替换为您的堆栈的名称。默认情况下,堆栈的名称是 overcloud
  3. 在 undercloud 节点上安装 ReaR:

    (undercloud) [stack@undercloud ~]$ openstack undercloud backup --setup-rear --extra-vars /home/stack/bar-vars.yaml --inventory /home/stack/tripleo-inventory.yaml
    Copy to Clipboard Toggle word wrap
  4. 如果您的系统使用 UEFI 引导装载程序,请在 undercloud 节点上执行以下步骤:

    1. 安装以下工具:

      $ sudo dnf install dosfstools efibootmgr
      Copy to Clipboard Toggle word wrap
    2. 通过将 USING_UEFI_BOOTLOADER 参数值 0 替换为值 1,在 /etc/rear/local.conf 中的 ReaR 配置文件中启用 UEFI 备份。

您可以在常规备份调度中包含独立 undercloud 数据库备份,以提供额外的数据安全性。undercloud 节点的完整备份包括 undercloud 节点的数据库备份。但是,如果完整 undercloud 恢复失败,您可能会丢失对完整 undercloud 备份的数据库部分的访问。在这种情况下,您可以从独立 undercloud 数据库备份中恢复数据库。

您可以与 ReaR 工具和 Snapshot 和 Revert 工具结合使用创建独立 undercloud 数据库备份。但是,建议您备份整个 undercloud。有关创建 undercloud 节点备份的更多信息,请参阅创建 undercloud 节点的备份

流程

  • 创建 undercloud 节点的数据库备份:

    openstack undercloud backup --db-only
    Copy to Clipboard Toggle word wrap

    db 备份文件存储在 /home/stack 中,其名称为 openstack-backup-mysql-<timestamp>.sql

2.1.7. 配置 Open vSwitch (OVS)接口以进行备份

如果您在环境中使用 Open vSwitch (OVS)网桥,则必须在创建 undercloud 或 control plane 节点的备份前手动配置 OVS 接口。恢复过程使用此信息来恢复网络接口。

流程

  • /etc/rear/local.conf 文件中,以以下格式添加 NETWORKING_PREPARATION_COMMANDS 参数:

    NETWORKING_PREPARATION_COMMANDS=('<command_1>' '<command_2>' ...')
    Copy to Clipboard Toggle word wrap

    <command_ 1& gt; 和 <command_ 2> 替换为配置网络接口名称或 IP 地址的命令。例如,您可以添加 ip link add br-ctlplane type bridge 命令来配置 control plane 网桥名称,或者添加 ip link set eth0 up 命令来设置接口名称。您可以根据网络配置在 参数中添加更多命令。

2.1.8. 创建 undercloud 节点的备份

要创建 undercloud 节点的备份,请使用 openstack undercloud backup 命令。然后,当节点变得损坏或无法访问时,您可以使用备份将 undercloud 节点恢复到之前的状态。undercloud 节点的备份包括 undercloud 节点上运行的数据库的备份。

注意

建议您按照以下流程创建 undercloud 节点的备份。但是,如果您已完成 创建 undercloud 节点的独立数据库备份,您可以跳过这个过程。

先决条件

步骤

  1. stack 用户的身份登录 undercloud。
  2. 检索 MySQL root 密码:

    [stack@undercloud ~]$ PASSWORD=$(sudo /bin/hiera -c /etc/puppet/hiera.yaml mysql::server::root_password)
    Copy to Clipboard Toggle word wrap
  3. 创建 undercloud 节点的数据库备份:

    [stack@undercloud ~]$ sudo podman exec mysql bash -c "mysqldump -uroot -p$PASSWORD --opt --all-databases" | sudo tee /root/undercloud-all-databases.sql
    Copy to Clipboard Toggle word wrap
  4. 在 undercloud 节点上,提供 undercloud 凭证:

    [stack@undercloud-0 ~]$ source stackrc
    Copy to Clipboard Toggle word wrap
  5. 创建 undercloud 节点的备份:

    (undercloud) [stack@undercloud ~]$ openstack undercloud backup
    --inventory /home/stack/tripleo-inventory.yaml
    Copy to Clipboard Toggle word wrap

2.1.9. 使用 cron 调度 undercloud 节点备份

您可以使用 Ansible backup-and-restore 角色使用 ReaR 调度 undercloud 节点的备份。您可以查看 /var/log/rear-cron 目录中的日志。

先决条件

流程

  1. 要调度 control plane 节点的备份,请运行以下命令。默认调度为 Sundays 在午夜:

    openstack undercloud backup --cron
    Copy to Clipboard Toggle word wrap
  2. 可选:根据您的部署自定义调度的备份:

    • 要更改默认备份调度,请在 tripleo_backup_and_restore_cron 参数上传递不同的 cron 调度:

      openstack undercloud backup --cron --extra-vars
      '{"tripleo_backup_and_restore_cron": "0 0 * * 0"}'
      Copy to Clipboard Toggle word wrap
    • 要定义在 cron 运行调度备份时添加到 backup 命令中的其他参数,请将 tripleo_backup_and_restore_cron_extra 参数传递给 backup 命令,如下例所示:

      openstack undercloud backup --cron --extra-vars '{"tripleo_backup_and_restore_cron_extra":"--extra-vars bar-vars.yaml --inventory /home/stack/tripleo-inventory.yaml"}'
      Copy to Clipboard Toggle word wrap
    • 要更改执行备份的默认用户,请将 tripleo_backup_and_restore_cron_user 参数传递给 backup 命令,如下例所示:

      openstack undercloud backup --cron --extra-vars '{"tripleo_backup_and_restore_cron_user": "root"}
      Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat