Executar o Milvus com suporte para GPU utilizando o Docker Compose
Esta página explica como iniciar uma instância do Milvus com suporte para GPU utilizando o Docker Compose.
Pré-requisitos
- Instale o Docker.
- Verifique os requisitos de hardware e software antes da instalação.
Se tiver alguma dificuldade ao descarregar a imagem, contacte-nos através do endereço community@zilliz.com com detalhes sobre o problema e iremos prestar-lhe o apoio necessário.
Instalar o Milvus
Para instalar o Milvus com suporte para GPU utilizando o Docker Compose, siga estes passos.
1. Descarregue e configure o ficheiro YAML
Descarregue milvus-standalone-docker-compose-gpu.yml e guarde-o como docker-compose.yml manualmente ou com o comando seguinte.
$ wget https://github.com/milvus-io/milvus/releases/download/v3.0.2/milvus-standalone-docker-compose-gpu.yml -O docker-compose.yml
É necessário efetuar algumas alterações nas variáveis de ambiente do serviço autónomo no ficheiro YAML, da seguinte forma:
- Para atribuir um dispositivo de GPU específico ao Milvus, localize o campo «
deploy.resources.reservations.devices[0].devices_ids» na definição do serviço «standalone» e substitua o seu valor pelo ID da GPU pretendida. Pode utilizar a ferramenta «nvidia-smi», incluída nos controladores de vídeo da NVIDIA, para determinar o ID de um dispositivo de GPU. O Milvus suporta vários dispositivos de GPU.
Atribuir um único dispositivo de GPU ao Milvus:
...
standalone:
...
deploy:
resources:
reservations:
devices:
- driver: nvidia
capabilities: ["gpu"]
device_ids: ["0"]
...
Atribuir vários dispositivos de GPU ao Milvus:
...
standalone:
...
deploy:
resources:
reservations:
devices:
- driver: nvidia
capabilities: ["gpu"]
device_ids: ['0', '1']
...
2. Inicie o Milvus
No diretório que contém o ficheiro docker-compose.yml, inicie o Milvus executando:
$ sudo docker compose up -d
Creating milvus-etcd ... done
Creating milvus-minio ... done
Creating milvus-standalone ... done
Se não conseguir executar o comando acima, verifique se o seu sistema tem o Docker Compose V1 instalado. Se for esse o caso, recomenda-se que migre para o Docker Compose V2 devido às notas nesta página.
Após iniciar o Milvus,
- os contentores denominados milvus-standalone, milvus-minio e milvus-etcd estarão em funcionamento.
- O contentor milvus-etcd não expõe quaisquer portas ao anfitrião e mapeia os seus dados para volumes/etcd na pasta atual.
- O contentor milvus-minio disponibiliza as portas 9090 e 9091 localmente com as credenciais de autenticação predefinidas e mapeia os seus dados para volumes/minio na pasta atual.
- O contentor milvus-standalone serve as portas 19530 localmente com as definições predefinidas e mapeia os seus dados para volumes/milvus na pasta atual.
Pode verificar se os contentores estão ativos e a funcionar utilizando o seguinte comando:
$ 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
Também pode aceder à interface Web do Milvus em http://127.0.0.1:9091/webui/ para saber mais sobre a sua instância do Milvus. Para mais detalhes, consulte a interface Web do Milvus.
Se tiver atribuído vários dispositivos GPU ao Milvus no ficheiro `docker-compose.yml`, pode especificar qual o dispositivo GPU que está visível ou disponível para utilização.
Tornar o dispositivo de GPU 0 visível para o Milvus:
$ CUDA_VISIBLE_DEVICES=0 ./milvus run standalone
Tornar os dispositivos GPU 0 e 1 visíveis para o Milvus:
$ CUDA_VISIBLE_DEVICES=0,1 ./milvus run standalone
Pode parar e eliminar este contentor da seguinte forma.
# Stop Milvus
$ sudo docker compose down
# Delete service data
$ sudo rm -rf volumes
Configurar o conjunto de memória
Depois de o Milvus estar em funcionamento, pode personalizar o conjunto de memória modificando as definições initMemSize e maxMemSize no ficheiro milvus.yaml.
O ficheiro milvus.yaml encontra-se no diretório /milvus/configs/, dentro do contentor do Milvus.
Para configurar o conjunto de memória, altere as definições de ` initMemSize ` e ` maxMemSize ` no ficheiro ` milvus.yaml `, da seguinte forma.
Utilize o seguinte comando para copiar o ficheiro «
milvus.yaml» do contentor Milvus para o seu computador local. Substitua «<milvus_container_id>» pelo ID real do seu contentor Milvus.docker cp <milvus_container_id>:/milvus/configs/milvus.yaml milvus.yamlAbra o ficheiro
milvus.yamlcopiado com o seu editor de texto preferido. Por exemplo, utilizando o vim:vim milvus.yamlEdite as definições de «
initMemSize» e «maxMemSize» conforme necessário e guarde as alterações:... gpu: initMemSize: 0 maxMemSize: 0 ...initMemSize: Tamanho inicial do conjunto de memória. O valor predefinido é 1024.maxMemSize: Tamanho máximo do conjunto de memória. O valor predefinido é 2048.
Utilize o seguinte comando para copiar o ficheiro «
milvus.yaml» modificado de volta para o contentor do Milvus. Substitua «<milvus_container_id>» pelo ID real do seu contentor do Milvus.docker cp milvus.yaml <milvus_container_id>:/milvus/configs/milvus.yamlReinicie o contentor Milvus para aplicar as alterações:
docker stop <milvus_container_id> docker start <milvus_container_id>
O Storage V3 está desativado por predefinição. Ative-o antes de utilizar funcionalidades que dependam dele. Para conhecer os requisitos e as considerações de compatibilidade, consulte Storage V3.
Próximos passos
Depois de instalar o Milvus no Docker, pode:
Consulte o Guia de Início Rápido para ver o que o Milvus pode fazer.
Consulte a interface web do Milvus para saber mais sobre a instância do Milvus.
Aprender as operações básicas do Milvus:
Implemente o seu cluster Milvus na nuvem:
Explore o Milvus WebUI, uma interface web intuitiva para a monitorização e gestão do Milvus.
Explore o Milvus Backup, uma ferramenta de código aberto para cópias de segurança dos dados do Milvus.
Explore o Birdwatcher, uma ferramenta de código aberto para depuração do Milvus e atualizações dinâmicas de configuração.
Explore o Attu, uma ferramenta GUI de código aberto para a gestão intuitiva do Milvus.