Skip to content

Distributed deployment

1. 노드 수 결정

Qdrant 클러스터의 노드 수는 비용·장애 허용성(내구성)·성능 간의 우선순위에 따라 달라진다.

우선순위 권장 구성 장점 단점
비용 절감 단일 노드 인프라 비용 최소 장애 시 즉시 다운타임 발생, 영구 손실 복구 불가
내구성 최우선 3개 이상 노드 + 2-배수 복제 노드 1개 장애 시에도 읽기·쓰기·컬렉션 작업 지속, 영구 손실 복구 가능, 로드밸런스로 성능 향상 비용 증가
균형형 2개 노드 + 복제 노드 1개 장애 시 대부분의 읽기·쓰기 가능, 비용은 3노드보다 저렴 컬렉션 작업(생성·수정·삭제)은 중단, 영구 손실 복구 불가

요약하면 단일 노드는 비프로덕션, 3+ 노드 복제 클러스터가 권장, 2노드 복제는 비용·성능 절충안이다.

2. 자체 호스팅에서 분산 모드 활성화

  1. 환경 변수 또는 설정

    cluster:
      enabled: true
      p2p:
        port: 6335      # 내부 통신 포트
      consensus:
        tick_period_ms: 100
    

    혹은 QDRANT__CLUSTER__ENABLED=true 지정.

  2. 첫 번째 노드 기동

    ./qdrant --uri 'http://node1:6335'
    
  3. 추가 노드 합류

    ./qdrant --bootstrap 'http://node1:6335'
    # 필요 시 --uri 로 자신 주소 명시
    
  4. 상태 확인

    GET /cluster
    

분산 모드 활성화만으로 데이터가 자동 복제되지 않는다.
Replication 설정 또는 Shard 이동 단계가 필요하다.

3. Qdrant Cloud에서 분산 모드

  • 클러스터 버전을 v1.7.4 이상으로 유지하면 안정성이 높다.

  • Cloud 콘솔의 Scale Up으로 노드 수를 2 이상으로 늘리면 분산 모드가 자동 설정된다.

  • 새 노드는 비어 있으므로 새 컬렉션 생성 또는 샤드 복제/이동으로 데이터를 분산해야 한다.

4. 샤딩 개요

  • Shard: 포인트를 저장·검색하는 독립 단위

  • 자동 샤딩(기본): 일관 해시로 분배

  • 사용자 정의 샤딩: sharding_method: custom 로 지정, shard_key 별로 포인트 업로드

샤드 수 선택

  • shard_number노드 수의 배수로 설정한다.

  • 노드당 최소 2샤드를 권장하며, 미래 확장을 고려해 12샤드 구성이 무난하다.

5. 노드 장애 복구 시나리오

상황 단일 노드 2노드(미복제) 2노드(복제) 3+노드(복제)
일시적 다운 전체 중단 전체 중단 컬렉션 작업 제외 정상 완전 정상
영구 손실 백업 필요 백업 필요 백업 필요 복구 가능
  • dead 노드 제거: DELETE /cluster/peer/{peer_id}

  • 새 노드 합류 후 샤드 복제 또는 스냅샷 복원으로 데이터 복구

6. 일관성 옵션

옵션 의미 기본값
write_consistency_factor 쓰기 성공 판단에 필요한 복제본 수 1
consistency (읽기) all·majority·quorum·숫자 1
ordering (쓰기) weak·medium·strong weak
  • write_consistency_factor = replication_factor 로 설정하면 노드 일부 다운 시 쓰기 차단 후 데이터 재동기화 비용 감소.

  • 강한 일관성이 필요한 경우 ordering=strong 사용.

7. 추가 기능

  • Listener 모드: node_type: "Listener" 로 설정 시 검색 트래픽에서 제외하고 수집 전용 노드로 사용.

  • Consensus Checkpointing: POST /cluster/recover 호출로 Raft 로그 스냅샷 생성·로그 절단을 통해 신규 노드 동기화 속도 개선.

8. 권장 운영 전략

  1. 프로덕션: 최소 3노드, replication_factor ≥2, write_consistency_factor = replication_factor

  2. 비용 절감형: 2노드 + 복제, 중요 컬렉션만 복제 활성화

  3. 개발·테스트: 단일 노드, 주기적 스냅샷 백업 필수