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.4.17/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-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
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.yaml
を Milvus コンテナからローカルマシンにコピーする。<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の基本操作を学ぶ:
Milvuクラスタをクラウドにデプロイする:
MilvusのデータバックアップのためのオープンソースツールであるMilvus Backupを紹介します。
Milvusのデバッグとダイナミックコンフィギュレーションアップデートのためのオープンソースツール、Birdwatcherのご紹介。
Milvusを直感的に管理するオープンソースのGUIツールAttuをご覧ください。