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.6.21/milvus-standalone-docker-compose-gpu.yml -O docker-compose.yml

YAML 파일 내의 독립 실행형 서비스 환경 변수를 다음과 같이 약간 수정해야 합니다:

  • Milvus에 특정 GPU 장치를 할당하려면, ` standalone ` 서비스 정의에서 ` deploy.resources.reservations.devices[0].devices_ids ` 필드를 찾아 해당 값을 원하는 GPU의 ID로 변경하십시오. NVIDIA GPU 디스플레이 드라이버에 포함된 ` nvidia-smi ` 도구를 사용하여 GPU 장치의 ID를 확인할 수 있습니다. Milvus는 여러 GPU 장치를 지원합니다.

Milvus에 단일 GPU 장치 할당:

...
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 V2로 마이그레이션하는 것이 좋습니다.

Milvus가 시작된 후,

  • milvus-standalone, milvus-minio, milvus-etcd라는 이름의 컨테이너가 실행됩니다.
    • milvus-etcd 컨테이너는 호스트에 포트를 노출하지 않으며, 데이터를 현재 폴더의 volumes/etcd에 매핑합니다.
    • milvus-minio 컨테이너는 기본 인증 자격 증명을 사용하여 로컬에서 90909091 포트를 제공하며, 데이터를 현재 폴더의 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 장치를 노출하거나 사용 가능하게 할지 지정할 수 있습니다.

Milvus에서 GPU 장치 0 를 인식하도록 설정하려면:

$ 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 ` 파일에서 ` initMemSize ` 및 ` maxMemSize ` 설정을 수정하여 메모리 풀을 사용자 정의할 수 있습니다.

milvus.yaml 파일은 Milvus 컨테이너 내의 /milvus/configs/ 디렉터리에 있습니다.

메모리 풀을 구성하려면 milvus.yaml 파일 내의 initMemSizemaxMemSize 설정을 다음과 같이 수정하십시오.

  1. 다음 명령어를 사용하여 Milvus 컨테이너의 ` milvus.yaml ` 파일을 로컬 컴퓨터로 복사하십시오. ` <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를 설치했으므로 다음을 수행할 수 있습니다:

Office Hours

밀버스 영업 시간

Milvus의 전문가인 질리즈의 프로덕션 배포에 대한 도움을 받으세요.

무료 1:1 세션 예약하기

Try Managed Milvus for Free

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

Get Started
피드백

이 페이지가 도움이 되었나요?