利用 milvus-backup 实现跨集群 Milvus 数据无缝迁移与恢复

张开发
2026/5/4 22:36:19 15 分钟阅读
利用 milvus-backup 实现跨集群 Milvus 数据无缝迁移与恢复
1. 为什么需要跨集群 Milvus 数据迁移在真实业务场景中我们经常会遇到需要将 Milvus 数据从一个集群迁移到另一个集群的情况。比如公司业务扩展需要部署新的数据中心或者测试环境的数据需要同步到生产环境。传统的数据迁移方式往往需要停机维护而 milvus-backup 工具则能实现不停机热迁移这对业务连续性要求高的场景特别重要。我去年就遇到过这样一个案例某电商平台在大促前需要将向量搜索服务从本地机房迁移到云上。他们使用了 3 个 Kubernetes 集群分别部署 Milvus通过 milvus-backup 只用 2 小时就完成了 2TB 向量数据的迁移全程业务零中断。这种跨集群迁移能力在实际运维中非常实用。2. 迁移前的环境准备2.1 硬件资源评估在开始迁移前首先要评估源集群和目标集群的资源情况。建议目标集群的资源配置不低于源集群特别是 CPU 和内存。我遇到过有人迁移后查询性能下降的情况后来发现是目标集群的 query node 配置不足导致的。这里有个经验公式可以参考计算节点每 100 万向量至少 1 核 CPU 2GB 内存存储空间原始数据量的 3 倍考虑副本和索引2.2 网络连通性检查跨集群迁移最关键的是网络配置。需要确保源 Milvus 集群与目标集群网络互通两个 MinIO 集群间的网络带宽足够建议千兆以上防火墙开放相关端口默认 9000 用于 MinIO19530 用于 Milvus我曾经踩过一个坑两个集群在不同 VPC 内虽然能 ping 通但传输速度极慢。后来通过配置 VPC 对等连接才解决。建议先用 iperf3 测试实际带宽。3. milvus-backup 工具部署详解3.1 安装与配置最新版的 milvus-backup 已经支持二进制直接运行安装非常简单wget https://github.com/milvus-io/milvus-backup/releases/download/v0.4.28/milvus-backup_Linux_x86_64.tar.gz tar -xzf milvus-backup_Linux_x86_64.tar.gz chmod x milvus-backup mv milvus-backup /usr/local/bin/配置文件 backup.yaml 有几个关键参数需要注意crossStorage: 跨集群迁移必须设为 truebackupBucketName: 建议按业务命名如 recommend-system-backupparallelism.copydata: 根据网络带宽调整百兆网络建议设为 323.2 权限配置如果 Milvus 开启了鉴权需要在配置文件中正确设置authorizationEnabled: true user: root password: your_password建议专门创建一个备份专用账号只授予必要的 read 权限。我遇到过因为权限不足导致备份失败的情况错误日志还不明显排查了很久。4. 完整迁移流程实操4.1 数据备份阶段执行备份命令时有几个实用参数./milvus-backup create \ -n recommend_backup_202308 \ --collectionNames user_vectors,product_vectors \ --description 大促前数据迁移建议每次备份都添加有意义的名称和描述方便后续管理。备份过程中可以通过日志观察进度tail -f logs/backup.log4.2 跨集群数据传输对于大型数据集我推荐两种传输方案直接传输适合网络好的环境简单配置 crossStoragetrue 即可分段传输先备份到本地再用 rsync 增量同步曾经处理过一个 10TB 的迁移项目用第二种方案分 5 次同步每次只传输差异部分节省了 60% 的时间。4.3 数据恢复技巧恢复时有个很有用的功能是指定集合./milvus-backup restore \ -n recommend_backup_202308 \ --collections user_vectors \ --restore_index如果遇到版本兼容问题可以尝试先不恢复索引去掉 --restore_index手动重建索引调整索引参数适配新集群5. 常见问题排查指南5.1 备份失败分析最近遇到的一个典型错误Error: MinIO access denied解决方法检查 accessKeyID/secretAccessKey 是否正确确认 MinIO 桶的读写权限测试手动上传文件到 MinIO5.2 恢复后数据不一致如果发现恢复后的集合文档数不对可以检查备份时的集合状态最好在业务低峰期操作确认没有并发写入使用 milvus-backup list 验证备份完整性5.3 性能调优建议对于超大规模数据迁移建议增大 copydata 并行度128-256调整 maxSegmentGroupSize4G-8G分批迁移按集合或分区6. 生产环境最佳实践6.1 迁移验证方案我总结了一套验证 checklist数据完整性校验对比集合的 row_count查询一致性测试抽样查询结果比对性能基准测试QPS 和延迟对比6.2 监控与告警配置建议在迁移过程中监控网络带宽使用率Milvus 节点资源占用MinIO 存储空间变化可以设置 Prometheus 告警规则当迁移速率低于预期时及时通知。6.3 回滚方案设计任何迁移都要准备回滚方案保留源集群至少 7 天记录源集群的所有配置参数准备快速回切脚本去年我们有个金融客户新集群遇到硬件故障靠着完善的回滚方案在 15 分钟内恢复了服务。

更多文章