Milvus 독립 실행형에 대한 MQ 유형 전환하기

이 항목에서는 기존 Milvus 독립 실행형 배포의 메시지 큐(MQ) 유형을 전환하는 방법에 대해 설명합니다. Milvus는 다운타임 없이 온라인 MQ 전환을 지원합니다.

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

전제 조건

  • Docker 또는 Docker Compose를 통해 설치된 실행 중인 Milvus 독립 실행형 인스턴스.
  • Milvus 인스턴스가 이 Switch MQ 기능을 지원하는 최신 버전으로 업그레이드되었습니다.

일반 워크플로

MQ 유형 전환을 위한 일반적인 워크플로우는 다음과 같습니다:

  1. Milvus 인스턴스가 제대로 실행되고 있는지 확인합니다.
  2. 소스 MQ 유형과 대상 MQ 유형을 확인합니다.
  3. mqType 값을 변경하지 않고 대상 MQ의 액세스 설정을 Milvus 구성으로 구성합니다.
  4. WAL 변경 API를 호출하여 전환을 트리거합니다.
  5. 로그를 모니터링하여 전환이 성공적으로 완료되었는지 확인합니다.

전환하기 전에 대상 MQ에 현재 Milvus 인스턴스에서 사용하는 것과 이름이 같은 토픽이 포함되어 있지 않은지 확인하세요. 토픽 이름이 충돌하면 예기치 않은 동작이 발생할 수 있으므로 대상 MQ 서비스를 이전에 다른 Milvus 인스턴스에서 사용한 적이 있는 경우 특히 중요합니다.

RocksMQ에서 Woodpecker(로컬 스토리지)로 전환하기

이 절차는 기본적으로 RocksMQ를 사용하는 Milvus 독립 실행형 Docker 배포에 적용됩니다.

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

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

2단계: 로컬 스토리지로 Woodpecker 구성하기

mqType 값을 변경하지 않고 Woodpecker 설정을 추가하도록 Milvus 구성을 업데이트합니다. 다음 내용으로 user.yaml 파일을 만들거나 업데이트합니다:

woodpecker:
  storage:
    type: local

그런 다음 Milvus 인스턴스를 다시 시작하여 구성을 적용합니다:

bash standalone_embed.sh restart

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 서비스의 실제 주소로 바꿉니다(기본적으로 독립형 배포의 경우 localhost ).

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 유형(rocksmq)이고 <MQ2> 는 대상 MQ 유형(woodpecker)입니다.

  • 첫 번째 메시지는 소스에서 대상으로의 WAL 전환이 완료되었음을 나타냅니다.
  • 두 번째 메시지는 모든 물리적 채널이 전환되었음을 나타냅니다.
  • 세 번째 메시지는 mq.type 구성이 etcd에서 업데이트되었음을 나타냅니다.

RocksMQ에서 Woodpecker(MinIO 스토리지)로 전환하기

이 절차는 Milvus 독립형 Docker Compose 배포에 적용됩니다.

Milvus v2.6부터 기본 docker-compose.yaml 은 이미 mqType 을 Woodpecker로 선언합니다. 기본 구성을 수정하거나 v2.5에서 업그레이드하지 않았다면 이 절차가 필요하지 않을 수 있습니다.

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

Milvus 독립 실행형 Docker Compose 인스턴스가 제대로 실행되고 있는지 확인합니다.

2단계: (선택 사항) Woodpecker 구성 확인

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

그러나 이전에 Woodpecker 구성을 사용자 지정한 경우에는 woodpecker.storage.typeminio 으로 설정되어 있는지 확인해야 합니다. 다음 내용으로 user.yaml 파일을 만들거나 업데이트합니다:

woodpecker:
  storage:
    type: minio

그런 다음 Milvus 인스턴스를 다시 시작하여 구성을 적용합니다:

docker compose down
docker compose up -d

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 서비스의 실제 주소로 바꿉니다(기본적으로 독립형 배포의 경우 localhost ).

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 유형(rocksmq)이고 <MQ2> 는 대상 MQ 유형(woodpecker)입니다.

  • 첫 번째 메시지는 소스에서 대상으로의 WAL 전환이 완료되었음을 나타냅니다.
  • 두 번째 메시지는 모든 물리적 채널이 전환되었음을 나타냅니다.
  • 세 번째 메시지는 mq.type 구성이 etcd에서 업데이트되었음을 나타냅니다.