도커 컴포즈를 사용하여 GPU 지원으로 Milvus 실행하기
이 페이지는 도커 컴포즈를 사용하여 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 장치를 지원합니다.
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 컨테이너는 기본 인증 자격 증명을 사용하여 포트 9090 및 9091을 로컬로 제공하고 해당 데이터를 현재 폴더의 볼륨/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 장치 0
및 1
을 표시하도록 설정합니다:
$ 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의 기본 동작에 대해 알아보세요:
Milvu 클러스터를 클라우드에 배포하세요:
Milvus 데이터 백업을 위한 오픈 소스 도구인 Milvus Backup을 살펴보세요.
Milvus 디버깅 및 동적 구성 업데이트를 위한 오픈 소스 도구인 Birdwatcher를 살펴보세요.
직관적인 Milvus 관리를 위한 오픈 소스 GUI 도구인 Attu를 살펴보세요.