尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

Velero 的 PV 备份,为什么文件系统模式值得单独拎出来讲

Velero 的 PV 备份,为什么文件系统模式值得单独拎出来讲 Velero 的 PV 备份为什么文件系统模式值得单独拎出来讲【免费下载链接】veleroBackup and migrate Kubernetes applications and their persistent volumes项目地址: https://gitcode.com/GitHub_Trending/ve/veleroVelero 的 PV 备份不只有存储快照一条路。它的文件系统备份能把 PV 内的数据直接抓下来存进对象存储不依赖存储厂商的快照能力快照覆盖不到的卷照样能进备份、能跨集群恢复。如果你的集群里 ext4/xfs 卷的底层存储不支持 CSI Snapshot或者你要把应用整体迁到另一家厂商的集群这套模式就是为你准备的。3 条命令跑通从备份到恢复的最短路径先拿结果备份、确认、恢复三步走完你就有一份带 PV 数据的应用备份。velero backup create nginx-fs-backup \ --include-namespaces nginx-example \ --include-resources pods,pvc,statefulsets \ --include-volumesall \ --volume-backup-modefilesystem--include-volumesall声明这个备份里的所有卷都要做文件系统备份--volume-backup-modefilesystem显式指定走文件系统模式而不是默认快照。velero backup describe nginx-fs-backup --details velero backup logs nginx-fs-backup | grep filesystem backup completed前者看进度和详情后者确认卷数据环节确实跑完。日志里出现完成标记、且没有 Error 级别的卷操作记录这一阶段才算过。velero restore create --from-backup nginx-fs-backup \ --include-resources pods,pvc \ --namespace-mappings nginx-example:nginx-recovery这条把同一份备份恢复到新命名空间namespace-mappings 负责重定向避免和原环境撞车。恢复不是黑盒它有一张明确的状态流转表从 InProgress 经过 WaitingForPluginOperations、Finalizing最后停在 Completed 或 PartiallyFailed。停在失败态时图上对应的分支就是你要查的方向。EnableFileSystemBackup 开关在哪filesystem 模式凭什么成立这节讲清楚两个为什么原理到这里讲完后面不再重复。服务端总开关在 Velero 部署配置里configuration.features加上EnableFileSystemBackuptrue不开它后面全白搭。客户端的--volume-backup-modefilesystem让这次备份的卷数据走 datapath 模块直接采集卷内容而不是让存储系统出快照。好处是兼容所有文件系统类型ext4/xfs不挑厂商驱动还能按目录排除临时文件控制备份体积。前置条件Kubernetes 1.24、Velero 1.10推荐 1.17以及一个可用的 S3 兼容对象存储做备份存储位置仓库里的 MinIO 示例就是干这个的。备份完成后顺手做一次容量核对PV 声明容量和实际备份大小比例应当接近差异通常不超过 10%明显偏离说明有数据没被采集进来。两个带验收标准的实战场景场景一数据目录损坏抢救单个文件目标应用数据目录如/usr/share/nginx/html损坏只救回一个文件不动整体环境。velero restore create --from-backup nginx-fs-backup \ --include-resources pods,pvc \ --namespace-mappings nginx-example:nginx-recovery恢复完到新命名空间后取出目标文件kubectl exec -it nginx-0 -n nginx-recovery -- cp /data/html/index.html /tmp/ kubectl cp nginx-recovery/nginx-0:/tmp/index.html ./recovered-index.html怎么确认成功把拿到的文件和损坏前的已知版本做内容比对哈希一致即通过比对完删掉临时恢复环境即可。场景二跨集群整体迁移目标从生产集群迁到另一家存储厂商的测试集群。关键前提是文件系统备份不绑定存储系统源集群是哪家 CSI 都无所谓。velero backup download nginx-fs-backup --output-dir ./backup-exportvelero backup upload --from-dir ./backup-export velero restore create --from-backup nginx-fs-backup第一条在源集群把备份落到本地后两条在目标集群导入并直接恢复。验收标准restore 状态 Completed新命名空间的 PVC 全部 Bound抽查卷内文件数量和清单一致。备份卡在等待卷、速度慢、权限不对先查这几处三个高频问题按出现概率排⚠️ 备份长时间卡在等待卷waiting for volumes多半是 PVC 没被运行中的 Pod 挂上。先查目标 Pod 的 volumeMounts 和 PV/PVC 的 Bound 状态卷没挂上时文件系统备份根本没有采集入口。恢复后文件权限和预期不符常见于 SELinux 上下文不一致。在 PodSecurityContext 里加fsGroup: 101按实际属组调整再恢复一次。备份速度上不去低于 10MB/s 量级一般不是 Velero 的问题先看节点网络带宽。确认是上传瓶颈后调整上传并发并检查VELERO_FILESYSTEM_BACKUP_CONCURRENCY环境变量默认值 4大卷场景可以往上加。再往深走一点的成本与性能优化重复备份想省钱用 Kopia 的增量算法变化小的块不再重复传输。备份存储位置开compression: zstd压缩同时在 S3 侧配生命周期规则例如 30 天过期把长期留存成本压下去。收尾文件系统备份是 Velero 在快照之外的另一条卷保护路径服务端开EnableFileSystemBackupCLI 用--volume-backup-modefilesystem备份、下载、上传、恢复四步闭环跨存储厂商也能走通。卡住时记住顺序先查卷挂载再查权限上下文最后才动并发参数。想继续深入可以看 datapath 模块 了解卷数据怎么被采集或者到 Velero 社区论坛提问代码在 gitcode.com/GitHub_Trending/ve/velero 仓库clone 下来对着源码读比看文档更快。【免费下载链接】veleroBackup and migrate Kubernetes applications and their persistent volumes项目地址: https://gitcode.com/GitHub_Trending/ve/velero创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表