OADP 在线恢复失败,因为 PVC 处于非活动状态 Bound
使用该 OADP 实用程序恢复在线备份失败,因为在恢复过程中PVCs未处于状态 Bound 。
故障现象
在Velero日志文件中,您会看到类似以下示例的错误消息:
time="<timestamp>" level=error msg="err patching dynamic PV using volume info" error="fail to patch dynamic PV, err: context deadline exceeded,
PVC: <PVC_name>, PV: pvc-dfd0843f-4b3e-453c-b4c2-32dedc6011ed" error.file="/remote-source/velero/app/pkg/controller/restore_finalizer_controller.go:376"
error.function="github.com/vmware-tanzu/velero/pkg/controller.(*finalizerContext).patchDynamicPVWithVolumeInfo.func1" logSource="/remote-source/velero/app/pkg/controller/restore_finalizer_controller.go:376" restore=oadp-operator/cpd-tenant-vol-r-44d6112d-e239-11ef-be44-22220a112191
环境
此问题发生在存储 OpenShift® Data Foundation 上 IBM® Software Hub 部署时, CephFS 当PVCs较大或包含大量文件时。
诊断问题
通过运行以下命令查看Velero日志文件中的错误:
oc logs -n ${OADP_OPERATOR_PROJECT} $(oc get po -n ${OADP_OPERATOR_PROJECT} -l deploy=velero --no-headers | awk '{print $1}' | head -1) | grep level=error
解决问题
在恢复过程中,通过更新 (DPA) 自定义 DataProtectionApplication 资源中的参数 resourceTimeout ( Bound 默认值为 60 分钟)来延长等待 PVC 进入状态的时间。 运行以下命令:
oc patch dpa <dpa_name> -n ${OADP_OPERATOR_PROJECT} --type merge -p '{"spec": {"configuration": {"velero": {"resourceTimeout": "120m"}}}}'
更新数据保护协议后, 清理集群 ,然后重新尝试恢复。