使用AzureFile创建的动态PVC经Velero恢复后无数据问题咨询
故障根因
- Velero 官方 Azure 提供商默认仅支持 Azure Disk 类型 PV 的原生快照备份,你当前使用的是树内(in-tree)Azure File 驱动
kubernetes.io/azure-file对应的存储类,Velero 不会对该类型 PV 做实际数据快照,仅备份 PVC、PV 的 Kubernetes 资源元数据。 - 恢复时新集群已预先创建同名 StorageClass,Velero 恢复 PVC 资源后会自动触发该存储类动态创建一个全新的空 Azure File 共享,因此挂载后 Pod 看不到原集群的业务数据。
- Azure Disk 可正常恢复的原因是其快照能力被 Velero Azure 提供商原生支持,备份时会自动对关联磁盘做快照,恢复时直接将快照恢复为新磁盘绑定到 PVC,数据可完整继承。
解决方案
- 方案一:开启文件级备份(无需修改现有存储配置)
开启 Velero 的 Restic 或 Kopia 组件,备份时为挂载 Azure File PVC 的 Pod 添加 annotationbackup.velero.io/backup-volumes: <Pod内对应的卷名>,Velero 会直接读取卷内的文件备份到后端存储,恢复时自动将数据写入新创建的 Azure File 卷中。 - 方案二:迁移到 CSI 版本 Azure File 驱动(长期推荐)
树内 Azure File 驱动已被官方弃用,你可以将 StorageClass 替换为 CSI 版本(provisioner 为file.csi.azure.com),同时部署 Azure File CSI 驱动、CSI 快照组件和 Velero CSI 插件,即可获得和 Azure Disk 一致的原生快照备份恢复能力。
内容的提问来源于stack exchange,提问作者Soundarya
相关产品推荐
相关产品推荐

