Docker Compose を使用して GPU 対応の Milvus を実行する
このページでは、Docker Compose を使用して GPU 対応の Milvus インスタンスを起動する方法について説明します。
前提条件
- Docker をインストールしてください。
- インストール前に、ハードウェアおよびソフトウェアの要件を確認してください。
イメージの取得で問題が発生した場合は、問題の詳細をcommunity@zilliz.comまでご連絡ください。必要なサポートを提供いたします。
Milvusのインストール
Docker Compose を使用して GPU 対応の Milvus をインストールするには、以下の手順に従ってください。
1. YAML ファイルをダウンロードして設定します
ダウンロード milvus-standalone-docker-compose-gpu.yml 手動で、または以下のコマンドを使用して、docker-compose.yml という名前で保存してください。
$ wget https://github.com/milvus-io/milvus/releases/download/v2.6.23/milvus-standalone-docker-compose-gpu.yml -O docker-compose.yml
YAML ファイル内のスタンドアロンサービスの環境変数を、次のように変更する必要があります。
- Milvusに特定のGPUデバイスを割り当てるには、
standaloneサービスの定義内にあるdeploy.resources.reservations.devices[0].devices_idsフィールドを見つけ、その値を目的のGPUのIDに置き換えてください。GPUデバイスのIDを確認するには、NVIDIA GPUディスプレイドライバーに付属のnvidia-smiツールを使用できます。Milvusは複数のGPUデバイスに対応しています。
Milvusに単一のGPUデバイスを割り当てる:
...
standalone:
...
deploy:
resources:
reservations:
devices:
- driver: nvidia
capabilities: ["gpu"]
device_ids: ["0"]
...
複数のGPUデバイスをMilvusに割り当てるには:
...
standalone:
...
deploy:
resources:
reservations:
devices:
- driver: nvidia
capabilities: ["gpu"]
device_ids: ['0', '1']
...
2. Milvusの起動
docker-compose.yml が格納されているディレクトリで、以下のコマンドを実行して Milvus を起動します:
$ sudo docker compose up -d
Creating milvus-etcd ... done
Creating milvus-minio ... done
Creating milvus-standalone ... done
上記のコマンドが実行できなかった場合は、システムに Docker Compose V1 がインストールされているかどうかを確認してください。インストールされている場合は、このページに記載されている注意事項に基づき、Docker Compose V2 への移行を推奨します。
Milvusの起動後、
- 「milvus-standalone」、「milvus-minio」、「milvus-etcd」という名前のコンテナが起動します。
- milvus-etcdコンテナはホストに対してポートを公開しておらず、そのデータは現在のフォルダ内のvolumes/etcdにマッピングされます。
- milvus-minioコンテナは、デフォルトの認証情報を使用してローカルでポート9090および9091を提供し、そのデータを現在のフォルダ内のvolumes/minioにマッピングします。
- milvus-standaloneコンテナは、デフォルト設定でローカルのポート19530を提供し、そのデータを現在のフォルダ内のvolumes/milvusにマッピングします。
以下のコマンドを使用して、コンテナが起動して正常に動作しているかどうかを確認できます。
$ sudo docker compose ps
Name Command State Ports
--------------------------------------------------------------------------------------------------------------------
milvus-etcd etcd -advertise-client-url ... Up 2379/tcp, 2380/tcp
milvus-minio /usr/bin/docker-entrypoint ... Up (healthy) 9000/tcp
milvus-standalone /tini -- milvus run standalone Up 0.0.0.0:19530->19530/tcp, 0.0.0.0:9091->9091/tcp
また、http://127.0.0.1:9091/webui/ から Milvus WebUI にアクセスして、お使いの Milvus インスタンスに関する詳細を確認することもできます。詳細については、Milvus WebUI を参照してください。
docker-compose.yml で Milvus に複数の GPU デバイスを割り当てている場合、どの GPU デバイスを可視化するか、または使用可能にするかを指定できます。
GPUデバイス0 を Milvus から認識可能にするには:
$ CUDA_VISIBLE_DEVICES=0 ./milvus run standalone
GPU デバイス0 および1 を Milvus から認識可能にするには:
$ CUDA_VISIBLE_DEVICES=0,1 ./milvus run standalone
このコンテナは、次のように停止および削除できます。
# Stop Milvus
$ sudo docker compose down
# Delete service data
$ sudo rm -rf volumes
メモリプールの設定
Milvusの起動後、milvus.yaml ファイル内のinitMemSize およびmaxMemSize の設定を変更することで、メモリプールをカスタマイズできます。
milvus.yaml ファイルは、Milvusコンテナ内の/milvus/configs/ ディレクトリにあります。
メモリプールを設定するには、milvus.yaml ファイル内のinitMemSize およびmaxMemSize の設定を次のように変更します。
次のコマンドを使用して、Milvus コンテナ内の `
milvus.yaml` をローカルマシンにコピーします。<milvus_container_id>には、実際の Milvus コンテナ ID を指定してください。docker cp <milvus_container_id>:/milvus/configs/milvus.yaml milvus.yamlコピーした
milvus.yamlファイルを、お好みのテキストエディタで開きます。たとえば、vim を使用する場合:vim milvus.yaml必要に応じて
initMemSizeおよびmaxMemSizeの設定を編集し、変更を保存してください:... gpu: initMemSize: 0 maxMemSize: 0 ...initMemSize: メモリプールの初期サイズ。デフォルトは 1024 です。maxMemSize: メモリプールの最大サイズ。デフォルトは 2048 です。
以下のコマンドを使用して、変更した `
milvus.yaml` ファイルを Milvus コンテナにコピーし直します。`<milvus_container_id>` を実際の Milvus コンテナ ID に置き換えてください。docker cp milvus.yaml <milvus_container_id>:/milvus/configs/milvus.yaml変更を反映させるために、Milvusコンテナを再起動します:
docker stop <milvus_container_id> docker start <milvus_container_id>
次の手順
DockerにMilvusをインストールしたら、次のことができます:
クイックスタートを参照して、Milvusの機能を確認してください。
Milvus WebUIを確認して、Milvusインスタンスについてさらに詳しく学びましょう。
Milvusの基本的な操作を学びましょう:
クラウド上に Milvus クラスターをデプロイする:
Milvusの可観測性と管理のための直感的なWebインターフェース「Milvus WebUI」をご覧ください。
Milvusデータのバックアップを行うオープンソースツール「Milvus Backup」をご覧ください。
Milvusのデバッグや動的な構成更新を行うためのオープンソースツール「Birdwatcher」をご覧ください。
Milvus の直感的な管理を実現するオープンソースの GUI ツール「Attu」をご覧ください。