1.3. 使用 Red Hat Advanced Cluster Management 策略为 Red Hat OpenShift Virtualization 配置备份和恢复
使用 Red Hat Advanced Cluster Management 备份和恢复组件来安装 Red Hat Advanced Cluster Management 策略,用于备份和恢复 OpenShift Virtualization 资源。使用这些策略,您可以使用 OpenShift APIS 进行数据保护(OADP)来备份和恢复虚拟机。备份虚拟机后,您可以在 hub 集群或受管集群中运行并恢复它。
这些 Red Hat Advanced Cluster Management 策略支持以下备份和恢复存储选项:
- 容器存储接口 (CSI) 备份
- 使用 DataMover 进行容器存储接口 (CSI) 备份
它们不支持以下选项:
- 文件系统备份和恢复
- 卷快照备份和恢复
要配置策略,并为虚拟机启用备份调度或运行恢复操作,请完成以下部分:
1.3.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.3.2. 在 hub 集群上安装的虚拟化策略 复制链接链接已复制到粘贴板!
当您启用备份 Operator 时,一组 Red Hat Advanced Cluster Management 策略和 ConfigMap 都会在 hub 集群中安装。当您禁用策略或从集群中删除策略时,创建的所有资源都会被删除。要了解更多有关您可用的不同类型的策略,请完成以下部分:
1.3.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.3.2.2. 备份策略 复制链接链接已复制到粘贴板!
acm-dr-virt-backup 备份策略备份带有标签 cluster.open-cluster-management.io/backup-vm: schedule_cron_name 的 kubevirt.io.VirtualMachine 资源。
请参阅以下备份策略模板和描述:
- 备份策略模板
| 模板 | 描述 |
|
|
如果有虚拟机 |
|
|
如果调度没有暂停,它将验证状态为 |
|
|
使用 |
1.3.2.3. 恢复策略 复制链接链接已复制到粘贴板!
acm-dr-virt-restore 恢复策略根据 UID 恢复 kubevirt.io.VirtualMachine 资源。策略使用由 acm-dr-virt-config ConfigMap 中的 restore_hub_config_name 属性标识的 ConfigMap 中创建 velero 恢复资源。
请参阅以下恢复策略模板和描述:
- 恢复策略模板
| 模板 | 描述 |
|
|
使用 |
|
|
如果 |
1.3.3. 使用 ConfigMap定义策略 复制链接链接已复制到粘贴板!
当您在 hub 集群上安装策略时,会在 hub 集群上在 open-cluster-management-backup 命名空间中创建以下 ConfigMap。当您将虚拟化策略放在 hub 或受管集群中时,这些 ConfigMap 为虚拟化策略定义备份和恢复配置。
1.3.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或在open-cluster-management-backup命名空间中的 hub 集群上创建新ConfigMap,使用acm-dr-virt-configConfigMap作为示例。在本例中,名称是ConfigMapacm-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 任务调度的 | 字符串 | None | 是 |
-
acm-dr-virt-restore策略的ConfigMap属性
| Name | 描述 | 类型 | 默认值 | 选填 |
|
|
用于定义恢复操作的 | 字符串 | None | 否 |
1.3.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.3.3.3. 定义 acm-dr-virt-restore-config ConfigMap 复制链接链接已复制到粘贴板!
使用 acm-dr-virt-restore-config ConfigMap 定义由 acm-dr-virt-restore 策略代表的恢复操作。ConfigMap 由 open-cluster-management-backup 命名空间中的 hub 备份组件创建。
如需完整的恢复操作示例,请参阅以下 YAML 示例:
1.3.4. 使用恢复策略创建恢复操作 复制链接链接已复制到粘贴板!
当您为恢复操作安装虚拟化策略时,请考虑以下情况:
-
如果将
acm-dr-virt-restore-configConfigMap中的clusterID_restoreName属性设置为空值,则由带有clusterID的集群中的acm-dr-virt-restore策略创建的恢复资源会被删除。 -
如果将
acm-dr-virt-restore-configConfigMap中的clusterID_restoreName属性设置为非空值,则acm-dr-virt-restore策略会创建一个 velero Restore 资源。此 velero 恢复资源的名称与clusterID_restoreName值匹配。如果从恢复集群中删除带有此名称的恢复资源,acm-dr-virt-restore策略会重新创建资源,这会导致恢复操作。 考虑以下操作:
- 如果您不想再次运行恢复,请不要删除恢复。
-
在验证恢复操作成功完成后,在
acm-dr-virt-restore-configConfigMap 上将clusterID_restoreName设置为空。这样做可防止在禁用并再次启用acm-dr-virt-restore策略时,需要重新运行恢复操作。当acm-dr-virt-restore策略时,在恢复集群中创建的所有资源都会在策略再次启用时被清理和重新创建。