搜索

2.2. 使用 Relax-and-Recover 工具备份 control plane 节点

download PDF

要备份 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 地址值。

流程

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

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

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

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

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

    (undercloud) [stack@undercloud ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub <backup_node>

    <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

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

先决条件

流程

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

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

    (undercloud) [stack@undercloud ~]$ cp ~/overcloud-deploy/<stack>/tripleo-ansible-inventory.yaml ~/tripleo-inventory.yaml
    • <stack> 替换为您的堆栈的名称。默认情况下,堆栈的名称是 overcloud
  3. 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 adtrust
    • 如果您使用 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/

      将 & lt;user& gt; , & lt;password & gt; , 和 <backup_node > 替换为备份节点 URL 和凭证。

  4. 在 control plane 节点上安装 ReaR:

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

    1. 安装以下工具:

      $ sudo dnf install dosfstools efibootmgr
    2. 通过将 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>' ...')

    <command_ 1& gt; 和 <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 节点上运行的数据库的备份。

先决条件

流程

  1. 在每个 control plane 节点上找到 config-drive 分区:

    [stack@undercloud-0 ~]$ lsblk
    NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    vda    253:0    0   55G  0 disk
    ├─vda1 253:1    0    1M  0 part            1
    ├─vda2 253:2    0  100M  0 part /boot/efi
    └─vda3 253:3    0 54.9G  0 part /
    1
    config-drive 分区是未挂载的 1M 分区。
  2. 在每个 control plane 节点上,以 root 用户身份备份每个节点的 config-drive 分区:

    [root@controller-x ~]# dd if=<config_drive_partition> of=/mnt/config-drive

    <config_drive_partition > 替换为在第 1 步中的 config-drive 分区的名称。

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

    [stack@undercloud-0 ~]$ source stackrc
  4. 创建 control plane 节点的备份:

    (undercloud) [stack@undercloud ~]$ openstack overcloud backup --inventory /home/stack/tripleo-inventory.yaml

    备份过程在每个 control plane 节点上按顺序运行,而不会破坏您的环境的服务。

2.2.6. 使用 cron 调度 control plane 节点备份

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

先决条件

流程

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

    openstack overcloud backup --cron
  2. 可选:根据您的部署自定义调度的备份:

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

      openstack overcloud backup --cron --extra-vars
      '{"tripleo_backup_and_restore_cron": "0 0 * * 0"}'
    • 要定义在 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"}'
    • 要更改执行备份的默认用户,请将 tripleo_backup_and_restore_cron_user 参数传递给 backup 命令,如下例所示:

      openstack overcloud backup --cron --extra-vars '{"tripleo_backup_and_restore_cron_user": "root"}
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.