×

OpenShift 数据保护 API (OADP) 的发行说明描述了新功能和增强功能、弃用的功能、产品建议、已知问题和已解决的问题。

有关 OADP 的更多信息,请参阅 OpenShift 数据保护 API (OADP) 常见问题解答

OADP 1.4.1 发行说明

OpenShift 数据保护 API (OADP) 1.4.1 发行说明列出了新功能、已解决的问题和错误以及已知问题。

新功能

更新客户端 qps 和突发值的新的 DPA 字段

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

使用 Kopia 启用非默认算法

通过此更新,您现在可以在 Kopia 中配置哈希、加密和分割器算法,以选择非默认选项以优化不同备份工作负载的性能。

要配置这些算法,请在 DataProtectionApplication (DPA) 配置的podConfig部分设置velero Pod 的env变量。如果未设置此变量,或选择了不受支持的算法,Kopia 将默认为其标准算法。OADP-4640

已解决的问题

现在可以成功恢复没有 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"。通过此更新,现在生成的 message 为:

found a podvolumebackup with status "InProgress" during the server starting,
mark it as "Failed".
现在可以使用 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 Build 现在可以成功完成,没有任何错误

之前,从不同集群还原BuildConfig构建资源时,应用程序会在对内部镜像注册表的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

通过此更新,在还原空PVC时,数据下载将顺利完成,并且不会生成错误消息。OADP-3106

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

之前,使用CSI和DataMover插件会导致Velero内存泄漏。备份结束时,Velero插件实例未被删除,内存泄漏会消耗内存,直到在Velero pod中生成Out of Memory (OOM) 条件。通过此更新,使用CSI和DataMover插件时不会出现Velero内存泄漏。OADP-4448

后挂钩操作不会在相关PV释放之前启动

之前,由于Data Mover操作的异步特性,在Data Mover持久卷声明 (PVC) 释放相关pod的持久卷 (PV) 之前,可能会尝试进行后挂钩操作。此问题会导致备份失败并显示PartiallyFailed状态。通过此更新,直到Data Mover PVC释放相关PV后才会启动后挂钩操作,从而消除PartiallyFailed备份状态。OADP-3140

在名称超过37个字符的命名空间中,部署DPA按预期工作

在名称超过37个字符的命名空间中安装OADP Operator以创建新的DPA时,标记“cloud-credentials”Secret会失败,并且DPA会报告以下错误

The generated label name is too long.

通过此更新,在名称超过37个字符的命名空间中创建DPA不会失败。OADP-3960

通过覆盖超时错误成功完成还原

之前,在大规模环境中,还原操作将导致Partiallyfailed状态以及错误:fail to patch dynamic PV, err: context deadline exceeded。通过此更新,使用resourceTimeout Velero服务器参数来覆盖此超时错误,从而成功完成还原。OADP-4344

有关此版本中解决的所有问题的完整列表,请参阅Jira中的OADP 1.4.1已解决的问题列表。

已知问题

还原OADP后,Cassandra应用程序pod进入CrashLoopBackoff状态

OADP还原后,Cassandra应用程序pod可能会进入CrashLoopBackOff状态。要解决此问题,请删除在还原OADP后返回错误CrashLoopBackOff状态的StatefulSet pod。然后,StatefulSet控制器将重新创建这些pod,并使其正常运行。OADP-4407

引用ImageStream的Deployment未正确还原,导致pod和卷内容损坏

在文件系统备份 (FSB) 还原操作期间,引用ImageStreamDeployment资源未正确还原。运行FSB的已还原pod和postHook会过早终止。

在还原操作期间,OpenShift Container Platform控制器使用更新的ImageStreamTag哈希更新Deployment资源中的spec.template.spec.containers[0].image字段。此更新会触发新pod的滚动更新,从而终止velero运行FSB以及后挂钩的pod。有关镜像流触发器的更多信息,请参阅根据镜像流更改触发更新

此问题的解决方法是一个两步还原过程

  1. 执行不包含Deployment资源的还原,例如

    $ velero restore create <RESTORE_NAME> \
      --from-backup <BACKUP_NAME> \
      --exclude-resources=deployment.apps
  2. 第一次还原成功后,通过包含这些资源来执行第二次还原,例如

    $ velero restore create <RESTORE_NAME> \
      --from-backup <BACKUP_NAME> \
      --include-resources=deployment.apps

OADP 1.4.0发行说明

OpenShift数据保护API (OADP) 1.4.0发行说明列出了已解决的问题和已知问题。

已解决的问题

还原在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备份在OpenShift Container Platform 4.16集群中正常工作

之前,Velero使用的是早期版本的SDK,其中不存在Spec.SourceVolumeMode字段。因此,Data Mover备份在版本4.2的外部快照程序的OpenShift Container Platform 4.16集群中失败。通过此更新,外部快照程序已升级到7.0及更高版本。因此,备份不会在OpenShift Container Platform 4.16集群中失败。OADP-3922

有关此版本中解决的所有问题的完整列表,请参阅Jira中的OADP 1.4.0已解决的问题列表。

已知问题

当未为MCG设置checksumAlgorithm时,备份失败

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

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

升级说明

始终升级到下一个次要版本。请勿跳过版本。要更新到更高版本,请一次只升级一个通道。例如,要从 OpenShift 数据保护 API (OADP) 1.1 升级到 1.3,请先升级到 1.2,然后再升级到 1.3。

OADP 1.3 到 1.4 的更改

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

这会更改以下内容

  • velero-plugin-for-csi 代码现在可在 Velero 代码中使用,这意味着插件不再需要init容器。

  • Velero 将客户端突发值和 QPS 默认值分别从 30 和 20 更改为 100 和 100。

  • velero-plugin-for-aws 插件将BackupStorageLocation对象 (BSL) 中spec.config.checksumAlgorithm字段的默认值从""(不进行校验和计算)更新为CRC32算法。已知校验和算法类型仅适用于 AWS。一些 S3 提供商需要通过将校验和算法设置为""来禁用md5sum。请与您的存储提供商确认md5sum算法的支持和配置。

    在 OADP 1.4 中,在此配置中 DPA 内创建的 BSL 的默认值为""。此默认值意味着不会检查md5sum,这与 OADP 1.3 一致。对于在 DPA 中创建的 BSL,请使用 DPA 中的spec.backupLocations[].velero.config.checksumAlgorithm字段进行更新。如果您的 BSL 在 DPA 外部创建,则可以使用 BSL 中的spec.config.checksumAlgorithm更新此配置。

备份 DPA 配置

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

步骤
  • 运行以下命令保存当前 DPA 配置

    示例命令
    $ oc get dpa -n openshift-adp -o yaml > dpa.orig.backup

升级 OADP 运算符

升级 OpenShift 数据保护 API (OADP) 运算符时,请使用以下步骤。

步骤
  1. 将 OADP 运算符的订阅通道从stable-1.3更改为stable-1.4

  2. 等待运算符和容器更新并重新启动。

将 DPA 转换为新版本

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

验证升级

请使用以下步骤验证升级。

步骤
  1. 通过运行以下命令查看 OpenShift 数据保护 API (OADP) 资源来验证安装

    $ oc get all -n openshift-adp
    示例输出
    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
  2. 通过运行以下命令验证DataProtectionApplication (DPA) 是否已协调。

    $ oc get dpa dpa-sample -n openshift-adp -o jsonpath='{.status}'
    示例输出
    {"conditions":[{"lastTransitionTime":"2023-10-27T01:23:57Z","message":"Reconcile complete","reason":"Complete","status":"True","type":"Reconciled"}]}
  3. 验证type是否设置为Reconciled

  4. 通过运行以下命令验证备份存储位置并确认PHASEAvailable

    $ oc get backupstoragelocations.velero.io -n openshift-adp
    示例输出
    NAME           PHASE       LAST VALIDATED   AGE     DEFAULT
    dpa-sample-1   Available   1s               3d16h   true