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