5.2. OADP 发行注记


5.2.1. OADP 1.5 发行注记

OpenShift API for Data Protection (OADP) 的发行注记介绍了新的功能和增强功能、已弃用的功能、产品建议、已知问题和解决问题。

注意

有关 OADP 的更多信息,请参阅 OpenShift API for Data Protection (OADP) FAQ

5.2.1.1. OADP 1.5.2 发行注记

OpenShift API for Data Protection (OADP) 1.5.2 发现注记列出了所有已知的问题。

5.2.1.1.1. 已解决的问题

内部镜像备份的自签名证书不应破坏其他 BSLs

在此次更新之前,OADP 只会处理在所有备份存储位置(BSLs)中找到的第一个自定义 CA 证书,并在全局范围内应用它。这个行为可防止带有不同 CA 证书的多个 BSLs 正常工作。另外,不会包括系统可信证书,从而导致连接到标准服务时失败。在这个版本中,OADP 现在:

  • 将 AWS BSLs 的所有唯一 CA 证书连接到单个捆绑包中。
  • 自动包含系统可信证书。
  • 启用具有不同自定义 CA 证书的多个 BSLs 可以同时操作。
  • 仅在启用镜像备份时处理 CA 证书(默认行为)。

此功能增强提高了使用具有不同证书要求的多个存储供应商的环境的兼容性,特别是在使用自签名证书将内部镜像备份到 AWS S3 兼容存储时。

OADP-6765

5.2.1.2. OADP 1.5.1 发行注记

OpenShift API for Data Protection (OADP) 1.5.1 发行注记列出了新功能、已解决的问题、已知问题和已弃用的功能。

5.2.1.2.1. 新功能

CloudStorage API 被完全支持

在此版本之前,CloudStorage API 功能作为一个技术预览提供,在 OADP 1.5.1 中被完全支持。CloudStorage API 会自动为对象存储创建存储桶。

OADP-3307

新的 DataProtectionTest 自定义资源可用

DataProtectionTest (DPT) 是一个自定义资源 (CR),它提供验证 OADP 配置的框架。DPT CR 检查并报告以下参数信息:

  • 将备份上传到对象存储的性能。
  • 持久性卷声明的 Container Storage Interface (CSI) 快照就绪。
  • 存储桶配置,如加密和版本控制。

在 DPT CR 中使用此信息,您可以确保正确配置并正确配置您的数据保护环境,并根据设置配置执行。

请注意,当使用带有 Azure 上的 OADP 的 DPT 时,您必须配置 STORAGE_ACCOUNT_ID

OADP-6300

新的节点代理负载均衡配置可用

  • 节点代理负载关联性: 您可以使用 DataProtectionApplication (DPA) 自定义资源 (CR) 的 spec.podConfig.nodeSelector 对象将节点代理 pod 调度到特定的节点上。您可以使用 DPA spec 中的 nodeagent.loadAffinity 对象对节点代理 pod 调度添加更多限制。
  • 存储库维护作业关联性配置 : 只有在使用 Kopia 作为备份存储库时,您可以使用 DataProtectionApplication (DPA)自定义资源(CR) 中的存储库维护作业关联性配置。

    您可以选择在全局级别上配置负载关联性,会影响所有存储库或每个存储库。您还可以使用全局和每个存储库配置的组合。

  • Velero load 关联性: 您可以使用 podConfig.nodeSelector 对象将 Velero pod 分配给特定的节点。您还可以为 pod 级别关联性和反关联性配置 velero.loadAffinity 对象。

OADP-5832

节点代理负载并发可用

在这个版本中,用户可以控制集群中每个节点上可以同时运行的最大节点代理操作数量。它还启用了更好的资源管理、优化备份和恢复工作流,以提高性能和更精简的体验。

5.2.1.2.2. 已解决的问题

DataProtectionApplicationSpec 超过注解限制,从而导致部署出现潜在的错误配置

在此次更新之前,DataProtectionApplicationSpec 使用已弃用的 PodAnnotations,这会导致注解限制溢出。这会导致部署出现潜在的错误配置。在本发行版本中,我们为 Operator 部署的 pod 中的注解添加了 PodConfig,确保最终用户提供一致的注解并改进了可管理性。现在,部署应该更加可靠且更易于管理。

OADP-6454

OADP 控制器管理器的根文件系统现在是只读

在此次更新之前,openshift-adp-controller-manager-* pod 的 manager 容器被配置为使用可写的根文件系统运行。因此,这可能会导致使用容器的文件系统或外部可执行文件的篡改。在这个版本中,容器的安全上下文已被更新,将 root 文件系统设置为只读,同时确保需要写入访问权限所需的功能(如 Kopia 缓存)可以继续正确运行。因此,容器会针对潜在的威胁进行强化。

在多个 DPAs 中,nonAdmin.enable: false 不再导致协调问题

在此次更新之前,当用户尝试在已存在的集群中创建第二个非管理员 DataProtectionApplication (DPA) 时,新的 DPA 无法协调。在这个版本中,每个集群中对 Non-Admin Controller 安装的限制已被删除。因此,用户可以在集群中安装多个 Non-Admin Controller,而不会遇到错误。

OADP-6500

OADP 支持自签名证书

在此次更新之前,使用自签名证书作为带有存储供应商(如 Minio)的备份镜像会导致备份过程中出现 x509: certificate signed by unknown authority 错误。在这个版本中,证书验证已被更新,以支持 OADP 中的自签名证书,确保成功备份。

OADP-641

Velero describe 包括 defaultVolumesToFsBackup

在此次更新之前,velero describe 输出命令会省略 defaultVolumesToFsBackup 标志。这会影响用户的备份配置详情的可见性。在这个版本中,velero describe 输出包含 defaultVolumesToFsBackup 标志信息,改进了备份设置的可见性。

OADP-5762

s3Url 是安全的时,DPT CR 不再失败

在此次更新之前,当 s3Url 是安全的时,因为一个未验证的证书而导致 DataProtectionTest (DPT) 失败,因为 DPT CR 缺少在 spec 字段中跳过或添加 caCert 的功能。因此,因为未验证的证书,数据上传失败。在这个版本中,DPT CR 已更新,可以接受和跳过 spec 字段中的 CA 证书,从而解决了 SSL 验证错误的问题。因此,在使用安全 s3Url 时,DPT 不再失败。

OADP-6235

向 DPA 添加一个其 backupLocation 名称已存在的 backupLocation 时不会被拒绝

在此次更新之前,在 DataProtectionApplication (DPA) 中添加第二个 backupLocation 会导致 OADP 进入无效的状态,从而导致 Backup 和 Restore 失败,因为 Velero 无法读取 Secret 凭证。因此,备份和恢复操作会失败。在这个版本中,DPA 中重复的 backupLocation 名称不再被允许,防止 Backup 和 Restore 失败。因此,重复的 backupLocation 名称会被拒绝,确保无缝的数据保护。

OADP-6459

5.2.1.2.3. 已知问题

恢复使用 Cinder CSI 驱动程序在 OpenStack 上创建的备份会失败

当您为使用 Cinder Container Storage Interface (CSI) 驱动程序的 OpenStack 平台上创建的备份启动恢复操作时,初始备份仅在源应用程序手动缩减后成功。恢复作业失败,使您无法从备份中恢复应用程序的数据和状态。当前还没有已知的临时解决方案。

OADP-5552

如果 nodeAgent.loadAffinity 参数有多个元素,Datamover pod 会被调度在一个意料外的节点上

由于 Velero 1.14 及之后的版本中的一个问题,OADP node-agent 只处理 loadAffinity 数组中的第一个 nodeSelector 元素。因此,如果您定义了多个 nodeSelector 对象,会忽略除第一个以外的所有对象,从而可能会导致在备份过程中将数据 pod 调度到意外节点上。

要临时解决这个问题,将来自多个 nodeSelector 对象的所有所需的 matchExpressions 整合到第一个 nodeSelector 对象中。因此,所有节点关联性规则都会被正确应用,确保将数据 pod 调度到适当的节点。

OADP-6469

当使用带有别名的命令的 CA 证书时,OADP Backup 会失败

CA 证书不会作为一个文件存储在运行的 Velero 容器上。因为这个原因,会由于 Velero 容器中缺少 caCert 出现降级的情况,需要手动设置和下载。要临时解决这个问题,在 Velero 部署中手动添加证书。具体步骤请参阅使用带有 velero 部署的 cacert 命令别名

OADP-4668

Data Mover restore 操作不支持 nodeSelector spec

当使用 nodeAgent 参数中设置的 nodeSelector 字段创建数据保护应用程序(DPA)时,Data Mover restore 部分会失败,而不是完成恢复操作。当前还没有已知的临时解决方案。

OADP-4743

当使用 caCert 配置 DPA 时,镜像流备份部分失败

在 S3 连接中使用 DataProtectionApplication (DPA) 中的 caCert 备份过程中的未验证证书会导致 ocp-django 应用程序的备份部分失败,并导致数据丢失。当前还没有已知的临时解决方案。

OADP-4817

Kopia 不会删除 worker 节点上的缓存

当配置了 ephemeral-storage 参数并运行文件系统恢复时,缓存不会自动从 worker 节点中删除。因此,在恢复备份过程时 /var 分区会溢出,从而增加了存储使用量并潜在存在资源耗尽的情况。要临时解决这个问题,重启节点代理 pod,这会清除缓存。这样,缓存会被删除。

OADP-4855

因为无效的项目配置,在 Workload Identity 上 GCP VSL 备份会失败

当在 GCP Workload Identity 上执行 volumeSnapshotLocation (VSL) 备份时,Velero GCP 插件会在 DataProtectionApplication (DPA) 的 snapshotLocations 配置中也指定了无效的 API 请求。因此,GCP API 返回 RESOURCE_PROJECT_INVALID 错误,备份作业会完成 PartiallyFailed 状态。当前还没有已知的临时解决方案。

OADP-6697

使用 STS 的 AWS 上的 CloudStorage API 的 VSL 备份失败

volumeSnapshotLocation (VSL) 备份失败,因为凭证文件中缺少 AZURE_RESOURCE_GROUP 参数,即使 VSL 的 DataProtectionApplication (DPA) 配置中提到了 AZURE_RESOURCE_GROUP。当前还没有已知的临时解决方案。

OADP-6676

使用 STS 的 Azure 上备份带有 ImageStreams 的应用程序会失败

当使用 STS 在 Azure 集群上备份包含镜像流资源的应用程序时,OADP 插件会错误地尝试为容器 registry 查找基于 secret 的凭证。因此,STS 环境中没有找到所需的 secret,从而导致 ImageStream 自定义备份操作失败。这会导致标记为 PartiallyFailed 的整体备份状态。当前还没有已知的临时解决方案。

OADP-6675

对于 CloudStorageRef 配置,DPA 协调失败

当用户创建存储桶并使用 backupLocations.bucket.cloudStorageRef 配置时,存储桶凭证不会出现在 DataProtectionApplication (DPA) 自定义资源 (CR) 中。因此,即使 CloudStorage CR 中存在存储桶凭证,DPA 协调也会失败。要临时解决这个问题,在 DPA CR 的 backupLocations 部分添加相同的凭证。

OADP-6669

5.2.1.2.4. 弃用的功能

configuration.restic specification 字段已弃用

在 OADP 1.5.0 中,config.restic 规格字段已弃用。使用带有 uploaderType 字段的 nodeAgent 部分选择 kopiarestic 作为 uploaderType。请注意,Restic 在 OADP 1.5.0 中已弃用。

OADP-5158

5.2.1.3. OADP 1.5.0 发行注记

OpenShift API for Data Protection (OADP) 1.5.0 发行注记列出了已解决的问题和已知问题。

5.2.1.3.1. 新功能

OADP 1.5.0 引入了一个新的自助服务功能

OADP 1.5.0 引入了名为 OADP Self-Service 的新功能,启用命名空间管理员用户在 OpenShift Container Platform 上备份和恢复应用程序。在之前的 OADP 版本中,您需要 cluster-admin 角色来执行 OADP 操作,如备份和恢复应用程序、创建备份存储位置等。

从 OADP 1.5.0 开始,您不需要 cluster-admin 角色来执行备份和恢复操作。您可以将 OADP 与命名空间 admin 角色一起使用。命名空间 admin 角色仅对该用户分配到的命名空间具有管理员访问权限。您只能在集群管理员安装 OADP Operator 并提供所需权限后使用 Self-Service 功能。

OADP-4001

使用 must-gather 工具收集日志已使用 Markdown 概述进行了改进

您可以使用 must-gather 工具来收集用于数据保护 (OADP) 自定义资源的日志以及 OpenShift API 的信息。must-gather 数据必须附加到所有客户案例。这个工具使用收集的信息生成 Markdown 输出文件,它位于 must-gather 日志集群目录中。

OADP-5384

dataMoverPrepareTimeoutresourceTimeout 参数现在添加到 DPA 中的 nodeAgent

Data Protection Application (DPA) 中的 nodeAgent 字段现在包含以下参数:

  • dataMoverPrepareTimeout: 定义 DataUploadDataDownload 进程将等待的持续时间。默认值为 30 分钟。
  • resourceTimeout :设置没有被其他特定超时参数解决的资源进程的超时时间。默认值为 10 分钟。

OADP-3736

使用 DPA 中的 spec.configuration.nodeAgent 参数来配置 nodeAgent 守护进程集

Velero 不再使用 node-agent-config 配置映射来配置 nodeAgent 守护进程集。在这个版本中,您必须在数据保护应用程序(DPA)中使用新的 spec.configuration.nodeAgent 参数来配置 nodeAgent 守护进程集。

OADP-5042

现在可以使用备份存储库配置配置映射配置 DPA

使用 Velero 1.15 及之后的版本,您现在可以配置每个存储库缓存的总大小。这可防止因为临时存储不足而无法移除 pod。请参阅以下新参数添加到 DPA 中的 NodeAgentConfig 字段中:

  • cacheLimitMB :以 MB 为单位设置本地数据缓存大小限制。
  • fullMaintenanceInterval :默认值为 24 小时。使用以下覆盖选项控制 Kopia 存储库中的已删除 Velero 备份率:

    • normalGC: 24 小时
    • fastGC: 12 小时
    • eagerGC: 6 小时

OADP-5900

提高 node-agent 安全性

在这个版本中,添加了以下更改:

  • 现在,在 DPA 中的 velero 字段中添加了新的 configuration 选项。
  • disableFsBackup 参数的默认值为 falsenon-existing。在这个版本中,以下选项添加到 SecurityContext 字段中:

    • Privileged: true
    • AllowPrivilegeEscalation: true
  • 如果将 disableFsBackup 参数设置为 true,它会从 node-agent 中删除以下挂载:

    • host-pods
    • host-plugins
  • 修改 node-agent 始终以非 root 用户身份运行。
  • 将 root 文件系统更改为只读方式。
  • 使用写访问权限更新以下挂载点:

    • /home/velero
    • tmp/credentials
  • SeccompProfileTypeRuntimeDefault 选项用于 SeccompProfile 参数。

OADP-5031

为并行项目备份添加 DPA 支持

默认情况下,只有一个线程处理一个项目块。Velero 1.16 支持并行项目备份,其中可以并行处理备份中的多个项目。

您可以使用可选的 Velero 服务器参数 --item-block-worker-count 来运行额外的 worker 线程来并行处理项目。要在 OADP 中启用此功能,请将 dpa.Spec.Configuration.Velero.ItemBlockWorkerCount 参数设置为大于零的整数值。

注意

目前还不支持并行运行多个完整备份。

OADP-5635

OADP 日志现在以 JSON 格式提供

随着 OADP 1.5.0 的发布,日志现在以 JSON 格式提供。它有助于在 Elastic logs 管理系统中包含预解析的数据。

OADP-3391

oc get dpa 命令现在显示 RECONCILED 状态

在这个版本中,oc get dpa 命令会显示 RECONCILED 状态,而不是只显示 NAMEAGE 以改进用户体验。例如:

$ oc get dpa -n openshift-adp
NAME            RECONCILED   AGE
velero-sample   True         2m51s
Copy to Clipboard Toggle word wrap

OADP-1338

5.2.1.3.2. 已解决的问题

容器现在对 terminationMessagePolicy 使用 FallbackToLogsOnError

在这个版本中,terminationMessagePolicy 字段可以为 Data Protection (OADP) Operator 容器(如 operator-manager,velero,node-agent, 和 non-admin-controller )设置 FallbackToLogsOnError 值。

此更改可确保容器退出并显示错误并且终止消息文件为空,OpenShift 会使用容器日志输出的最后一部分作为终止消息。

OADP-5183

命名空间管理员现在可以在恢复后访问应用程序

在以前的版本中,在恢复操作后,命名空间 admin 无法执行带有以下错误的应用程序:

  • 不允许 exec 操作,因为 pod 的安全上下文超出您的权限
  • 无法针对任何安全性上下文约束进行验证
  • 用户或 serviceaccount, provider restricted-v2 不可用

在这个版本中,这个问题已被解决,命名空间 admin 可以在恢复后成功访问应用程序。

OADP-5611

现在,可以使用注解在单独的资源实例级别指定状态恢复

在以前的版本中,只有使用 Restore 自定义资源(CR)中的 restoreStatus 字段在资源类型中配置状态恢复。

在这个版本中,您可以使用以下注解在单独的资源实例级别指定状态恢复:

metadata:
  annotations:
    velero.io/restore-status: "true"
Copy to Clipboard Toggle word wrap

OADP-5968

现在,恢复可以成功使用 excludedClusterScopedResources

在以前的版本中,当执行将 excludeClusterScopedResources 字段设置为 storageclasses,Namespace 参数的应用程序备份时,备份可以成功,但恢复会部分失败。在这个版本中,恢复可以成功。

OADP-5239

备份已完成,即使它在 waitingForPluginOperations 阶段被重启

在以前的版本中,备份被标记为 failed,并带有以下错误消息:

failureReason: found a backup with status "InProgress" during the server starting,
mark it as "Failed"
Copy to Clipboard Toggle word wrap

在这个版本中,如果备份在 waitingForPluginOperations 阶段被重启,则会完成备份。

OADP-2941

现在,当 DPA 中的 ` disableFsbackup` 参数设置为 true 时,错误消息更为明确

在以前的版本中,当数据保护应用程序(DPA)的 spec.configuration.velero.disableFsBackup 字段被设置为 true 时,备份部分会失败并显示错误,但信息并不明确。

在这个版本中,错误消息更加明确,有助于对问题进行故障排除。例如,错误消息表示 disableFsBackup: true 是 DPA 中的问题,或者对于非管理员用户,则无法访问 DPA。

OADP-5952

在 parseAWSSecret 中处理 AWS STS 凭证

在以前的版本中,使用 STS 身份验证的 AWS 凭证不会被正确验证。

在这个版本中,parseAWSSecret 功能检测到特定于 STS 的字段,并更新 ensureSecretDataExists 功能来正确处理 STS 配置集。

OADP-6105

repositoryMaintenance 作业关联性配置可用于配置

在以前的版本中,DPA 规格中缺少存储库维护作业 pod 关联性的新配置。

在这个版本中,repositoryMaintenance 作业关联性配置可用于将 BackupRepository 标识符映射到其配置。

OADP-6134

当 CR 规格正确后,ValidationErrors 字段会消失

在以前的版本中,当使用错误 spec.schedule 值创建调度 CR,之后使用正确的值修补了这个值,ValidationErrors 字段仍然存在。因此,即使 spec 正确,ValidationErrors 字段也会显示不正确的信息。

在这个版本中,在 CR 规格正确后,ValidationErrors 字段将不再存在。

OADP-5419

当在 restoreSpec 中使用了 includedNamesapces 字段时,volumeSnapshotContents 自定义资源会被恢复

在以前的版本中,当在恢复规格中使用 includedNamespace 字段触发恢复操作时,恢复操作会成功完成,但没有创建 volumeSnapshotContents 自定义资源 (CR),且 PVC 处于 Pending 状态。

在这个版本中,即使 restoreSpec 中使用 includedNamesapces 字段,volumeSnapshotContents CR 也会被恢复。因此,应用程序 pod 在恢复后处于 Running 状态。

OADP-5939

OADP operator 在 AWS 上成功创建存储桶

在以前的版本中,容器使用 readOnlyRootFilesystem: true 设置进行配置,但代码会尝试使用 os.CreateTemp() 函数在 /tmp 目录中创建临时文件。因此,当将 AWS STS 身份验证与 Cloud Credential Operator (CCO) 流搭配使用时,OADP 无法创建 AWS 凭证处理所需的临时文件,并显示以下错误:

ERROR unable to determine if bucket exists. {"error": "open /tmp/aws-shared-credentials1211864681: read-only file system"}
Copy to Clipboard Toggle word wrap

在这个版本中,添加了以下更改来解决这个问题:

  • 在控制器 pod 规格中,有一个新的名为 tmp-diremptyDir 卷。
  • 一个卷挂载到容器,该容器将此卷挂载到 /tmp 目录中。
  • 对于安全最佳实践,可维护 readOnlyRootFilesystem: true
  • 使用推荐的 os.CreateTemp() 函数替换弃用的 ioutil.TempFile() 函数。
  • 删除了不必要的 io/ioutil 导入,这已不再需要。

OADP-6019

有关本发行版本中解决的所有问题的完整列表,请参阅 JIRA 中的 OADP 1.5.0 解决的问题列表。

5.2.1.3.3. 已知问题

Kopia 在备份过期后不会删除所有工件

在备份过期后,即使删除了备份,Kopia 也不会从 S3 位置的 ${bucket_name}/kopia/$openshift-adp 中删除卷工件。与过期和删除的数据文件相关的信息保留在元数据中。为确保 OpenShift API for Data Protection (OADP) 可以正常工作,数据不会被删除,并存在于 /kopia/ 目录中,例如:

  • kopia.repository :主仓库格式信息,如加密、版本和其他信息。
  • kopia.blobcfg: 配置如何命名数据 Blob。
  • kopia.maintenance: 跟踪维护所有者,调度和最新成功的构建。
  • log: 日志 blobs.

OADP-5131

有关本发行版本中所有已知问题的完整列表,请参阅 JIRA 中的 OADP 1.5.0 已知问题 列表。

5.2.1.3.4. 弃用的功能

configuration.restic specification 字段已弃用

在 OpenShift API for Data Protection (OADP) 1.5.0 中,config.restic specification 字段已弃用。使用带有 uploaderType 字段的 nodeAgent 部分选择 kopiarestic 作为 uploaderType。请注意,Restic 在 OpenShift API for Data Protection (OADP) 1.5.0 中已弃用。

OADP-5158

5.2.1.3.5. 技术预览

对 HyperShift 托管 OpenShift 集群的支持作为技术预览提供

OADP 可以作为技术预览支持并促进 HyperShift 托管 OpenShift 集群中的应用程序迁移。它为托管的集群中的应用程序确保无缝的备份和恢复操作。

有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围

OADP-3930

5.2.1.4. 将 OADP 1.4 升级到 1.5

注意

始终升级到下一个次版本。不要跳过版本。要升级到更新的版本,请一次只升级一个频道。例如,要从 OADP 1.1 升级到 1.3,请首先升级到 1.2,然后再升级到 1.3。

5.2.1.4.1. 从 OADP 1.4 更新到 1.5

Velero 服务器已从 1.14 版本更新至 1.16。

这会更改以下内容:

版本支持更改
OpenShift API for Data Protection 实施了一个简化的版本支持政策。红帽在一个 OpenShift 版本上只支持一个 OpenShift API for Data Protection (OADP),以确保其稳定性和可维护性。OADP 1.5.0 只在 OpenShift 4.19 版本中被支持。
OADP 自助服务

OADP 1.5.0 引入了名为 OADP Self-Service 的新功能,启用命名空间管理员用户在 OpenShift Container Platform 上备份和恢复应用程序。在之前的 OADP 版本中,您需要 cluster-admin 角色来执行 OADP 操作,如备份和恢复应用程序、创建备份存储位置等。

从 OADP 1.5.0 开始,您不需要 cluster-admin 角色来执行备份和恢复操作。您可以将 OADP 与命名空间 admin 角色一起使用。命名空间 admin 角色仅对该用户分配到的命名空间具有管理员访问权限。您只能在集群管理员安装 OADP Operator 并提供所需权限后使用 Self-Service 功能。

backupPVCrestorePVC 配置

backupPVC 资源是一个中间的持久性卷声明 (PVC),用于在数据移动备份操作期间访问数据。您可以使用 DataProtectionApplication (DPA) 自定义资源中的 nodeAgent.backupPVC 部分创建一个 readonly 备份 PVC。

restorePVC 资源是一个中间 PVC,用于在 Data Mover restore 操作过程中写入数据。

您可以使用 ignoreDelayBinding 字段在 DPA 中配置 restorePVC

5.2.1.4.2. 备份 DPA 配置

您必须备份当前的 DataProtectionApplication (DPA) 配置。

流程

  • 运行以下命令来保存您当前的 DPA 配置:

    示例命令

    $ oc get dpa -n openshift-adp -o yaml > dpa.orig.backup
    Copy to Clipboard Toggle word wrap

5.2.1.4.3. 升级 OADP Operator

您可以按照以下流程升级 OpenShift API for Data Protection (OADP) Operator。

注意

不要在 OpenShift 4.18 集群上安装 OADP 1.5.0。

先决条件

  • 已安装最新的 OADP 1.4.5。
  • 已备份了数据。

流程

  1. 将 OpenShift 4.18 升级到 OpenShift 4.19。

    注意

    OpenShift 4.19 不支持 OpenShift API for Data Protection (OADP) 1.4。

  2. 将 OADP Operator 的订阅频道从 stable-1.4 改为 stable
  3. 等待 Operator 和容器更新并重启。
5.2.1.4.4. 将 DPA 转换为 OADP 1.5.0 的新版本

OpenShift 4.19 不支持 OpenShift API for Data Protection (OADP) 1.4。您可以使用新的 spec.configuration.nodeAgent 字段及其子字段将数据保护应用程序(DPA)转换为新的 OADP 1.5 版本。

流程

  1. 要配置 nodeAgent 守护进程集,请使用 DPA 中的 spec.configuration.nodeAgent 参数。请参见以下示例:

    DataProtectionApplication 配置示例

    ...
     spec:
       configuration:
         nodeAgent:
           enable: true
           uploaderType: kopia
    ...
    Copy to Clipboard Toggle word wrap

  2. 要使用名为 node-agent-configConfigMap 资源配置 nodeAgent 守护进程集,请参阅以下示例配置:

    配置映射示例

    ...
     spec:
       configuration:
         nodeAgent:
           backupPVC:
             ...
           loadConcurrency:
             ...
           podResources:
             ...
           restorePVC:
            ...
    ...
    Copy to Clipboard Toggle word wrap

5.2.1.4.5. 验证升级

您可以按照以下流程验证 OpenShift API for Data Protection (OADP) 升级。

流程

  1. 验证 DataProtectionApplication (DPA) 是否已成功协调:

    $ oc get dpa dpa-sample -n openshift-adp
    Copy to Clipboard Toggle word wrap

    输出示例

    NAME            RECONCILED   AGE
    dpa-sample      True         2m51s
    Copy to Clipboard Toggle word wrap

    注意

    RECONCILED 列必须为 True

  2. 运行以下命令,通过查看 OADP 资源来验证安装是否完成:

    $ oc get all -n openshift-adp
    Copy to Clipboard Toggle word wrap

    输出示例

    NAME                                                    READY   STATUS    RESTARTS   AGE
    pod/node-agent-9pjz9                                    1/1     Running   0          3d17h
    pod/node-agent-fmn84                                    1/1     Running   0          3d17h
    pod/node-agent-xw2dg                                    1/1     Running   0          3d17h
    pod/openshift-adp-controller-manager-76b8bc8d7b-kgkcw   1/1     Running   0          3d17h
    pod/velero-64475b8c5b-nh2qc                             1/1     Running   0          3d17h
    
    NAME                                                       TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)    AGE
    service/openshift-adp-controller-manager-metrics-service   ClusterIP   172.30.194.192   <none>        8443/TCP   3d17h
    service/openshift-adp-velero-metrics-svc                   ClusterIP   172.30.190.174   <none>        8085/TCP   3d17h
    
    NAME                        DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR   AGE
    daemonset.apps/node-agent   3         3         3       3            3           <none>          3d17h
    
    NAME                                               READY   UP-TO-DATE   AVAILABLE   AGE
    deployment.apps/openshift-adp-controller-manager   1/1     1            1           3d17h
    deployment.apps/velero                             1/1     1            1           3d17h
    
    NAME                                                          DESIRED   CURRENT   READY   AGE
    replicaset.apps/openshift-adp-controller-manager-76b8bc8d7b   1         1         1       3d17h
    replicaset.apps/openshift-adp-controller-manager-85fff975b8   0         0         0       3d17h
    replicaset.apps/velero-64475b8c5b                             1         1         1       3d17h
    replicaset.apps/velero-8b5bc54fd                              0         0         0       3d17h
    replicaset.apps/velero-f5c9ffb66                              0         0         0       3d17h
    Copy to Clipboard Toggle word wrap

    注意

    node-agent pod 仅在 DataProtectionApplication (DPA) 中使用 restickopia 时才创建。在 OADP 1.4.0 和 OADP 1.3.0 版本中,node-agent pod 被标记为 restic

  3. 运行以下命令,验证备份存储位置并确认 PHASEAvailable

    $ oc get backupstoragelocations.velero.io -n openshift-adp
    Copy to Clipboard Toggle word wrap

    输出示例

    NAME           PHASE       LAST VALIDATED   AGE     DEFAULT
    dpa-sample-1   Available   1s               3d16h   true
    Copy to Clipboard Toggle word wrap

5.2.2. OADP 1.4 发行注记

OpenShift API for Data Protection (OADP) 的发行注记介绍了新的功能和增强功能、已弃用的功能、产品建议、已知问题和解决问题。

注意

有关 OADP 的更多信息,请参阅 OpenShift API for Data Protection (OADP) FAQ

5.2.2.1. OADP 1.4.4 发行注记

OpenShift API for Data Protection (OADP) 1.4.4 是一个 CGO(Container Grade Only)版本,它刷新了容器的健康级别。与 OADP 1.4.3 相比,产品本身的代码并没有变化。

5.2.2.1.1. 已知问题

恢复有状态应用程序的问题

当您恢复使用 azurefile-csi 存储类的有状态应用程序时,恢复操作会保留在 Finalizing 阶段。(OADP-5508)

5.2.2.2. OADP 1.4.3 发行注记

OpenShift API for Data Protection (OADP) 1.4.3 发行注记中列出了以下新功能。

5.2.2.2.1. 新功能

版本 0.7.1 中的 kubevirt velero 插件的显著变化

在这个版本中,kubevirt velero 插件已更新至版本 0.7.1。主要改进包括以下程序错误修复和新功能:

  • 当所有者虚拟机被排除时,备份不再会忽略虚拟机实例(VMI)。
  • 对象图现在在备份和恢复操作过程中包括所有额外对象。
  • 现在,在恢复操作过程中,可选生成的标签会添加到新的固件通用唯一标识符(UUID)中。
  • 现在,可以在恢复操作期间切换虚拟机运行策略。
  • 现在支持通过标签清除 MAC 地址。
  • 现在,在备份操作过程中会跳过特定于恢复的检查。
  • 现在支持 VirtualMachineClusterInstancetypeVirtualMachineClusterPreference 自定义资源定义(CRD)。

5.2.2.3. OADP 1.4.2 发行注记

OpenShift API for Data Protection (OADP) 1.4.2 发行注记列出了新功能、解决的问题和程序错误,以及已知的问题。

5.2.2.3.1. 新功能

现在,可以使用 VolumePolicy 功能备份同一命名空间中的不同卷

在这个版本中,Velero 提供资源策略,以使用 VolumePolicy 功能备份同一命名空间中的不同卷。备份不同卷所支持的 VolumePolicy 功能包括 skip, snapshot, 和 fs-backup 操作。OADP-1071

文件系统 backup and data mover 现在可以使用短期凭证

文件系统 backup and data mover 现在可以使用短期凭证,如 AWS 安全令牌服务 (STS) 和 GCP WIF。现在,备份会在没有 PartiallyFailed 状态的情况下成功完成。OADP-5095

5.2.2.3.2. 已解决的问题

现在,如果 VSL 包含不正确的供应商值,DPA 会报告错误

在以前的版本中,如果卷快照位置(VSL) spec 的供应商不正确,则数据保护应用程序(DPA)可以成功协调。在这个版本中,DPA 会报告错误并请求一个有效的供应商值。OADP-5044

对于使用不同 OADP 命名空间的备份和恢复,Data Mover 恢复可以成功。

在以前的版本中,当使用在一个命名空间中安装的 OADP 执行备份,但使用安装在不同命名空间中的 OADP 恢复时,Data Mover 恢复会失败。在这个版本中,Data Mover 恢复可以成功。OADP-5460

SSE-C 备份可用于计算的 secret 密钥的 MD5

在以前的版本中,备份失败并显示以下错误:

Requests specifying Server Side Encryption with Customer provided keys must provide the client calculated MD5 of the secret key.
Copy to Clipboard Toggle word wrap

在这个版本中,解决了使用客户提供密钥(SSE-C) base64 和 MD5 哈希的 Server-Side 加密。因此,SSE-C 备份可用于计算的 secret 密钥的 MD5另外,customerKey 大小的不正确的 errorhandling 也被修复。OADP-5388

有关本发行版本中解决的所有问题的完整列表,请参阅 JIRA 中的 OADP 1.4.2 解决的问题列表。

5.2.2.3.3. 已知问题

Data Mover restore 操作不支持 nodeSelector spec

当使用 nodeAgent 参数中设置的 nodeSelector 字段创建数据保护应用程序(DPA)时,Data Mover restore 部分会失败,而不是完成恢复操作。OADP-5260

当指定了 TLS 跳过验证时,S3 存储不会使用代理环境

在镜像 registry 备份中,当 insecureSkipTLSVerify 参数设置为 true 时,S3 存储不会使用代理环境。OADP-3143

Kopia 在备份过期后不会删除工件

在备份过期后,即使删除了备份,Kopia 也不会从 S3 位置的 ${bucket_name}/kopia/$openshift-adp 中删除卷工件。如需更多信息,请参阅"关于 Kopia 仓库维护"。OADP-5131

5.2.2.4. OADP 1.4.1 发行注记

OpenShift API for Data Protection (OADP) 1.4.1 发行注记列出了新功能、解决的问题和程序错误,以及已知的问题。

5.2.2.4.1. 新功能

新的 DPA 字段以更新客户端 qps 和 burst

现在,您可以使用新的数据保护应用程序 (DPA) 字段更改 Velero Server Kubernetes API 查询每秒(qps)和突发(burst)值。新的 DPA 字段是 spec.configuration.velero.client-qpsspec.configuration.velero.client-burst,它们都默认为 100。OADP-4076

使用 Kopia 启用非默认算法

在这个版本中,您可以在 Kopia 中配置哈希、加密和分割程序算法来选择非默认选项来优化不同备份工作负载的性能。

要配置这些算法,在 DataProtectionApplication (DPA) 配置的 podConfig 部分中设置 velero pod 的 env 变量。如果没有设置此变量,或者选择了一个不被支持的算法,Kopia 将默认为其标准算法。OADP-4640

5.2.2.4.2. 已解决的问题

现在可以成功恢复没有 pod 的备份

在以前的版本中,恢复没有 pod 的备份,并将 StorageClass VolumeBindingMode 设置为 WaitForFirstConsumer 会导致 PartiallyFailed 状态出现错误:fail to patch dynamic PV, err: context deadline exceeded。在这个版本中,会跳过对动态 PV 进行补丁,并可以成功恢复备份,不再会出现 PartiallyFailed 状态。OADP-4231

PodVolumeBackup CR 现在显示正确的消息

在以前的版本中,PodVolumeBackup 自定义资源 (CR) 会生成不正确的消息:get a podvolumebackup with status "InProgress" during the server starting, mark it as "Failed"。在这个版本中,生成的消息是:

found a podvolumebackup with status "InProgress" during the server starting,
mark it as "Failed".
Copy to Clipboard Toggle word wrap

OADP-4224

现在,可以使用 DPA 覆盖 imagePullPolicy

在以前的版本中,OADP 将所有镜像的 imagePullPolicy 参数都设置为 Always。在这个版本中,OADP 会检查每个镜像是否包含了 sha256sha512 摘要,然后将 imagePullPolicy 设置为 IfNotPresent; 否则 imagePullPolicy 被设置为 Always。现在,您可以使用新的 spec.containerImagePullPolicy DPA 字段覆盖此策略。OADP-4172

现在,如果初始更新失败,OADP Velero 现在可以重试更新恢复状态

在以前的版本中,OADP Velero 无法更新恢复的 CR 状态。这会无限期保留 InProgress 状态。依赖于备份和恢复 CR 状态以确定完成会失败的组件。在这个版本中,恢复的恢复 CR 状态可以正确地进入 CompletedFailed 状态。OADP-3227

从不同的集群恢复 BuildConfig 构建会成功,且没有任何错误

在以前的版本中,当从其他集群执行 BuildConfig Build 资源恢复时,应用程序会在内部镜像 registry 的 TLS 验证过程中生成一个错误。错误信息 failed to verify certificate: x509: certificate signed by unknown authority。在这个版本中,BuildConfig 构建资源恢复到不同的集群可以成功进行,而不会生成 failed to verify certificate 错误。OADP-4692

恢复空的 PVC 可以成功

在以前的版本中,在恢复空的持久性卷声明 (PVC) 时,下载数据会失败。这个失败带有以下错误:

data path restore failed: Failed to run kopia restore: Unable to load
    snapshot : snapshot not found
Copy to Clipboard Toggle word wrap

在这个版本中,在恢复空 PVC 时,下载数据的过程会正确处理,不会生成错误信息。OADP-3106

CSI 和 DataMover 插件中没有 Velero 内存泄漏的问题

在以前的版本中,使用 CSI 和 DataMover 插件会导致 Velero 内存泄漏。当备份结束时,Velero 插件实例不会被删除,在 Velero pod 中生成 内存不足(OOM )条件前,内存泄漏会消耗内存。在这个版本中,当使用 CSI 和 DataMover 插件时,不会出现 Velero 内存泄漏的问题。OADP-4448

在相关 PV 被释放前,post-hook 操作不会启动

在以前的版本中,由于 Data Mover 操作的异步性,在 Data Mover 持久性卷声明 (PVC) 释放相关 pod 的持久性卷 (PV) 前,可能会尝试进行 post-hook 操作。此问题会导致备份失败,并显示 PartiallyFailed 状态。在这个版本中,在 Data Mover PVC 发布相关的 PV 前,才会启动 post-hook 操作,从而避免出现 PartiallyFailed 备份状态。OADP-3140

在带有超过 37 个字符的命名空间中部署 DPA 可以正常工作

当您在带有超过 37 个字符的命名空间中安装 OADP Operator 来创建新的 DPA 时,标记 "cloud-credentials" Secret 会失败,DPA 报告以下错误:

The generated label name is too long.
Copy to Clipboard Toggle word wrap

在这个版本中,在名称中有超过 37 个字符的命名空间中创建 DPA 不会失败。OADP-3960

恢复可以通过覆盖超时错误成功完成

在以前的版本中,在大规模环境中,恢复操作会导致 Partiallyfailed 状态并带有错误:fail to patch dynamic PV, err: context deadline exceeded。在这个版本中,可以使用 resourceTimeout Velero 服务器参数覆盖这个超时错误,从而使恢复可以成功完成。OADP-4344

有关本发行版本中解决的所有问题的完整列表,请参阅 JIRA 中的 OADP 1.4.1 解决的问题列表。

5.2.2.4.3. 已知问题

恢复 OADP 后,Cassandra 应用程序 pod 进入 CrashLoopBackoff 状态

在 OADP 恢复后,Cassandra 应用程序 pod 可能会进入 CrashLoopBackoff 状态。要临时解决这个问题,删除在恢复 OADP 后返回错误 CrashLoopBackoff 状态的 StatefulSet pod。然后,StatefulSet 控制器会重新创建这些 pod 并正常运行。OADP-4407

引用 ImageStream 的部署不会被正确恢复,并导致 pod 和卷内容被破坏

在文件系统备份(FSB)恢复操作中,引用 ImageStreamDeployment 资源没有被正确恢复。恢复运行 FSB 的 pod,postHook 会被提前终止。

在恢复操作过程中,OpenShift Container Platform 控制器会使用一个更新的 ImageStreamTag 哈希更新 Deployment 资源中的 spec.template.spec.containers[0].image 字段。更新会触发推出新的 pod,终止 velero 运行 FSB 和 post-hook 的 pod。

有关镜像流触发器的更多信息,请参阅触发镜像流更新

这个行为的临时解决方案分为两个步骤:

  1. 执行排除了 Deployment 资源的恢复,例如:

    $ velero restore create <RESTORE_NAME> \
      --from-backup <BACKUP_NAME> \
      --exclude-resources=deployment.apps
    Copy to Clipboard Toggle word wrap
  2. 第一次恢复成功后,通过包含这些资源来执行第二次恢复,例如:

    $ velero restore create <RESTORE_NAME> \
      --from-backup <BACKUP_NAME> \
      --include-resources=deployment.apps
    Copy to Clipboard Toggle word wrap

    OADP-3954

5.2.2.5. OADP 1.4.0 发行注记

OpenShift API for Data Protection (OADP) 1.4.0 发行注记列出了已解决的问题和已知问题。

5.2.2.5.1. 已解决的问题

恢复在 OpenShift Container Platform 4.16 中可以正常工作

在以前的版本中,当恢复已删除的应用程序命名空间时,恢复操作部分失败,在 OpenShift Container Platform 4.16 中会出现 resource name may not be empty 错误。在这个版本中,恢复在 OpenShift Container Platform 4.16 中可以正常工作。OADP-4075

Data Mover backups 在 OpenShift Container Platform 4.16 集群中可以正常工作

在以前的版本中,Velero 使用早期版本的 SDK,其中 Spec.SourceVolumeMode 字段不存在。因此,在带有 v4.2 版本的外部快照器上的 OpenShift Container Platform 4.16 集群中,Data Mover backups 会失败。在这个版本中,外部快照升级到 v7.0 及更新版本。因此,在 OpenShift Container Platform 4.16 集群中备份不会失败。OADP-3922

有关本发行版本中解决的所有问题的完整列表,请参阅 JIRA 中的 OADP 1.4.0 解决的问题列表。

5.2.2.5.2. 已知问题

在没有为 MCG 设置 checksumAlgorithm 时,备份会失败

在对任何使用 Noobaa 作为备份位置的应用程序进行备份时,如果未设置 checksumAlgorithm 配置参数,备份会失败。要解决这个问题,如果您在 Backup Storage Location (BSL) 配置中没有为 checksumAlgorithm 提供值,则会添加一个空值。空值只为使用数据保护应用程序 (DPA) 自定义资源 (CR) 创建的 BSLs 添加,如果使用任何其他方法创建 BSL,则不会添加这个值。OADP-4274

有关本发行版本中所有已知问题的完整列表,请参阅 JIRA 中的 OADP 1.4.0 已知问题 列表。

5.2.2.5.3. 升级备注
注意

始终升级到下一个次版本。不要 跳过版本。要升级到更新的版本,请一次只升级一个频道。例如,若要从 OpenShift API for Data Protection (OADP) 1.1 升级到 1.3,首先升级到 1.2,然后再升级到 1.3。

5.2.2.5.3.1. 从 OADP 1.3 更改为 1.4

Velero 服务器已从 1.12 版本更新至 1.14。请注意,数据保护应用程序 (DPA) 没有改变。

这会更改以下内容:

  • velero-plugin-for-csi 代码现在包括在 Velero 代码中,这意味着插件不再需要 init 容器。
  • Velero 将客户端 Burst 和 QPS 默认值分别从 30 和 20 改为 100 和 100。
  • velero-plugin-for-aws 插件更新了 BackupStorageLocation 对象(BSLs)中的 spec.config.checksumAlgorithm 字段的默认值,从 "" (不计算 checksum) 改为 CRC32 算法。知道 checksum 算法类型只能用于 AWS。几个 S3 供应商要求通过将 checksum 算法设置为 "" 来禁用 md5sum。使用您的存储供应商确认 md5sum 算法支持和配置。

    在 OADP 1.4 中,为此配置在 DPA 中创建 BSL 的默认值为 ""。这个默认值表示没有检查 md5sum,它与 OADP 1.3 一致。对于在 DPA 中创建的 BSL,使用 DPA 中的 spec.backupLocations[].velero.config.checksumAlgorithm 字段更新它。如果您的 BSLs 在 DPA 之外创建,您可以使用 BSLs 中的 spec.config.checksumAlgorithm 来更新此配置。

5.2.2.5.3.2. 备份 DPA 配置

您必须备份当前的 DataProtectionApplication (DPA) 配置。

流程

  • 运行以下命令来保存您当前的 DPA 配置:

    示例命令

    $ oc get dpa -n openshift-adp -o yaml > dpa.orig.backup
    Copy to Clipboard Toggle word wrap

5.2.2.5.3.3. 升级 OADP Operator

在升级 OpenShift API for Data Protection (OADP) Operator 时,请使用以下步骤。

流程

  1. 将 OADP Operator 的订阅频道从 stable-1.3 改为 stable-1.4
  2. 等待 Operator 和容器更新并重启。
5.2.2.5.4. 将 DPA 转换为新版本

要从 OADP 1.3 升级到 1.4,则不需要数据保护应用程序 (DPA) 更改。

5.2.2.5.5. 验证升级

使用以下步骤验证升级。

流程

  1. 运行以下命令,查看 OpenShift API for Data Protection (OADP) 资源来验证安装:

    $ oc get all -n openshift-adp
    Copy to Clipboard Toggle word wrap

    输出示例

    NAME                                                     READY   STATUS    RESTARTS   AGE
    pod/oadp-operator-controller-manager-67d9494d47-6l8z8    2/2     Running   0          2m8s
    pod/restic-9cq4q                                         1/1     Running   0          94s
    pod/restic-m4lts                                         1/1     Running   0          94s
    pod/restic-pv4kr                                         1/1     Running   0          95s
    pod/velero-588db7f655-n842v                              1/1     Running   0          95s
    
    NAME                                                       TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)    AGE
    service/oadp-operator-controller-manager-metrics-service   ClusterIP   172.30.70.140    <none>        8443/TCP   2m8s
    
    NAME                    DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR   AGE
    daemonset.apps/restic   3         3         3       3            3           <none>          96s
    
    NAME                                                READY   UP-TO-DATE   AVAILABLE   AGE
    deployment.apps/oadp-operator-controller-manager    1/1     1            1           2m9s
    deployment.apps/velero                              1/1     1            1           96s
    
    NAME                                                           DESIRED   CURRENT   READY   AGE
    replicaset.apps/oadp-operator-controller-manager-67d9494d47    1         1         1       2m9s
    replicaset.apps/velero-588db7f655                              1         1         1       96s
    Copy to Clipboard Toggle word wrap

  2. 运行以下命令,验证 DataProtectionApplication (DPA) 是否已协调:

    $ oc get dpa dpa-sample -n openshift-adp -o jsonpath='{.status}'
    Copy to Clipboard Toggle word wrap

    输出示例

    {"conditions":[{"lastTransitionTime":"2023-10-27T01:23:57Z","message":"Reconcile complete","reason":"Complete","status":"True","type":"Reconciled"}]}
    Copy to Clipboard Toggle word wrap

  3. 验证 type 被设置为 Reconciled
  4. 运行以下命令,验证备份存储位置并确认 PHASEAvailable

    $ oc get backupstoragelocations.velero.io -n openshift-adp
    Copy to Clipboard Toggle word wrap

    输出示例

    NAME           PHASE       LAST VALIDATED   AGE     DEFAULT
    dpa-sample-1   Available   1s               3d16h   true
    Copy to Clipboard Toggle word wrap

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat