Ejecutar Milvus con soporte para GPU mediante Docker Compose
En esta página se explica cómo iniciar una instancia de Milvus con soporte para GPU mediante Docker Compose.
Requisitos previos
- Instala Docker.
- Comprueba los requisitos de hardware y software antes de la instalación.
Si tienes algún problema al descargar la imagen, ponte en contacto con nosotros en community@zilliz.com con los detalles del problema y te proporcionaremos la ayuda necesaria.
Instalar Milvus
Para instalar Milvus con soporte para GPU utilizando Docker Compose, sigue estos pasos.
1. Descarga y configura el archivo YAML
Descárgalo milvus-standalone-docker-compose-gpu.yml y guárdalo como docker-compose.yml manualmente o con el siguiente comando.
$ wget https://github.com/milvus-io/milvus/releases/download/v3.0.2/milvus-standalone-docker-compose-gpu.yml -O docker-compose.yml
Debe realizar algunos cambios en las variables de entorno del servicio independiente en el archivo YAML, tal y como se indica a continuación:
- Para asignar un dispositivo de GPU específico a Milvus, localice el campo «
deploy.resources.reservations.devices[0].devices_ids» en la definición del servicio «standalone» y sustituya su valor por el ID de la GPU deseada. Puede utilizar la herramienta «nvidia-smi», incluida con los controladores de pantalla de las GPU de NVIDIA, para determinar el ID de un dispositivo de GPU. Milvus admite varios dispositivos de GPU.
Asignar un único dispositivo de GPU a Milvus:
...
standalone:
...
deploy:
resources:
reservations:
devices:
- driver: nvidia
capabilities: ["gpu"]
device_ids: ["0"]
...
Asignar varios dispositivos de GPU a Milvus:
...
standalone:
...
deploy:
resources:
reservations:
devices:
- driver: nvidia
capabilities: ["gpu"]
device_ids: ['0', '1']
...
2. Iniciar Milvus
En el directorio que contiene el archivo docker-compose.yml, inicia Milvus ejecutando:
$ sudo docker compose up -d
Creating milvus-etcd ... done
Creating milvus-minio ... done
Creating milvus-standalone ... done
Si no ha podido ejecutar el comando anterior, compruebe si su sistema tiene instalado Docker Compose V1. Si es así, se recomienda migrar a Docker Compose V2 debido a las notas que figuran en esta página.
Tras iniciar Milvus,
- los contenedores denominados milvus-standalone, milvus-minio y milvus-etcd estarán en funcionamiento.
- El contenedor milvus-etcd no expone ningún puerto al host y asigna sus datos a volumes/etcd en la carpeta actual.
- El contenedor «milvus-minio» atiende los puertos 9090 y 9091 de forma local con las credenciales de autenticación predeterminadas y asigna sus datos a «volumes/minio» en la carpeta actual.
- El contenedor «milvus-standalone» atiende los puertos 19530 localmente con la configuración predeterminada y asigna sus datos a la carpeta «volumes/milvus» de la carpeta actual.
Puedes comprobar si los contenedores están en funcionamiento utilizando el siguiente 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
También puede acceder a la interfaz web de Milvus en http://127.0.0.1:9091/webui/ para obtener más información sobre su instancia de Milvus. Para más detalles, consulte la interfaz web de Milvus.
Si ha asignado varios dispositivos GPU a Milvus en el archivo docker-compose.yml, puede especificar qué dispositivo GPU es visible o está disponible para su uso.
Hacer que el dispositivo GPU 0 sea visible para Milvus:
$ CUDA_VISIBLE_DEVICES=0 ./milvus run standalone
Hacer que los dispositivos GPU 0 y 1 sean visibles para Milvus:
$ CUDA_VISIBLE_DEVICES=0,1 ./milvus run standalone
Puede detener y eliminar este contenedor de la siguiente manera.
# Stop Milvus
$ sudo docker compose down
# Delete service data
$ sudo rm -rf volumes
Configurar el grupo de memoria
Una vez que Milvus esté en funcionamiento, puede personalizar el grupo de memoria modificando los ajustes de initMemSize y maxMemSize en el archivo milvus.yaml.
El archivo « milvus.yaml » se encuentra en el directorio « /milvus/configs/ », dentro del contenedor de Milvus.
Para configurar el grupo de memoria, modifica los ajustes initMemSize y maxMemSize del archivo milvus.yaml de la siguiente manera.
Utiliza el siguiente comando para copiar el archivo «
milvus.yaml» desde el contenedor de Milvus a tu equipo local. Sustituye «<milvus_container_id>» por el ID real de tu contenedor de Milvus.docker cp <milvus_container_id>:/milvus/configs/milvus.yaml milvus.yamlAbre el archivo «
milvus.yaml» copiado con tu editor de texto preferido. Por ejemplo, si utilizas vim:vim milvus.yamlEdita los ajustes de «
initMemSize» y «maxMemSize» según sea necesario y guarda los cambios:... gpu: initMemSize: 0 maxMemSize: 0 ...initMemSize: Tamaño inicial del grupo de memoria. El valor por defecto es 1024.maxMemSize: Tamaño máximo del pool de memoria. El valor predeterminado es 2048.
Utiliza el siguiente comando para copiar el archivo «
milvus.yaml» modificado de vuelta al contenedor de Milvus. Sustituye «<milvus_container_id>» por el ID real de tu contenedor de Milvus.docker cp milvus.yaml <milvus_container_id>:/milvus/configs/milvus.yamlReinicia el contenedor de Milvus para aplicar los cambios:
docker stop <milvus_container_id> docker start <milvus_container_id>
Storage V3 está desactivado de forma predeterminada. Actívelo antes de utilizar funciones que dependan de él. Para conocer los requisitos y las consideraciones de compatibilidad, consulte Storage V3.
Próximos pasos
Una vez instalado Milvus en Docker, puedes:
Consulta la Guía de inicio rápido para ver lo que puede hacer Milvus.
Consulta la interfaz web de Milvus para obtener más información sobre la instancia de Milvus.
Aprender las operaciones básicas de Milvus:
Implementa tu clúster de Milvus en la nube:
Descubre Milvus WebUI, una interfaz web intuitiva para la observabilidad y la gestión de Milvus.
Descubre Milvus Backup, una herramienta de código abierto para realizar copias de seguridad de los datos de Milvus.
Descubre Birdwatcher, una herramienta de código abierto para la depuración de Milvus y las actualizaciones dinámicas de configuración.
Descubre Attu, una herramienta GUI de código abierto para una gestión intuitiva de Milvus.