1.2. 使用策略为 Red Hat OpenShift Virtualization 配置备份和恢复
使用 OpenShift API for Data Protection (OADP)来备份和恢复虚拟机。备份虚拟机后,您可以在 hub 或受管集群中恢复它。
这些 Red Hat Advanced Cluster Management 策略支持以下备份和恢复存储选项:
- 容器存储接口 (CSI) 备份
- 使用 DataMover 进行容器存储接口 (CSI) 备份
它们不支持以下选项:
- 文件系统备份和恢复
- 卷快照备份和恢复
要配置策略,并为虚拟机启用备份调度或运行恢复操作,请完成以下部分:
1.2.1. 备份和恢复虚拟机 复制链接链接已复制到粘贴板!
您可以通过完成以下步骤备份集群中运行的虚拟机,或在集群中恢复虚拟机:
-
通过将
MultiClusterHub中的cluster-backup参数设置为true,在 hub 集群上启用备份组件。 要将策略放在
cluster-name集群中,请通过应用以下 YAML 示例将acm-virt-config标签添加到ManagedCluster资源中:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 通过标签注解的
acm-dr-virt-config是一个acm-virt-configConfigMap。阅读acm-dr-virt-configConfigMap 部分,了解如何配置 OADP 和备份存储位置。
根据您要备份还是恢复您的虚拟机,完成以下步骤:
-
通过将
cluster.open-cluster-management.io/backup-vm添加到kubevirt.io.VirtualMachine资源中来备份您的虚拟机。您的kubevirt.io.VirtualMachine资源可能类似以下 YAML 示例:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
通过更新
acm-dr-restore-configConfigMap 来恢复您的虚拟机,如acm-dr-virt-restore-config部分所述。
-
通过将
1.2.2. 在 hub 集群上安装的虚拟化策略 复制链接链接已复制到粘贴板!
当您启用备份 Operator 时,一组 Red Hat Advanced Cluster Management 策略和 ConfigMap 都会在 hub 集群中安装。当您禁用策略或从集群中删除策略时,创建的所有资源都会被删除。要了解更多有关可用的策略类型的信息,请完成以下部分:
1.2.2.1. 安装策略 复制链接链接已复制到粘贴板!
acm-dr-virt-install 安装策略安装 OADP,并在放置此策略的集群中配置 oadp.openshift.io.DataProtectionApplication 资源。如果集群是一个 hub 集群,它会验证在 open-cluster-management-backup 命名空间中安装了 OADP,并且 DataProtectionApplication 资源存在并具有所需的配置。该策略不会试图在 hub 集群上安装 OADP 或创建 DataProtectionApplication 资源。
当您在 MultiClusterHub 资源中启用 cluster-backup 选项时,备份图表会安装 OADP。启用 cluster-backup-option 时,您可以在 hub 集群中创建 DataProtectionApplication。
请参阅以下安装策略模板和描述:
- 安装策略模板
| 模板 | 描述 |
|
|
验证由 |
|
| 验证集群中是否安装了 OADP 版本,并且与策略安装的版本匹配。 |
|
|
验证 |
|
|
如果没有找到此命名空间,创建安装 OADP 的命名空间。复制 OADP secret 并安装 OADP,但只适用于受管集群。创建由 |
1.2.2.2. 备份策略 复制链接链接已复制到粘贴板!
acm-dr-virt-backup 备份策略备份带有标签 cluster.open-cluster-management.io/backup-vm: schedule_cron_name 的 kubevirt.io.VirtualMachine 资源。
请参阅以下备份策略模板和描述:
- 备份策略模板
| 模板 | 描述 |
|
|
如果有虚拟机 |
|
|
如果调度没有暂停,它将验证状态为 |
|
|
使用 |
1.2.2.3. 恢复策略 复制链接链接已复制到粘贴板!
acm-dr-virt-restore 恢复策略根据 UID 恢复 kubevirt.io.VirtualMachine 资源。策略使用 ConfigMap 中的信息在集群中创建 Velero 恢复资源,这些资源由 acm-dr-virt-config ConfigMap 中的 restore_hub_config_name 属性标识。
请参阅以下恢复策略模板和描述:
- 恢复策略模板
| 模板 | 描述 |
|
|
使用 |
|
|
如果 |
1.2.3. 使用 ConfigMap定义策略 复制链接链接已复制到粘贴板!
当您在 hub 集群上安装策略时,会在 hub 集群上在 open-cluster-management-backup 命名空间中创建以下 ConfigMap。当您将虚拟化策略放在 hub 或受管集群中时,这些 ConfigMap 为虚拟化策略定义备份和恢复配置。
1.2.3.1. 定义 acm-dr-virt-config ConfigMap 复制链接链接已复制到粘贴板!
acm-dr-virt-config ConfigMap 定义 OADP 配置和其他与备份或恢复操作相关的设置。您可以使用此资源名称作为 acm-virt-config 标签的值,该标签在放置策略的 ManagedCluter 中设置。您还可以创建一个使用 acm-dr-virt-config 作为示例的新 ConfigMap 资源,然后使用新的 ConfigMap 资源将虚拟化策略放在集群中。
要将虚拟化策略放在受管集群或 hub 集群中,请完成以下步骤:
使用
acm-dr-virt-config或使用acm-dr-virt-configConfigMap作为示例,在open-cluster-management-backup命名空间中的 hub 集群上创建一个新的 ConfigMap 资源。在本例中,ConfigMap 的名称为acm-dr-virt-config-new。-
更新
dpa_spec部分,以匹配您要存储 OADP 创建的备份的存储位置。这是所需的更新。 -
可选: 更新
acm-dr-virt-config-newConfigMap 中的其他属性,如 OADP 版本或频道。
-
更新
-
将
acm-virt-config=acm-dr-virt-config-new标签添加到ManagedCluster资源。acm-virt-config标签的值是您创建的 ConfigMap 的名称。
有关将虚拟化备份标签设置为使用 acm-dr-virt-config-new ConfigMap 的 ManagedCluster 资源示例,请参阅以下 YAML 示例:
如需更多信息,请参阅以下表:
-
acm-dr-virt-install策略的 ConfigMap 属性
| Name | 描述 | 类型 | 默认值 | 选填 |
|
| 频道默认为支持的 OADP 版本,它基于 OpenShift Container Platform 集群的版本。使用此属性覆盖默认值。 | 字符串 | None | 是 |
|
|
OADP 频道名称。为自定义安装设置此属性,例如: | 字符串 |
| 是 |
|
|
OADP 订阅.为自定义安装设置此属性,例如: | 字符串 |
| 是 |
|
|
OADP 订阅源。为自定义安装设置此属性,例如: | 字符串 |
| 是 |
|
| OADP 订阅 startCSV. | 字符串 | None | 是 |
|
| OADP 安装计划。 | 字符串 | 自动 | 是 |
|
| 在受管集群中安装 OADP 的命名空间。 | 字符串 | None | 否 |
|
|
在受管集群中使用的 OADP secret 的名称。具有此名称的 Secret 必须存在于 | 字符串 | None | 否 |
|
|
设置 Velero 凭证名称时,在受管集群中 OADP | JSON | None | 否 |
|
|
在受管集群中创建的 | 字符串 | None | 否 |
|
|
在受管集群中创建时定义 | JSON | None | 否 |
-
acm-dr-virt-backup策略的 ConfigMap 属性
| Name | 描述 | 类型 | 默认值 | 选填 |
|
| 备份过期时间。 | 字符串 |
| 是 |
|
|
设置为 | 字符串 | False | 是 |
|
|
用于定义有效 cron 任务调度的 ConfigMap 名称。具有此名称的 ConfigMap 必须存在于 | 字符串 | None | 是 |
-
acm-dr-virt-restore策略的 ConfigMap 属性
| Name | 描述 | 类型 | 默认值 | 选填 |
|
|
用于定义恢复操作的 ConfigMap 的名称。具有此名称的 ConfigMap 必须存在于 | 字符串 | None | 否 |
1.2.3.2. 定义 acm-dr-virt-schedule-cron ConfigMap 复制链接链接已复制到粘贴板!
使用 acm-dr-virt-schedule-cron ConfigMap 定义在调度虚拟机备份时要使用的有效的 cron 作业调度。acm-dr-virt-schedule-cron ConfigMap 由 open-cluster-management-backup 命名空间中的 hub 集群备份组件创建,包括以下 YAML:
您可以使用 acm-dr-virt-schedule-cron ConfigMap 创建的任何调度来为 kubevirt.io.VirtualMachine 设置备份调度。例如,如果要每天的 8 点备份虚拟机,请在虚拟机资源中添加以下标签:
由于此 acm-dr-virt-schedule-cron ConfigMap 由 hub 集群备份组件创建和管理,所以您无法更改任何现有的 cron 属性或删除它们。当内容被协调时,会重新创建这些属性。您只能在现有属性中添加新属性。例如,如果要创建一个 cron 作业来每 Saturday 运行,请在现有的 acm-dr-virt-schedule-cron 属性中添加以下标签: every_sunday: "0 0 * SAT"。
1.2.3.3. 定义 acm-dr-virt-restore-config ConfigMap 复制链接链接已复制到粘贴板!
使用 acm-dr-virt-restore-config ConfigMap 定义由 acm-dr-virt-restore 策略实施的恢复操作。使用 open-cluster-management-backup 命名空间中的 hub 集群备份组件来创建 ConfigMap。
如需完整的恢复操作示例,请参阅以下 YAML 示例:
- 1
2a054d24-3235-4249-9c81-f58ebc6110c7是恢复操作完成的集群 ID。acm-rho-virt-schedule-every-10-hours-20250120230438是用于恢复操作示例的备份名称。- 2
restore-20250120230438是Restore资源的名称,因这个恢复操作而创建。- 3
2a054d24-3235-4249-9c81-f58ebc6110c7是使用acm-rho-virt-schedule-every-10-hours-20250120230438备份备份的虚拟机 UID。- 4
namespaceMapping是一个可选属性,用于恢复与初始资源不同的命名空间中的资源。所有未包含在映射中的源命名空间都会恢复到同一名称的命名空间。backup-ns-1=restore-ns-1 backup-ns-2=restore-ns-2是一个以空格分隔的命名空间映射列表。在本例中,在backup-ns-1命名空间中创建的备份资源会在restore-ns-1命名空间中恢复。如果restore-ns-1不存在,会在恢复集群中创建它。同样,在backup-ns-2中创建的资源会在restore-ns-2命名空间中恢复。
1.2.4. 使用恢复策略创建恢复操作 复制链接链接已复制到粘贴板!
当您为恢复操作安装虚拟化策略时,请考虑以下情况:
-
如果将
acm-dr-virt-restore-configConfigMap 中的clusterID_restoreName属性设置为空值,则由带有clusterID的集群中的acm-dr-virt-restore策略创建的恢复资源会被删除。 -
如果将
acm-dr-virt-restore-configConfigMap 中的clusterID_restoreName属性设置为非空值,则acm-dr-virt-restore策略会创建一个 VeleroRestore资源。Velero 恢复资源的名称与clusterID_restoreName值匹配。如果从恢复集群中删除带有此名称的恢复资源,acm-dr-virt-restore策略会重新创建资源,这会导致恢复操作。 考虑以下操作:
- 如果您不想再次运行恢复,请不要删除恢复。
-
当恢复操作被验证为启动时,删除
acm-dr-virt-restore-configConfigMap 上的clusterID_restoreName参数的值。这样做可防止在禁用并再次启用acm-dr-virt-restore策略时,需要重新运行恢复操作。当您禁用acm-dr-virt-restore策略时,在恢复集群中创建的所有资源都会在再次启用策略时被清理和重新创建。