milvus-standalone跨服务器迁移-local

Milvus Standalone 跨服务器迁移(本地存储迁移)

数据存储在本地且数据量不大(几十w不算大)时,Milvus迁移很简单:打包数据目录 → 传到目标机 → 解压 → 重启服务

背景

我在milvus容器启动时设置了-e COMMON_STORAGETYPE=local,所以数据存储在本地磁盘,而非常见的对象存储。下面简单补充Milvus数据存储的基础知识,常见的包括以下3种类型(实际不止3种):

存储类型 用途 可选实现 备注
对象存储 持久化存储向量数据、索引文件和日志 MinIO(默认)、AWSS3、Azure Blob Storage、GCS、阿里云 OSS 配置在minio 部分
本地存储 搜索/查询期间缓存向量数据,减少远程存储访问延迟 默认路径/var/lib/milvus/data/
元数据存储 存储集合元数据、模式定义和集群状态 etcd(默认)、TiKV TiKV 支持更大规模水平扩展

迁移步骤

1. 源服务器 A:打包数据

为避免数据写入中断,在打包前先必须停止 Milvus 容器,所以一定要在非业务峰期进行。

# 停止 Milvus 容器()
docker stop <container_name>

# 打包 volumes 数据目录
tar -czvf milvus_local_backup_20260622.tar.gz /path/to/volumes

# 重新启动源服务器 Milvus
docker start <container_name>

volumes 目录结构参考:

volumes/
├── milvus/
│   ├── data/
│   ├── etcd/
│   ├── rdb_data/
│   └── rdb_data_meta_kv/

2. 传输到目标服务器 B

选择传输方式后,将压缩包传到目标机。

3. 目标服务器 B:解压

tar -xzvf milvus_local_backup_20260622.tar.gz -C /path/to/volumes

4. 启动 Milvus

使用与源服务器相同的 docker 指令启动容器。需保证以下文件和原始服务器配置保持一致:

文件/配置 说明
volumes/ [重要]数据目录,容器内外路径映射一致
user.yaml 自定义配置
embedEtcd.yaml etcd 配置文件
Milvus 镜像版本 源和目标使用相同版本

5. 验证

  • 检查数据量是否一致
  • 测试查询效果是否正常

预告: 下一篇介绍对于本地存储,使用milvus-backup工具进行跨服务器迁移, 不过对于本地存储且数据量不大的milvus数据, 真是杀鸡焉用牛刀。

posted @ 2026-07-02 10:50  第十昵称  阅读(72)  评论(0)    收藏  举报