milvus-logo
LFAI
フロントページへ
  • スタート

Docker Composeを使用したGPUサポート付きMilvusの実行

このページでは、Docker Composeを使用してGPUをサポートしたMilvusインスタンスを起動する方法を説明します。

前提条件

イメージのプル時に問題が発生した場合は、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.5.0/milvus-standalone-docker-compose-gpu.yml -O docker-compose.yml

YAMLファイル内のスタンドアロンサービスの環境変数に、以下のように変更を加える必要があります:

  • 特定の GPU デバイスを Milvus に割り当てるには、standalone サービスの定義でdeploy.resources.reservations.devices[0].devices_ids フィールドを探し、その値を目的の GPU の ID に置き換えます。NVIDIA GPUディスプレイドライバに含まれるnvidia-smi ツールを使用して、GPUデバイスのIDを決定することができます。Milvusは複数のGPUデバイスをサポートしています。

単一のGPUデバイスをMilvusに割り当てます:

...
standalone:
  ...
  deploy:
    resources:
      reservations:
        devices:
          - driver: nvidia
            capabilities: ["gpu"]
            device_ids: ["0"]
...

Milvusに複数のGPUデバイスを割り当てる:

...
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 V1がインストールされているか確認してください。

milvusの起動後、

  • milvus-standalonemilvus-miniomilvus-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

docker-compose.ymlでMilvusに複数のGPUデバイスを割り当てている場合は、どのGPUデバイスを可視化するか、または使用可能にするかを指定できます。

GPU デバイス0 を Milvus から見えるようにします:

$ CUDA_VISIBLE_DEVICES=0 ./milvus run standalone

GPUデバイス01 を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 ファイル内のinitMemSizemaxMemSize の設定を変更することで、メモリプールをカスタマイズすることができます。

milvus.yaml ファイルは、Milvus コンテナ内の/milvus/configs/ ディレクトリにあります。

メモリプールをカスタマイズするには、milvus.yaml ファイル内のinitMemSize およびmaxMemSize の設定を以下のように変更します。

  1. 以下のコマンドを使用して、milvus.yaml を Milvus コンテナからローカルマシンにコピーする。<milvus_container_id> を実際の Milvus コンテナ ID に置き換える。

    docker cp <milvus_container_id>:/milvus/configs/milvus.yaml milvus.yaml
    
  2. コピーしたmilvus.yaml ファイルをテキストエディタで開く。例えば、vimを使用する:

    vim milvus.yaml
    
  3. initMemSizemaxMemSize の設定を必要に応じて編集し、変更を保存する:

    ...
    gpu:
      initMemSize: 0
      maxMemSize: 0
    ...
    
    • initMemSize:メモリプールの初期サイズ。デフォルトは1024。
    • maxMemSize:メモリプールの最大サイズ。デフォルトは 2048 である。
  4. 以下のコマンドを使用して、変更したmilvus.yaml ファイルを Milvus コンテナにコピーする。<milvus_container_id> を実際の Milvus コンテナ ID に置き換える。

    docker cp milvus.yaml <milvus_container_id>:/milvus/configs/milvus.yaml
    
  5. Milvusコンテナを再起動し、変更を適用する:

    docker stop <milvus_container_id>
    docker start <milvus_container_id>
    

次の作業

DockerにMilvusをインストールしたら、次のことができます:

翻訳DeepL

Try Managed Milvus for Free

Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

Get Started
フィードバック

このページは役に立ちましたか ?