docker 组合 2 个 qdrant 服务和 1 个卷挂载时被告知不可用

问题描述 投票:0回答:1

首先是错误日志:

qdrant-distributed-deployment-qdrant_secondary-1  | 2024-01-09T12:09:00.369285Z ERROR qdrant::startup: Panic backtrace:
qdrant-distributed-deployment-qdrant_secondary-1  |    0: qdrant::startup::setup_panic_hook::{{closure}}
qdrant-distributed-deployment-qdrant_secondary-1  |    1: <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call
qdrant-distributed-deployment-qdrant_secondary-1  |              at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/alloc/src/boxed.rs:2021:9
qdrant-distributed-deployment-qdrant_secondary-1  |    2: std::panicking::rust_panic_with_hook
qdrant-distributed-deployment-qdrant_secondary-1  |              at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/std/src/panicking.rs:735:13
qdrant-distributed-deployment-qdrant_secondary-1  |    3: std::panicking::begin_panic_handler::{{closure}}
qdrant-distributed-deployment-qdrant_secondary-1  |              at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/std/src/panicking.rs:609:13
qdrant-distributed-deployment-qdrant_secondary-1  |    4: std::sys_common::backtrace::__rust_end_short_backtrace
qdrant-distributed-deployment-qdrant_secondary-1  |              at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/std/src/sys_common/backtrace.rs:170:18
qdrant-distributed-deployment-qdrant_secondary-1  |    5: rust_begin_unwind
qdrant-distributed-deployment-qdrant_secondary-1  |              at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/std/src/panicking.rs:597:5
qdrant-distributed-deployment-qdrant_secondary-1  |    6: core::panicking::panic_fmt
qdrant-distributed-deployment-qdrant_secondary-1  |              at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/core/src/panicking.rs:72:14
qdrant-distributed-deployment-qdrant_secondary-1  |    7: core::result::unwrap_failed
qdrant-distributed-deployment-qdrant_secondary-1  |              at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/core/src/result.rs:1652:5
qdrant-distributed-deployment-qdrant_secondary-1  |    8: storage::content_manager::consensus_manager::ConsensusManager<C>::new
qdrant-distributed-deployment-qdrant_secondary-1  |    9: qdrant::main
qdrant-distributed-deployment-qdrant_secondary-1  |   10: std::sys_common::backtrace::__rust_begin_short_backtrace
qdrant-distributed-deployment-qdrant_secondary-1  |   11: main
qdrant-distributed-deployment-qdrant_secondary-1  |   12: <unknown>
qdrant-distributed-deployment-qdrant_secondary-1  |   13: __libc_start_main
qdrant-distributed-deployment-qdrant_secondary-1  |   14: _start
qdrant-distributed-deployment-qdrant_secondary-1  |
qdrant-distributed-deployment-qdrant_secondary-1  | 2024-01-09T12:09:00.369299Z ERROR qdrant::startup: Panic occurred in file lib/storage/src/content_manager/consensus/consensus_wal.rs at line 22: Can't open Collections meta Wal: Os { code: 11, kind: WouldBlock, message: "Resource temporarily unavailable" }
qdrant-distributed-deployment-qdrant_secondary-1 exited with code 101

这是我的 docker-compose.yaml:

version: '3.9'
services:
  qdrant_primary:
    image: "qdrant/qdrant:v1.7.3"
    volumes:
      - qdrant_storage:/qdrant/storage
    ports:
      - "6333:6333"
    environment:
      QDRANT__CLUSTER__ENABLED: "true"
    command: ["./qdrant", "--uri", "http://qdrant_primary:6335"]
  qdrant_secondary:
    image: "qdrant/qdrant:v1.7.3"
    volumes:
      - qdrant_storage:/qdrant/storage
    environment:
      QDRANT__CLUSTER__ENABLED: "true"
    command: ["./qdrant", "--bootstrap", "http://qdrant_primary:6335"]
volumes:
  qdrant_storage:
    driver: local
    driver_opts:
      type: none
      o: bind
      device: /Users/test_qdrant

我试图在我的 Mac 上使用 docker-compose 测试 qdrant 的分布式部署,但我的 2 个服务无法同时组成两者。是否因为挂载路径被 qdrant_primary 使用,所以第二个可以访问它?我该如何配置我的 yaml 来处理这种情况?对不起我的 docker 菜鸟

docker-compose docker-volume qdrant
1个回答
0
投票

不同的Qdrant实例(节点)必须使用不同的存储目录。您当前正在尝试对多个节点使用相同的存储目录,这就是出现此错误的原因。

保持原始 Docker 撰写文件基本完整,您可能希望将其更改为使用单独的卷,如下所示:

version: '3.9'
services:
  qdrant_primary:
    image: "qdrant/qdrant:v1.7.3"
    volumes:
      - qdrant_storage_primary:/qdrant/storage
    ports:
      - "6333:6333"
    environment:
      QDRANT__CLUSTER__ENABLED: "true"
    command: ["./qdrant", "--uri", "http://qdrant_primary:6335"]
  qdrant_secondary:
    image: "qdrant/qdrant:v1.7.3"
    volumes:
      - qdrant_storage_secondary:/qdrant/storage
    environment:
      QDRANT__CLUSTER__ENABLED: "true"
    command: ["./qdrant", "--bootstrap", "http://qdrant_primary:6335"]
volumes:
  qdrant_storage_primary:
    driver: local
    driver_opts:
      type: none
      o: bind
      device: /Users/test_qdrant_primary
  qdrant_storage_secondary:
    driver: local
    driver_opts:
      type: none
      o: bind
      device: /Users/test_qdrant_secondary

Qdrant 将根据您的使用情况负责跨节点同步您的数据。

© www.soinside.com 2019 - 2024. All rights reserved.