Milvus 독립 실행형에 대한 MQ 유형 전환하기
이 항목에서는 기존 Milvus 독립 실행형 배포의 메시지 큐(MQ) 유형을 전환하는 방법에 대해 설명합니다. Milvus는 다운타임 없이 온라인 MQ 전환을 지원합니다.
이 기능은 릴리스 대기 중이며 변경될 수 있습니다. 사용해 보고 싶거나 궁금한 점이 있으면 Milvus 지원팀에 문의하세요.
전제 조건
- Docker 또는 Docker Compose를 통해 설치된 실행 중인 Milvus 독립 실행형 인스턴스.
- Milvus 인스턴스가 이 Switch MQ 기능을 지원하는 최신 버전으로 업그레이드되었습니다.
일반 워크플로
MQ 유형 전환을 위한 일반적인 워크플로우는 다음과 같습니다:
- Milvus 인스턴스가 제대로 실행되고 있는지 확인합니다.
- 소스 MQ 유형과 대상 MQ 유형을 확인합니다.
mqType값을 변경하지 않고 대상 MQ의 액세스 설정을 Milvus 구성으로 구성합니다.- WAL 변경 API를 호출하여 전환을 트리거합니다.
- 로그를 모니터링하여 전환이 성공적으로 완료되었는지 확인합니다.
전환하기 전에 대상 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.type 이 minio 으로 설정되어 있는지 확인해야 합니다. 다음 내용으로 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에서 업데이트되었음을 나타냅니다.