MilvusクラスタのMQタイプの切り替え
このトピックでは、既存のMilvusクラスターでメッセージ・キュー(MQ)のタイプを切り替える方法について説明します。Milvusでは、ダウンタイムなしでPulsar、Kafka、Woodpecker間のオンラインMQ切り替えをサポートしています。
この機能はリリース待ちであり、変更される可能性があります。お試しやご質問はMilvusサポートまでお問い合わせください。
前提条件
- MilvusOperatorまたはHelm経由でインストールされた稼働中のMilvusクラスタインスタンス。
- MilvusインスタンスがこのSwitch MQ機能をサポートする最新バージョンにアップグレードされていること。
Pulsar/KafkaからWoodpecker (MinIO)への切り替え
以下の手順に従って、MQタイプをPulsarまたはKafkaからMinIOストレージを持つWoodpeckerに切り替えてください。
ステップ1: Milvusインスタンスが稼動していることを確認する
切り替える前に、Milvusクラスタ・インスタンスが正しく動作していることを確認してください。テスト・コレクションを作成し、データを挿入し、クエリを実行することで検証できます。
ステップ2: (オプション) Woodpecker設定の確認
Milvusのデフォルト設定では、WoodpeckerのストレージタイプはすでにMinIOに設定されているため、ほとんどの場合、追加の設定は必要ありません。
ただし、以前にWoodpecker構成をカスタマイズした場合は、woodpecker.storage.type がminio に設定されていることを確認する必要があります。mqType の値を変更せずに、Milvus構成を更新します:
woodpecker:
storage:
type: minio
- Helmの場合は、"Helm ChartsでMilvusを設定する"を参照し、設定を更新してください。
- Milvus Operatorの場合は、Milvus Operatorを使用してMilvusを設定するを参照して設定を更新してください。
ステップ3: MQスイッチの実行
以下のコマンドを実行し、Woodpeckerへの切り替えを実行します:
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切り替えが完了したことを示している。
- 2つ目のメッセージは、すべての物理チャネルが切り替わったことを示す。
- 3つ目のメッセージは、etcdで
mq.type構成が更新されたことを示す。
Woodpecker(MinIO)からPulsarまたはKafkaへの切り替え
以下の手順に従って、MQタイプをWoodpeckerからPulsarまたはKafkaに戻してください。
ステップ1: Milvusインスタンスが稼動していることを確認する
切り替える前に、Milvusクラスタ・インスタンスが正常に稼動していることを確認してください。
ステップ2: ターゲットMQの設定
切り替えをトリガする前に、ターゲットMQサービス(PulsarまたはKafka)が利用可能で、そのアクセス設定がMilvus設定にレンダリングされていることを確認する必要があります。
このセクションの正確な手順は、内部(バンドル)または外部MQサービスのどちらを使用するかによって異なります。
オプションA:内部Pulsar/Kafka(Helmにバンドル)
HelmにバンドルされたPulsarまたはKafkaを使用している場合は、Helmリリースを更新して対象のMQサービスを有効にし、Woodpeckerを無効にしてください。streaming.enabled=true フラグは、Switch MQ機能の前提条件であるStreaming Nodeを有効にするために必要です。例えば、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を使用している場合は、Milvusカスタム・リソースを更新し、ターゲットMQアクセス構成を含めます。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切り替えが完了したことを示している。
- 2つ目のメッセージは、すべての物理チャネルが切り替わったことを示す。
- 3つ目のメッセージは、etcdで
mq.type構成が更新されたことを示す。