Milvus Standalone 跨服务器迁移(本地存储迁移)
·
景
我在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 镜像版本 | 源和目标使用相同版本 |
更多推荐




所有评论(0)