高性能向量库 qdrant 高可用部署指南

以下是使用 Markdown 润色后的 Qdrant 部署文档,保留了原始信息结构并优化了可读性和格式:


Qdrant 高可用部署指南

  • 部署版本v1.14.1
  • 部署方式:二进制高可用部署(1 主 2 从)

一、部署依赖环境

由于 Qdrant 依赖较高版本的 glibcgcc,需自行构建:

  • glibc: 2.38
  • gcc: 13.2.0

1. 安装构建依赖

sudo dnf install -y \
  m4 bison gawk gcc gcc-c++ make tar wget bzip2 \
  gmp-devel mpfr-devel libmpc-devel glibc-devel kernel-headers \
  flex texinfo patch perl which diffutils

2. 构建 glibcgcc

#!/bin/bash
set -e

export PREFIX=/opt/qdrant-env
export GLIBC_VERSION=2.38
export GCC_VERSION=13.2.0

mkdir -p $PREFIX/src && cd $PREFIX/src

# 下载源码
wget http://mirrors.aliyun.com/gnu/glibc/glibc-$GLIBC_VERSION.tar.gz
wget http://mirrors.aliyun.com/gnu/gcc/gcc-$GCC_VERSION/gcc-$GCC_VERSION.tar.gz
tar -xf glibc-$GLIBC_VERSION.tar.gz
tar -xf gcc-$GCC_VERSION.tar.gz

# 编译 glibc
mkdir -p glibc-build && cd glibc-build
../glibc-$GLIBC_VERSION/configure --prefix=$PREFIX/glibc --disable-werror
make -j$(nproc) && make install
cd ..

# 编译 gcc(只构建 C++)
cd gcc-$GCC_VERSION
./contrib/download_prerequisites
mkdir -p ../gcc-build && cd ../gcc-build
../gcc-$GCC_VERSION/configure --prefix=$PREFIX/gcc --disable-multilib --enable-languages=c,c++ --disable-bootstrap
make -j$(nproc) && make install

echo "✅ glibc and gcc build complete"

二、部署 Qdrant

1. 下载并解压 Qdrant

sudo mkdir -p /opt/qdrant
cd /opt/qdrant
wget https://github.com/qdrant/qdrant/releases/download/v1.14.1/qdrant-x86_64-unknown-linux-gnu.tar.gz
tar zxvf qdrant-x86_64-unknown-linux-gnu.tar.gz

2. 配置 Qdrant

编辑 /opt/qdrant/config/production.yaml,参考示例进行修改:

  • 日志级别:log_level: INFO
  • 数据存储路径:/aifs01/qdrant/data/storage
  • 快照路径:/aifs01/qdrant/data/snapshots
  • 启用集群:cluster.enabled: true
  • 主节点地址:http://10.17.39.11:6335
  • 监听端口:HTTP 6333,gRPC 6334
  • 启用仪表盘访问路径:/opt/qdrant/static

✅ 配置文件建议统一,所有节点使用同一份配置。部分差异(如启动参数)通过 systemd 区分。


三、创建 systemd 启动服务

1. Master 节点(/etc/systemd/system/qdrant.service

[Unit]
Description=Qdrant Vector Search Engine Master Node
After=network.target

[Service]
Type=simple
WorkingDirectory=/opt/qdrant
Environment=LD_LIBRARY_PATH=/opt/qdrant-env/glibc/lib:/opt/qdrant-env/gcc/lib64
ExecStart=/opt/qdrant-env/glibc/lib/ld-linux-x86-64.so.2 \
  --library-path /opt/qdrant-env/glibc/lib:/opt/qdrant-env/gcc/lib64 \
  /opt/qdrant/qdrant --config-path /opt/qdrant/config/production.yaml --uri http://10.17.39.11:6335
LimitNOFILE=65536
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target

2. Slave 节点(/etc/systemd/system/qdrant.service

[Unit]
Description=Qdrant Vector Search Engine Slave Node
After=network.target

[Service]
Type=simple
WorkingDirectory=/opt/qdrant
Environment=LD_LIBRARY_PATH=/opt/qdrant-env/glibc/lib:/opt/qdrant-env/gcc/lib64
ExecStart=/opt/qdrant-env/glibc/lib/ld-linux-x86-64.so.2 \
  --library-path /opt/qdrant-env/glibc/lib:/opt/qdrant-env/gcc/lib64 \
  /opt/qdrant/qdrant --config-path /opt/qdrant/config/production.yaml --bootstrap http://10.17.39.11:6335
LimitNOFILE=65536
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target

⚠️ 注意:主从节点的启动参数不同,主用 --uri,从用 --bootstrap


四、部署 Dashboard

在 Master 节点上:

wget https://github.com/qdrant/qdrant-web-ui/releases/download/v0.1.40/dist-qdrant.zip
unzip dist-qdrant.zip
cp -r dist/* /opt/qdrant/static/

访问地址(堡垒机内网):

http://10.17.39.11:6333/dashboard#/console

五、开机启动

systemctl enable qdrant

六、数据备份策略

  • 时间:每日凌晨 1 点
  • 保留:最近 7 天
  • 位置/data/qdrant/backup/qdrant/
  • 方式:通过 crontab 定时任务执行

七、常见运维问题

❓ Q: 如果节点 IP 变更怎么办?

  • A: 修改存储路径下的 raft_state.json 文件中的 IP 信息
    路径示例:${STORAGE_PATH}/storage/raft_state.json

    ⚠️ 注意:必须在停止 Qdrant 后进行修改,否则可能导致数据不一致!


如果你需要我为上述文档生成 PDF、导出为 HTML、或做更多内容结构优化(比如分章节、多语言),也可以告诉我。

评论栏