This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.14.3. 备份虚拟机
您可以通过创建一个 Backup
自定义资源 (CR) 来备份虚拟机(VM)
Backup
CR 执行以下操作:
- 通过在 S3 兼容对象存储上创建存档文件来备份 OpenShift Virtualization 资源,如 Multicloud Object Gateway、Noobaa 或 Minio。
使用以下选项之一备份虚拟机磁盘:
- 启用 CSI 的云存储上的 容器存储接口(CSI)快照,如 Ceph RBD 或 Ceph FS。
- 对象存储上的 Restic 文件系统备份。
OADP 提供备份 hook,以便在备份操作前冻结虚拟机文件系统,并在备份完成后取消解冻。
kubevirt-controller
使用注解创建 virt-launcher
pod,使 Velero 可以在备份操作前和之后运行 virt-freezer
二进制文件。
freeze
和 unfreeze
API 是虚拟机快照 API 的子资源。有关详细信息,请参阅关于虚拟机快照。
您可以在 Backup
CR 中添加 hook,以便在备份操作前或之后在特定虚拟机上运行命令。
您可以通过创建一个 Schedule
CR 而不是 Backup
CR 来调度备份。
14.3.1. 创建备份 CR 复制链接链接已复制到粘贴板!
您可以通过创建 Backup
备份自定义资源(CR)来备份 Kubernetes 镜像、内部镜像和持久性卷(PV)。
先决条件
- 您必须安装用于数据保护(OADP)Operator 的 OpenShift API。
-
DataProtectionApplication
CR 必须处于Ready
状态。 备份位置先决条件:
- 您必须为 Velero 配置 S3 对象存储。
-
您必须在
DataProtectionApplication
CR 中配置了一个备份位置。
快照位置先决条件:
- 您的云供应商必须具有原生快照 API 或支持 Container Storage Interface(CSI)快照。
-
对于 CSI 快照,您必须创建一个
VolumeSnapshotClass
CR 来注册 CSI 驱动程序。 -
您必须在
DataProtectionApplication
CR 中配置了一个卷位置。
流程
输入以下命令来检索
backupStorageLocations
CR:oc get backupStorageLocations -n openshift-adp
$ oc get backupStorageLocations -n openshift-adp
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAMESPACE NAME PHASE LAST VALIDATED AGE DEFAULT openshift-adp velero-sample-1 Available 11s 31m
NAMESPACE NAME PHASE LAST VALIDATED AGE DEFAULT openshift-adp velero-sample-1 Available 11s 31m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建一个
Backup
CR,如下例所示:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证
Backup
CR 的状态是否为Completed
:oc get backup -n openshift-adp <backup> -o jsonpath='{.status.phase}'
$ oc get backup -n openshift-adp <backup> -o jsonpath='{.status.phase}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
14.3.1.1. 使用 CSI 快照备份持久性卷 复制链接链接已复制到粘贴板!
在创建 Backup
CR 前,您可以编辑云存储的 VolumeSnapshotClass
自定义资源(CR)来备份持久性卷(CSI)快照。
先决条件
- 云供应商必须支持 CSI 快照。
-
您必须在
DataProtectionApplication
CR 中启用 CSI。
流程
将
metadata.labels.velero.io/csi-volumesnapshot-class: "true"
键值对添加到VolumeSnapshotClass
CR:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
现在,您可以创建一个 Backup
CR。
14.3.1.2. 使用 Restic 备份应用程序 复制链接链接已复制到粘贴板!
您可以通过编辑备份自定义资源(CR)来使用 Restic Backup
资源、内部镜像和持久性卷备份 Kubernetes 资源。
您不需要在 DataProtectionApplication
CR 中指定快照位置。
Restic 不支持备份 hostPath
卷。如需更多信息,请参阅额外的 Rustic 限制。
先决条件
- 您必须安装用于数据保护(OADP)Operator 的 OpenShift API。
-
您不能将
DataProtectionApplication
CR 中的spec.configuration.restic.enable
设置为false
来禁用默认的 Restic 安装。 -
DataProtectionApplication
CR 必须处于Ready
状态。
流程
编辑
Backup
CR,如下例所示:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 在 OADP 版本 1.2 及更高版本中,在
spec
块中添加defaultVolumesToFsBackup: true
设置。在 OADP 版本 1.1 中,添加defaultVolumesToRestic: true
。
14.3.1.3. 创建备份 hook 复制链接链接已复制到粘贴板!
您可以通过编辑备份自定义资源(CR)来创建 Backup
hook 以在 pod 中运行的容器中运行命令。
在 pod 备份前运行 Pre hook。在备份后运行 Post hook。
流程
在
Backup
CR 的spec.hooks
块中添加 hook,如下例所示:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 可选:您可以指定 hook 应用的命名空间。如果没有指定这个值,则 hook 适用于所有命名空间。
- 2
- 可选:您可以指定 hook 不应用到的命名空间。
- 3
- 目前,pod 是唯一可以应用 hook 的支持的资源。
- 4
- 可选:您可以指定 hook 不应用到的资源。
- 5
- 可选:此 hook 仅适用于与标签匹配的对象。如果没有指定这个值,则 hook 适用于所有命名空间。
- 6
- 备份前要运行的 hook 数组。
- 7
- 可选:如果没有指定容器,该命令将在 pod 的第一个容器中运行。
- 8
- 这是正在添加的 init 容器的入口点。
- 9
- 错误处理允许的值是
Fail
和Continue
。默认值为Fail
。 - 10
- 可选:等待命令运行的时间。默认值为
30s
。 - 11
- 此块定义了在备份后运行的一组 hook,其参数与 pre-backup hook 相同。
14.3.2. 调度备份 复制链接链接已复制到粘贴板!
您可以通过创建 Schedule
自定义资源(CR)而不是 Backup
CR 来调度备份。
在您的备份调度中留有足够的时间,以便在创建另一个备份前完成了当前的备份。
例如,如果对一个命名空间进行备份通常需要 10 分钟才能完成,则调度的备份频率不应该超过每 15 分钟一次。
先决条件
- 您必须安装用于数据保护(OADP)Operator 的 OpenShift API。
-
DataProtectionApplication
CR 必须处于Ready
状态。
流程
检索
backupStorageLocations
CR:oc get backupStorageLocations -n openshift-adp
$ oc get backupStorageLocations -n openshift-adp
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAMESPACE NAME PHASE LAST VALIDATED AGE DEFAULT openshift-adp velero-sample-1 Available 11s 31m
NAMESPACE NAME PHASE LAST VALIDATED AGE DEFAULT openshift-adp velero-sample-1 Available 11s 31m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建一个
Schedule
CR,如下例所示:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在调度的备份运行后验证
Schedule
CR 的状态是否为Completed
:oc get schedule -n openshift-adp <schedule> -o jsonpath='{.status.phase}'
$ oc get schedule -n openshift-adp <schedule> -o jsonpath='{.status.phase}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow