安装、启动 Milvus 服务

CPU 版 MilvusGPU 版 Milvus

安装前提

操作系统

操作系统版本
CentOS7.5 或以上
Ubuntu LTS18.04 或以上

硬件

硬件建议配置
CPUIntel CPU Sandy Bridge 或以上
CPU 指令集
  • SSE42
  • AVX
  • AVX2
  • AVX512
内存8 GB 或以上(取决于具体向量数据规模)
硬盘SATA 3.0 SSD 或以上

软件

软件版本
Docker19.03 或以上

请确保可用内存大于你在 server_config.yaml 文件中设置的 cache.insert_buffer_sizecache.cache_size 之和。

确认 Docker 状态

确认 Docker daemon 正在运行:

  1. $ sudo docker info
  • 如果无法正常打印 Docker 相关信息,请启动 Docker daemon。
  • 在 Linux 上需要使用 sudo 执行 Docker 命令。若要在没有 sudo 的情况下运行 Docker 命令,请创建 docker 组并添加用户,详见 Linux 安装步骤

拉取 Milvus 镜像

拉取 CPU 版本的 Milvus 镜像:

  1. $ sudo docker pull milvusdb/milvus:0.10.3-cpu-d091720-f962e8
  • 如果你的主机由于网络限制无法在线获得 Docker 镜像和配置文件,请从其他主机在线获取镜像,保存为 TAR 文件传输回本地,传输完成后重新加载为 Docker 镜像: 点击查看离线传输相关代码示例。

    1. 将 Docker 镜像保存为 TAR 文件再使用合适的方式传输。
      $ docker save milvusdb/milvus > milvus_image.tar
    2. 将 TAR 文件传输完成后使用以下命令重新加载成 Docker 镜像。
      $ docker load < milvus_image.tar
  • 如果拉取镜像的速度过慢或一直失败,请参考 部署运维问题 中提供的解决办法。

下载配置文件

  1. $ mkdir -p /home/$USER/milvus/conf
  2. $ cd /home/$USER/milvus/conf
  3. $ wget https://raw.githubusercontent.com/milvus-io/milvus/0.10.3/core/conf/demo/server_config.yaml

如果无法通过 wget 命令下载配置文件,你也可以在 /home/$USER/milvus/conf 目录下创建 server_config.yaml 文件,然后将 server config 文件 的内容复制到你创建的配置文件中。

启动 Milvus Docker 容器

启动 Docker 容器,将本地的文件路径映射到容器中:

  1. $ sudo docker run -d --name milvus_cpu_0.10.3 \
  2. -p 19530:19530 \
  3. -p 19121:19121 \
  4. -v /home/$USER/milvus/db:/var/lib/milvus/db \
  5. -v /home/$USER/milvus/conf:/var/lib/milvus/conf \
  6. -v /home/$USER/milvus/logs:/var/lib/milvus/logs \
  7. -v /home/$USER/milvus/wal:/var/lib/milvus/wal \
  8. milvusdb/milvus:0.10.3-cpu-d091720-f962e8

上述命令中用到的参数定义如下:

  • -d: 在后台运行容器。
  • --name: 为容器指定一个名字。
  • -p: 指定端口映射。
  • -v: 将宿主机路径挂载至容器。

确认 Milvus 运行状态:

  1. $ sudo docker ps

如果 Milvus 服务没有正常启动,执行以下命令查询错误日志:

  1. $ sudo docker logs milvus_cpu_0.10.3

常见问题

可以在 Windows 上安装 Milvus 吗? 理论上只要能够支持 Docker 的操作系统都可以运行 Milvus。 为什么 Milvus 在启动时返回 Illegal instruction? 如果你的 CPU 不支持 SSE42、AVX、AVX2、AVX512 其中任何一个指令集,则 Milvus 无法正常启动。可以通过 cat /proc/cpuinfo 查看 CPU 支持的指令集。 Milvus 中如何实现数据迁移?

把原有的 Milvus 服务的整个 db 目录拷贝到新的路径下,启动新的 Milvus 服务时,将该 Milvus 服务的 db 目录映射为刚拷贝过来的 db 目录。

注意:不同版本之间,数据可能会不兼容。目前数据格式兼容到 0.7.0。

Milvus 只能使用 Docker 部署吗? Milvus 还支持源码编译,该方法仅支持 Linux 系统。详见 从源代码编译 Milvus

接下来你可以