Milvus环境搭建:Ubuntu 22.04平台最佳实践

云信安装大师
90
AI 质量分
10 5 月, 2025
3 分钟阅读
0 阅读

Milvus环境搭建:Ubuntu 22.04平台最佳实践

引言

Milvus是一款开源的向量数据库,专为AI应用设计,能够高效处理海量向量数据的存储和检索。本文将详细介绍在Ubuntu 22.04系统上搭建Milvus环境的完整流程,包括安装依赖、配置服务和验证安装等步骤。

准备工作

在开始之前,请确保:

  1. 已安装Ubuntu 22.04操作系统(建议使用LTS版本)
  2. 拥有sudo权限的用户账户
  3. 至少8GB内存(推荐16GB以上)
  4. 至少50GB可用磁盘空间
  5. 稳定的网络连接

步骤1:系统更新与依赖安装

首先更新系统并安装必要的依赖项:

代码片段
# 更新软件包列表
sudo apt update && sudo apt upgrade -y

# 安装基础依赖
sudo apt install -y \
    curl \
    wget \
    git \
    build-essential \
    cmake \
    python3-pip \
    python3-dev \
    libssl-dev \
    zlib1g-dev \
    libffi-dev

注意事项
build-essential包含GCC编译器和其他构建工具
libssl-devzlib1g-dev是Milvus运行时的关键依赖
– Ubuntu默认已包含Python3,这里确保pip也安装了

步骤2:安装Docker和Docker Compose

Milvus推荐使用Docker容器化部署:

代码片段
# 安装Docker依赖
sudo apt install -y ca-certificates curl gnupg lsb-release

# 添加Docker官方GPG密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

# 添加Docker稳定版仓库
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# 安装Docker引擎
sudo apt update && sudo apt install -y docker-ce docker-ce-cli containerd.io

# 将当前用户加入docker组(避免每次使用sudo)
sudo usermod -aG docker $USER && newgrp docker

# 验证Docker安装
docker --version

# 安装Docker Compose(独立版本)
sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

# 验证Docker Compose安装
docker-compose --version

原理说明
– Docker提供了轻量级的容器环境,使Milvus及其依赖组件可以隔离运行
– Docker Compose用于编排多个容器服务(如Milvus、etcd等)

步骤3:下载Milvus配置文件

我们将使用官方提供的docker-compose.yml文件:

代码片段
# 创建工作目录
mkdir milvus && cd milvus

# 下载最新版配置文件(以2.3.x为例)
wget https://github.com/milvus-io/milvus/releases/download/v2.3.1/milvus-standalone-docker-compose.yml -O docker-compose.yml

# (可选)检查下载的文件内容是否正确
cat docker-compose.yml | head -n 10

实践经验
– Milvus版本选择应根据项目需求决定,生产环境建议使用LTS版本
standalone模式适合开发和测试环境,生产环境应考虑集群部署方案

步骤4:启动Milvus服务

使用以下命令启动所有服务:

代码片段
docker-compose up -d

启动后可以查看服务状态:

代码片段
docker-compose ps

正常输出应类似:

代码片段
      Name                     Command                  State                         Ports                       
-----------------------------------------------------------------------------------------------------------------
milvus-etcd         etcd -advertise-client-url ...   Up             2379/tcp,2380/tcp                             
milvus-minio        /usr/bin/docker-entrypoint ...   Up (healthy)   9000/tcp                                      
milvus-standalone   /tini -- milvus run standalone   Up             0.0.0.0:19530->19530/tcp,:::19530->19530/tcp  

注意事项
-d参数表示后台运行容器
– 首次启动会下载相关镜像,耗时取决于网络速度(约5分钟)
19530是Milvus的默认服务端口

步骤5:验证安装

我们可以通过Python客户端测试连接:

代码片段
pip install pymilvus==2.3.1 numpy pandas tabulate tqdm colorama grpcio grpcio-tools protobuf==3.20.* 

创建测试脚本test_milvus.py:

代码片段
from pymilvus import connections, utility, CollectionSchema, FieldSchema, DataType, Collection

# 连接Milvus服务器(默认地址localhost:19530)
connections.connect("default", host="localhost", port="19530")

print(f"Milvus版本: {utility.get_server_version()}")

# 检查连接状态(应返回True)
print(f"连接状态: {connections.has_connection('default')}")

# (可选)创建测试集合的代码...
print("连接测试成功!")

运行测试脚本:

代码片段
python3 test_milvus.py

预期输出:

代码片段
Milvus版本: v2.3.x # x为具体小版本号 
连接状态: True 
连接测试成功!

(可选)步骤6:管理服务命令汇总

常用管理命令:

代码片段
# 停止服务(保留数据)
docker-compose down 

# 停止并删除所有数据(谨慎使用!)
docker-compose down -v 

# 查看日志(Ctrl+C退出) 
docker-compose logs -f 

# (仅当需要时)删除所有镜像和容器 
docker system prune -a 

(可选)常见问题解决

Q1: Docker权限问题导致无法启动容器?

解决方法:

代码片段
sudo chmod +x /usr/local/bin/docker-compose 
sudo systemctl restart docker 
newgrp docker #重新加载用户组权限 

Q2: MinIO健康检查失败?

可能是资源不足导致,尝试增加系统资源或等待更长时间。

Q3: Python客户端连接超时?

检查防火墙设置:

代码片段
sudo ufw allow 19530/tcp 

Q4: etcd启动失败?

可能是端口冲突,修改docker-compose.yml中的端口映射后重新启动。

(可选)性能优化建议

  1. 资源配置

    代码片段
    # docker-compose.yml中修改resources部分示例:
    milvus:
      deploy:
        resources:
          limits:
            cpus: '4'
            memory: '8G'
    
  2. 数据持久化

    代码片段
    volumes:
      # MinIO数据卷示例:
      minio-data:/data/minio  
    
  3. 定期维护

    代码片段
    # compact操作减少存储碎片(通过SDK调用)
    collection.compact()
    

(可选)生产环境建议

  1. 备份策略:定期备份元数据目录和MinIO存储桶
  2. 监控方案:集成Prometheus+Grafana监控指标
  3. 高可用部署:考虑集群模式而非standalone模式

(可选)卸载指南

如需完全移除:

代码片段
cd milvus #进入工作目录  
docker-compose down --volumes --rmi all  
docker rmi $(docker images | grep milvus)  
rm -rf ~/milvu*  

(可选)升级指南

升级到新版本的一般流程:

1)备份重要数据
2)停止当前服务(docker-compose down)
3)下载新版配置文件并替换旧文件
4)重新拉取镜像(docker-compose pull)
5)启动新版本(docker-compose up)


通过以上步骤,您已经在Ubuntu22.04上成功搭建了Milvu环境。现在可以开始探索向量数据库的强大功能了!

原创 高质量