Capítulo 12. Gestión de dispositivos NVIDIA vGPU
La función vGPU permite dividir un dispositivo de GPU NVIDIA físico en varios dispositivos virtuales, denominados mediated devices
. Estos dispositivos mediados pueden asignarse entonces a múltiples máquinas virtuales (VM) como GPUs virtuales. Como resultado, estas VMs pueden compartir el rendimiento de una única GPU física.
La asignación de una GPU física a las máquinas virtuales, con o sin el uso de dispositivos mediados, hace que el host no pueda utilizar la GPU.
12.1. Configuración de dispositivos NVIDIA vGPU
Para configurar la función NVIDIA vGPU, debe descargar los controladores NVIDIA vGPU para su dispositivo GPU, crear dispositivos mediados y asignarlos a las máquinas virtuales previstas. Para obtener instrucciones detalladas, consulte a continuación.
Requisitos previos
El paquete mdevctl está instalado.
# yum install mdevctl
Su GPU soporta dispositivos mediados por vGPU. Para obtener una lista actualizada de las GPUs NVIDIA que admiten la creación de vGPUs, consulta la documentación del software de la GPU NVIDIA.
Si no sabe qué GPU está utilizando su host, instale el paquete lshw y utilice el comando
lshw -C display
. El siguiente ejemplo muestra que el sistema utiliza una GPU NVIDIA Tesla P4, compatible con vGPU.# lshw -C display *-display description: 3D controller product: GP104GL [Tesla P4] vendor: NVIDIA Corporation physical id: 0 bus info: pci@0000:01:00.0 version: a1 width: 64 bits clock: 33MHz capabilities: pm msi pciexpress cap_list configuration: driver=vfio-pci latency=0 resources: irq:16 memory:f6000000-f6ffffff memory:e0000000-efffffff memory:f0000000-f1ffffff
Procedimiento
- Descargue los controladores NVIDIA vGPU e instálelos en su sistema. Para obtener instrucciones, consulta la documentación de NVIDIA.
Si el instalador del software de NVIDIA no creó el archivo /etc/modprobe.d/nvidia-installer-disable-nouveau.conf, cree un archivo
conf
con cualquier nombre en /etc/modprobe.d/, y añada las siguientes líneas en el archivo:blacklist nouveau options nouveau modeset=0
Regenerar el ramdisk inicial para el kernel actual, luego reiniciar.
# dracut --force # reboot
Compruebe que el kernel ha cargado el módulo
nvidia_vgpu_vfio
y que el servicionvidia-vgpu-mgr.service
está funcionando.# lsmod | grep nvidia_vgpu_vfio nvidia_vgpu_vfio 45011 0 nvidia 14333621 10 nvidia_vgpu_vfio mdev 20414 2 vfio_mdev,nvidia_vgpu_vfio vfio 32695 3 vfio_mdev,nvidia_vgpu_vfio,vfio_iommu_type1 # systemctl status nvidia-vgpu-mgr.service nvidia-vgpu-mgr.service - NVIDIA vGPU Manager Daemon Loaded: loaded (/usr/lib/systemd/system/nvidia-vgpu-mgr.service; enabled; vendor preset: disabled) Active: active (running) since Fri 2018-03-16 10:17:36 CET; 5h 8min ago Main PID: 1553 (nvidia-vgpu-mgr) [...]
Generar un UUID de dispositivo.
# uuidgen 30820a6f-b1a5-4503-91ca-0c10ba58692a
Cree un dispositivo mediado a partir del hardware de la GPU que ha detectado en los requisitos previos y asigne el UUID generado al dispositivo.
El siguiente ejemplo muestra cómo crear un dispositivo mediado del tipo
nvidia-63
vGPU en una tarjeta NVIDIA Tesla P4 que funciona en el bus PCI 0000:01:00.0:# mdevctl start -u 30820a6f-b1a5-4503-91ca-0c10ba58692a -p 0000:01:00.0 --type nvidia-63
NotaPara conocer los valores del tipo vGPU para dispositivos GPU específicos, consulte la documentación del software de la GPU virtual.
Haz que el dispositivo mediado sea persistente:
# mdevctl define --auto --uuid 30820a6f-b1a5-4503-91ca-0c10ba58692a
Adjunte el dispositivo mediado a una VM que desee compartir los recursos de la vGPU. Para ello, añada las siguientes líneas, junto con el UUID previamente genereado, a las secciones <devices/> en la configuración XML de la VM.
<hostdev mode='subsystem' type='mdev' managed='no' model='vfio-pci'> <source> <address uuid='30820a6f-b1a5-4503-91ca-0c10ba58692a'/> </source> </hostdev>
Tenga en cuenta que cada UUID sólo puede asignarse a una máquina virtual a la vez.
- Para que la funcionalidad completa de los dispositivos mediados por la vGPU esté disponible en las VMs asignadas, configure el licenciamiento de software invitado de NVIDIA vGPU en las VMs. Para obtener más información e instrucciones, consulte la Guía del usuario del servidor de licencias de software de la GPU virtual de NVIDIA.
Verificación
Enumera los dispositivos mediadores activos en tu host. Si la salida muestra un dispositivo definido con el UUID utilizado en el procedimiento, NVIDIA vGPU se ha configurado correctamente. Por ejemplo:
# mdevctl list 85006552-1b4b-45ef-ad62-de05be9171df 0000:01:00.0 nvidia-63 30820a6f-b1a5-4503-91ca-0c10ba58692a 0000:01:00.0 nvidia-63 (defined)
Recursos adicionales
-
Para más información sobre el uso de la utilidad
mdevctl
, utiliceman mdevctl
.