我在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 镜像版本 源和目标使用相同版本
Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐