1.2. 使用策略配置 Red Hat OpenShift Virtualization 的备份和恢复
使用 OpenShift APIs for Data Protection (OADP) 来备份和恢复虚拟机。备份虚拟机后,您可以将其还原到中心集群或托管集群上。
这些适用于 OpenShift 虚拟化的 Red Hat 高级集群管理策略支持以下备份和恢复存储选项:
- 容器存储接口 (CSI) 备份
- 使用 DataMover 进行容器存储接口 (CSI) 备份
他们不支持以下选项:
- 文件系统备份和恢复
- 卷快照备份和恢复
要配置策略,并启用备份计划或运行虚拟机的还原操作,请完成以下部分:
1.2.1. 备份和恢复虚拟机 复制链接链接已复制到粘贴板!
您可以通过完成以下步骤来备份集群上运行的虚拟机或还原集群上的虚拟机:
-
通过将
MultiClusterHub中的cluster-backup参数设置为true,在中心集群上启用备份组件。 要将策略部署到
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-virt-restore-config部分所述,通过更新acm-dr-restore-configConfigMap 来恢复虚拟机。
-
通过将
1.2.2. 中心集群上安装的虚拟化策略 复制链接链接已复制到粘贴板!
启用备份操作员时,将在中心集群上安装一组 Red Hat 高级集群管理策略和ConfigMap 。禁用策略或将其从集群中移除时,该策略创建的所有资源都将被移除。要了解不同类型的保险政策,请完成以下部分:
1.2.2.1. 安装策略 复制链接链接已复制到粘贴板!
acm-dr-virt-install安装策略会在放置此策略的集群上安装 OADP 并配置oadp.openshift.io.DataProtectionApplication资源。如果集群是中心集群,它会验证 OADP 是否安装在open-cluster-management-backup命名空间中,以及DataProtectionApplication资源是否存在并具有所需的配置。该策略不会尝试在中心集群上安装 OADP 或创建DataProtectionApplication资源。
当您在MultiClusterHub资源上启用集群备份选项时,备份图表会安装 OADP。启用集群备份选项后,将在中心集群上创建数据保护应用程序。
请参阅以下安装策略模板和说明:
- 安装策略模板
| 模板 | 描述 |
|
|
验证由 |
|
| 验证集群上是否安装了 OADP 版本,以及该版本是否与策略安装的版本匹配。 |
|
|
验证 |
|
|
如果找不到 OADP 安装命名空间,则创建该命名空间。复制 OADP 密钥并安装 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 中由acm-dr-virt-config ConfigMap 的restore_hub_config_name属性标识的信息,在集群上创建 Velero 恢复资源。
请参阅以下恢复策略模板和说明:
- 恢复策略模板
| 模板 | 描述 |
|
|
验证具有 |
|
|
如果 |
1.2.3. 使用ConfigMap定义策略 复制链接链接已复制到粘贴板!
在中心集群上安装策略时,将在中心集群的open-cluster-management-backup命名空间中创建以下ConfigMap 。当您将虚拟化策略放置在中心或受管集群上时,这些ConfigMap定义了虚拟化策略的备份和恢复配置。
1.2.3.1. 定义acm-dr-virt-config配置映射 复制链接链接已复制到粘贴板!
acm-dr-virt-config ConfigMap 定义了 OADP 配置以及与备份或恢复操作相关的其他设置。您可以将此资源的名称用作acm-virt-config标签的值,该标签设置在放置策略的 ManagedCluter上。您还可以创建一个新的ConfigMap资源,以acm-dr-virt-config作为示例,然后使用新的ConfigMap资源将虚拟化策略放置在集群上。
要将虚拟化策略部署到托管集群或中心集群上,请完成以下步骤:
使用
acm-dr-virt-config或在open-cluster-management-backup命名空间的中心集群上创建一个新的ConfigMap资源,以acm-dr-virt-configConfigMap 为例。在这个例子中,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 容器平台集群的版本。使用此属性可以覆盖默认值。 | 字符串 | None | 是 |
|
|
OADP通道名称。设置此属性以进行自定义安装,例如: | 字符串 |
| 是 |
|
|
OADP订阅。设置此属性以进行自定义安装,例如: | 字符串 |
| 是 |
|
|
OADP订阅来源。设置此属性以进行自定义安装,例如: | 字符串 |
| 是 |
|
| OADP订阅开始CSV。 | 字符串 | None | 是 |
|
| OADP安装计划。 | 字符串 | 自动 | 是 |
|
| OADP 在受管集群上的安装位置的命名空间。 | 字符串 | None | 否 |
|
|
在受管集群上使用的 OADP 密钥的名称。中心集群的 | 字符串 | None | 否 |
|
|
设置 Velero 凭据名称时,托管集群上的 OADP | JSON | None | 否 |
|
|
在受管集群上创建的 | 字符串 | None | 否 |
|
|
在托管集群上创建 DataProtectionApplication 时,定义 | JSON | None | 否 |
-
acm-dr-virt-backup策略的 ConfigMap 属性
| Name | 描述 | 类型 | 默认值 | 选填 |
|
| 备份过期时间。 | 字符串 |
| 是 |
|
|
设置为 | 字符串 | False | 是 |
|
|
用于定义有效 cron 作业计划的 ConfigMap 的名称。在 | 字符串 | None | 是 |
-
acm-dr-virt-restore策略的 ConfigMap 属性
| Name | 描述 | 类型 | 默认值 | 选填 |
|
|
用于定义还原操作的 ConfigMap 的名称。中心集群的 | 字符串 | None | 否 |
1.2.3.2. 定义acm-dr-virt-schedule-cron配置映射 复制链接链接已复制到粘贴板!
使用acm-dr-virt-schedule-cron ConfigMap 定义在安排虚拟机备份时要使用的有效 cron 作业计划。acm-dr-virt-schedule-cron ConfigMap 由open-cluster-management-backup命名空间中的中心集群备份组件创建,并包含以下 YAML:
您可以使用acm-dr-virt-schedule-cron ConfigMap 创建的任何计划来设置kubevirt.io.VirtualMachine的备份计划。例如,如果您想每天早上 8 点备份虚拟机,请将以下标签添加到虚拟机资源:
由于此acm-dr-virt-schedule-cron ConfigMap 由中心集群备份组件创建和管理,因此您无法更改任何现有的 cron 属性或删除它们。内容核对完成后,这些属性将被重新创建。你只能在现有属性的基础上添加新属性。例如,如果您想创建一个 cron 作业,使其每周六运行,请将以下标签添加到现有的acm-dr-virt-schedule-cron属性中: every_sunday: "0 0 * * SAT" 。
1.2.3.3. 定义acm-dr-virt-restore-config配置映射 复制链接链接已复制到粘贴板!
使用acm-dr-virt-restore-config ConfigMap 定义acm-dr-virt-restore策略要实现的恢复操作。使用open-cluster-management-backup命名空间中的 hub cluster backup 组件创建 ConfigMap。
有关完整恢复操作的示例,请参见以下 YAML 示例:
- 1
2a054d24-3235-4249-9c81-f58ebc6110c7是恢复操作完成的集群 ID。acm-rho-virt-schedule-every-10-hours-20250120230438是用于恢复操作示例的备份的名称。- 2
restore-20250120230438是此次还原操作创建的还原资源的名称。- 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属性设置为空值,则由acm-dr-virt-restore策略在集群上创建的具有clusterID的恢复资源将被删除。 -
如果将
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策略后,该策略在恢复集群上创建的所有资源都会被清理,并在再次启用该策略时重新创建。