RocksMQ と Woodpecker の切り替え

このページでは、Milvus Standalone(Docker Compose)環境において、メッセージキュー(MQ) RocksMQとWoodpecker(ローカルまたはMinIOバックエンド)の間で双方向に切り替える方法について説明します。一般的なワークフローと前提条件については、「メッセージキューの切り替え」を参照してください。

  • 前提条件:MQの切り替え機能は、Milvus 3.0以降で利用可能です。作業を開始する前に、MilvusインスタンスをMilvus 3.0以降にアップグレードしてください。以前のバージョンではこの機能は利用できません。
  • MQの切り替えには、DockerComposeによるデプロイ(etcd設定ソースを有効にするもの)が必要です。シングルコンテナのDockerデプロイでは、切り替えはサポートされていません。

RocksMQ から Woodpecker への切り替え

ステップ 1: Milvus インスタンスが実行中であることを確認する

Milvus Standalone Docker Compose インスタンスが正常に実行されていることを確認します。たとえば、テスト用コレクションを作成し、データを挿入し、クエリを実行するなどして確認してください。

ステップ 2: Woodpecker ストレージの設定

mqType の値を変更せずに、Milvusの設定にWoodpeckerの設定を追加します。docker exec -it milvus-standalone bash を実行してコンテナに入り、/milvus/configs/user.yaml を編集します:

woodpecker:
  storage:
    type: minio   # minio or local

設定を適用するために、Milvusインスタンスを再起動します:

docker compose restart

ステップ 3: MQ の切り替えを実行する

Woodpeckerへの切り替えが初めての場合は、この注意事項をスキップしてください。それ以外の場合は、再度切り替える前に、残存するWoodpeckerのメタデータとデータをクリーンアップしてください。残存データがあると、予期しない動作を引き起こす可能性があります。

curl -X POST http://<mixcoord_addr>:<mixcoord_port>/management/wal/alter \
  -H "Content-Type: application/json" \
  -d '{"target_wal_name": "woodpecker"}'

MixCoordのポートは通常、9091 です。

ステップ 4: 切り替えが完了したことを確認する

docker logs milvus-standalone | grep "successfully updated mq.type configuration in etcd"

切り替えが成功すると、[mqTypeValue=woodpecker] がログに記録されます。

ステップ 5: (オプション) RocksMQ データのクリーンアップ

RocksMQのデータは、docker-compose.yaml で定義されているvolumes/milvus/rdb_data およびvolumes/milvus/rdb_data_meta_kv ディレクトリ内にあります。後でRocksMQに戻す予定がある場合は、競合を避けるために、まずこれらのファイルをクリーンアップしてください。

Woodpecker から RocksMQ への切り替え

ステップ 1: Milvus インスタンスが実行中であることを確認する

Milvus Standalone Docker Compose インスタンスが正常に実行されていることを確認してください。

ステップ 2: MQ の切り替えを実行する

インスタンスに前回の実行から残っているRocksMQのデータがないことを確認してください。今回がRocksMQへの切り替えが初めての場合は、この注意事項をスキップしてください。それ以外の場合は、まず関連するRocksMQのメタデータとデータをクリーンアップしてください。

curl -X POST http://<mixcoord_addr>:<mixcoord_port>/management/wal/alter \
  -H "Content-Type: application/json" \
  -d '{"target_wal_name": "rocksmq"}'

ステップ 3: 切り替えが完了したことを確認する

docker logs milvus-standalone | grep "successfully updated mq.type configuration in etcd"

切り替えが成功すると、[mqTypeValue=rocksmq] というログが出力されます。

ステップ 4: (オプション) Woodpecker データのクリーンアップ

  • メタデータ(etcd):Woodpeckerのキープレフィックスは通常、woodpecker/... です。etcdctl get woodpecker --prefix で確認し、削除してください。
  • ストレージデータ: MinIOモードの場合、バケット内の<rootPath>/wp/... 配下にあるログデータを削除します(通常はfiles/wp/... )。ローカルモードの場合、データはローカルディスクのvolumes/milvus/data/wp/... にあります。

後でWoodpeckerに戻す予定がある場合は、競合を避けるために、まずこれらのファイルをクリーンアップしてください。

サポートされるシナリオ

ソース MQターゲット MQステータス備考
RocksMQWoodpecker (MinIO/ローカル)対応済み
Woodpecker (MinIO/ローカル)RocksMQサポート対象
Woodpecker MinIOWoodpecker ローカル未対応Woodpeckerのストレージモードを切り替えるには、追加のメタデータ処理が必要ですが、これはまだサポートされていません。
Woodpecker ローカルWoodpecker MinIO未対応上記と同様です。
RocksMQ / Woodpecker外部の Pulsar / Kafkaサポートされていますが、推奨されませんスタンドアロンインスタンスは、可能な限りシンプルに保ってください。