milvus-logo
LFAI
홈페이지
  • 시작하기

도커 컴포즈를 사용하여 GPU 지원으로 Milvus 실행하기

이 페이지는 도커 컴포즈를 사용하여 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-beta/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 장치를 지원합니다.

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를 시작한 후

  • 밀버스 독립형, 밀버스 미니오, 밀버스-etcd라는 이름의 컨테이너가 가동됩니다.
    • milvus-etcd 컨테이너는 호스트에 포트를 노출하지 않으며 데이터를 현재 폴더의 볼륨/etcd에 매핑합니다.
    • milvus-minio 컨테이너는 기본 인증 자격 증명을 사용하여 포트 90909091을 로컬로 제공하고 해당 데이터를 현재 폴더의 볼륨/minio에 매핑합니다.
    • 밀버스-독립형 컨테이너는 기본 설정으로 포트 19530을 로컬로 서비스하고 데이터를 현재 폴더의 볼륨/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 장치를 표시하거나 사용할 수 있는지 지정할 수 있습니다.

Milvus에 GPU 장치 0 를 표시하도록 설정합니다:

$ CUDA_VISIBLE_DEVICES=0 ./milvus run standalone

Milvus에 GPU 장치 01 을 표시하도록 설정합니다:

$ 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 파일에서 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를 설치했으면 다음을 수행할 수 있습니다:

번역DeepLogo

Try Managed Milvus for Free

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

Get Started
피드백

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