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 컨테이너는 기본 인증 자격 증명을 사용하여 로컬에서 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
또한 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 장치 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 컨테이너의 `
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 WebUI를 확인하여 Milvus 인스턴스에 대해 자세히 알아보세요.
Milvus의 기본 작동 방식을 알아보세요:
클라우드에 Milvus 클러스터 배포:
Milvus의 가시성 및 관리를 위한 직관적인 웹 인터페이스인 Milvus WebUI를 살펴보세요.
Milvus 데이터 백업을 위한 오픈소스 도구인 Milvus Backup을 살펴보세요.
Milvus 디버깅 및 동적 구성 업데이트를 위한 오픈 소스 도구인 Birdwatcher를 살펴보세요.
직관적인 Milvus 관리를 위한 오픈 소스 GUI 도구인 Attu를 살펴보세요.