Milvus 클러스터의 MQ 유형 전환하기

이 도움말 항목에서는 기존 Milvus 클러스터 배포의 메시지 큐(MQ) 유형을 전환하는 방법에 대해 설명합니다. Milvus는 가동 중단 시간 없이 Pulsar, Kafka, Woodpecker 간의 온라인 MQ 전환을 지원합니다.

이 기능은 출시 대기 중이며 변경될 수 있습니다. 사용해 보고 싶거나 궁금한 점이 있으면 Milvus 지원팀에 문의하세요.

전제 조건

  • 밀버스 오퍼레이터 또는 헬름을 통해 설치된 실행 중인 밀버스 클러스터 인스턴스.
  • Milvus 인스턴스가 이 Switch MQ 기능을 지원하는 최신 버전으로 업그레이드되었습니다.

Pulsar/Kafka에서 Woodpecker(MinIO)로 전환하기

다음 단계에 따라 MQ 유형을 Pulsar 또는 Kafka에서 MinIO 스토리지가 있는 Woodpecker로 전환하세요.

1단계: Milvus 인스턴스가 실행 중인지 확인

전환하기 전에 Milvus 클러스터 인스턴스가 제대로 실행되고 있는지 확인하세요. 테스트 컬렉션을 만들고, 데이터를 삽입하고, 쿼리를 실행하여 이를 확인할 수 있습니다.

2단계: (선택 사항) 우드펙커 구성 확인

기본 Milvus 구성은 이미 Woodpecker 스토리지 유형을 MinIO로 설정하고 있으므로 대부분의 경우 추가 구성이 필요하지 않습니다.

그러나 이전에 Woodpecker 구성을 사용자 지정한 경우 woodpecker.storage.typeminio 로 설정되어 있는지 확인해야 합니다. mqType 값을 변경하지 않고 Milvus 구성을 업데이트하세요:

woodpecker:
  storage:
    type: minio

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로 전환하는 경우 pulsarkafka 으로 대체):

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에서 업데이트되었음을 나타냅니다.