도커 컴포즈를 사용하여 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.6.15/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
Milvus WebUI( http://127.0.0.1:9091/webui/ )에 액세스하여 Milvus 인스턴스에 대해 자세히 알아볼 수도 있습니다. 자세한 내용은 Milvus WebUI를 참조하세요.
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.yamlinitMemSize및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.yamlMilvus 컨테이너를 다시 시작하여 변경 사항을 적용합니다:
docker stop <milvus_container_id> docker start <milvus_container_id>
다음 단계
Docker에 Milvus를 설치했으면 다음을 수행할 수 있습니다:
빠른 시작을 확인하여 Milvus의 기능을 확인합니다.
Milvus 인스턴스에 대해 자세히 알아보려면 Milvus WebUI를 확인하세요.
Milvus의 기본 작업에 대해 알아보세요:
Milvu 클러스터를 클라우드에 배포하세요:
Milvus 통합 가시성 및 관리를 위한 직관적인 웹 인터페이스인 Milvus WebUI를 살펴보세요.
Milvus 데이터 백업을 위한 오픈 소스 도구인 Milvus Backup을 살펴보세요.
Milvus 디버깅 및 동적 구성 업데이트를 위한 오픈 소스 도구인 Birdwatcher에 대해 알아보세요.
직관적인 Milvus 관리를 위한 오픈 소스 GUI 도구인 Attu를 살펴보세요.