Milvus 클러스터의 MQ 유형 전환하기
이 도움말 항목에서는 기존 Milvus 클러스터 배포의 메시지 큐(MQ) 유형을 전환하는 방법에 대해 설명합니다. Milvus는 가동 중단 시간 없이 Pulsar, Kafka, Woodpecker 간의 온라인 MQ 전환을 지원합니다.
이 기능은 출시 대기 중이며 변경될 수 있습니다. 사용해 보고 싶거나 궁금한 점이 있으면 Milvus 지원팀에 문의하세요.
전제 조건
Pulsar/Kafka에서 Woodpecker(MinIO)로 전환하기
다음 단계에 따라 MQ 유형을 Pulsar 또는 Kafka에서 MinIO 스토리지가 있는 Woodpecker로 전환하세요.
1단계: Milvus 인스턴스가 실행 중인지 확인
전환하기 전에 Milvus 클러스터 인스턴스가 제대로 실행되고 있는지 확인하세요. 테스트 컬렉션을 만들고, 데이터를 삽입하고, 쿼리를 실행하여 이를 확인할 수 있습니다.
2단계: (선택 사항) 우드펙커 구성 확인
기본 Milvus 구성은 이미 Woodpecker 스토리지 유형을 MinIO로 설정하고 있으므로 대부분의 경우 추가 구성이 필요하지 않습니다.
그러나 이전에 Woodpecker 구성을 사용자 지정한 경우 woodpecker.storage.type 가 minio 로 설정되어 있는지 확인해야 합니다. mqType 값을 변경하지 않고 Milvus 구성을 업데이트하세요:
woodpecker:
storage:
type: minio
- 헬름의 경우 구성 업데이트에 대한 지침은 헬름 차트로 Milvus 구성을 참조하세요.
- 밀버스 오퍼레이터의 경우, 구성 업데이트에 대한 지침은 밀버스 오퍼레이터로 밀버스 구 성을 참조하세요.
3단계: MQ 스위치 실행하기
다음 명령을 실행하여 우드페커로 전환을 트리거합니다:
curl -X POST http://<mixcoord_addr>:9091/management/wal/alter \
-H "Content-Type: application/json" \
-d '{"target_wal_name": "woodpecker"}'
<mixcoord_addr> 을 실제 MixCoord 서비스의 주소로 바꿉니다.
4단계: 전환이 완료되었는지 확인
스위치 프로세스가 자동으로 완료됩니다. Milvus 로그에서 다음 주요 메시지가 있는지 모니터링하여 전환이 완료되었는지 확인하세요:
WAL switch success: <MQ1> switch to <MQ2> finish, re-opening required
AlterWAL broadcast message acknowledged by all vchannels
successfully updated mq.type configuration in etcd
위의 로그 메시지에서 <MQ1> 는 소스 MQ 유형(예: pulsar 또는 kafka)이고 <MQ2> 는 대상 MQ 유형(woodpecker)입니다.
- 첫 번째 메시지는 소스에서 대상으로의 WAL 전환이 완료되었음을 나타냅니다.
- 두 번째 메시지는 모든 물리적 채널이 전환되었음을 나타냅니다.
- 세 번째 메시지는
mq.type구성이 etcd에서 업데이트되었음을 나타냅니다.
우드페커(MinIO)에서 펄서 또는 카프카로 전환하기
다음 단계에 따라 MQ 유형을 우드펙커에서 Pulsar 또는 카프카로 다시 전환하세요.
1단계: Milvus 인스턴스가 실행 중인지 확인하기
전환하기 전에 Milvus 클러스터 인스턴스가 제대로 실행되고 있는지 확인하세요.
2단계: 대상 MQ 구성
전환을 트리거하기 전에 대상 MQ 서비스(Pulsar 또는 Kafka)를 사용할 수 있고 해당 액세스 구성이 Milvus 구성에 렌더링되어 있는지 확인해야 합니다.
이 섹션의 정확한 단계는 내부(번들) 또는 외부 MQ 서비스를 사용하는지 여부에 따라 다릅니다.
옵션 A: 내부 Pulsar/Kafka(헬름에 번들로 제공)
헬름에서 배포한 번들 Pulsar 또는 카프카를 사용하는 경우, 헬름 릴리스를 업데이트하여 대상 MQ 서비스를 활성화하고 딱따구리를 비활성화한다. streaming.enabled=true 플래그는 스트리밍 노드를 활성화하는 데 필요하며, 이는 스위치 MQ 기능의 전제 조건이다. 예를 들어, Pulsar로 전환하려면:
helm upgrade -i my-release milvus/milvus \
--set pulsarv3.enabled=true \
--set woodpecker.enabled=false \
--set streaming.enabled=true \
-f values.yaml
업그레이드 후 대상 MQ 액세스 구성이 Milvus 구성으로 렌더링되었는지 확인합니다. 예를 들어, Pulsar의 경우
pulsar:
address: <pulsar-proxy-address>
port: 6650
옵션 B: 내부 Pulsar/Kafka(Milvus Operator에서 관리)
Milvus Operator를 사용하는 경우, 대상 MQ 액세스 구성을 포함하도록 Milvus 사용자 정의 리소스를 업데이트하세요. Milvus 구성 업데이트에 대한 자세한 내용은 Milvus Operator로 Milvus 구성하기를 참조하세요.
옵션 C: 외부 Pulsar/Kafka
외부 Pulsar 또는 Kafka 서비스를 사용하는 경우 mqType 을 변경할 필요가 없습니다. values.yaml 에 외부 MQ 액세스 구성을 추가하고 Milvus 인스턴스를 다시 시작하여 구성을 렌더링하기만 하면 됩니다.
3단계: MQ 스위치 실행하기
다음 명령을 실행하여 Pulsar로 전환을 트리거합니다(Kafka로 전환하는 경우 pulsar 을 kafka 으로 대체):
curl -X POST http://<mixcoord_addr>:9091/management/wal/alter \
-H "Content-Type: application/json" \
-d '{"target_wal_name": "pulsar"}'
<mixcoord_addr> 을 MixCoord 서비스의 실제 주소로 바꿉니다.
4단계: 전환이 완료되었는지 확인
전환 프로세스가 자동으로 완료됩니다. Milvus 로그에서 다음 주요 메시지를 모니터링하여 전환이 완료되었는지 확인하세요:
WAL switch success: <MQ1> switch to <MQ2> finish, re-opening required
AlterWAL broadcast message acknowledged by all vchannels
successfully updated mq.type configuration in etcd
위의 로그 메시지에서 <MQ1> 는 소스 MQ 유형(woodpecker)이고 <MQ2> 는 대상 MQ 유형(예: pulsar 또는 kafka)입니다.
- 첫 번째 메시지는 소스에서 대상으로의 WAL 전환이 완료되었음을 나타냅니다.
- 두 번째 메시지는 모든 물리적 채널이 전환되었음을 나타냅니다.
- 세 번째 메시지는
mq.type구성이 etcd에서 업데이트되었음을 나타냅니다.