Distributed deployment
1. 노드 수 결정
Qdrant 클러스터의 노드 수는 비용·장애 허용성(내구성)·성능 간의 우선순위에 따라 달라진다.
우선순위 | 권장 구성 | 장점 | 단점 |
---|---|---|---|
비용 절감 | 단일 노드 | 인프라 비용 최소 | 장애 시 즉시 다운타임 발생, 영구 손실 복구 불가 |
내구성 최우선 | 3개 이상 노드 + 2-배수 복제 | 노드 1개 장애 시에도 읽기·쓰기·컬렉션 작업 지속, 영구 손실 복구 가능, 로드밸런스로 성능 향상 | 비용 증가 |
균형형 | 2개 노드 + 복제 | 노드 1개 장애 시 대부분의 읽기·쓰기 가능, 비용은 3노드보다 저렴 | 컬렉션 작업(생성·수정·삭제)은 중단, 영구 손실 복구 불가 |
요약하면 단일 노드는 비프로덕션, 3+ 노드 복제 클러스터가 권장, 2노드 복제는 비용·성능 절충안이다.
2. 자체 호스팅에서 분산 모드 활성화
-
환경 변수 또는 설정
cluster: enabled: true p2p: port: 6335 # 내부 통신 포트 consensus: tick_period_ms: 100
혹은
QDRANT__CLUSTER__ENABLED=true
지정. -
첫 번째 노드 기동
./qdrant --uri 'http://node1:6335'
-
추가 노드 합류
./qdrant --bootstrap 'http://node1:6335' # 필요 시 --uri 로 자신 주소 명시
-
상태 확인
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. 권장 운영 전략
-
프로덕션: 최소 3노드,
replication_factor ≥2
,write_consistency_factor = replication_factor
-
비용 절감형: 2노드 + 복제, 중요 컬렉션만 복제 활성화
-
개발·테스트: 단일 노드, 주기적 스냅샷 백업 필수