10.5. Tipos de dispositivos virtuales
La virtualización en RHEL 8 puede presentar varios tipos distintos de dispositivos virtuales que puede adjuntar a las máquinas virtuales (VM):
- Dispositivos emulados
Los dispositivos emulados son implementaciones de software de dispositivos físicos ampliamente utilizados. Los controladores diseñados para los dispositivos físicos también son compatibles con los dispositivos emulados. Por lo tanto, los dispositivos emulados pueden utilizarse con gran flexibilidad.
Sin embargo, al tener que emular fielmente un tipo concreto de hardware, los dispositivos emulados pueden sufrir una importante pérdida de rendimiento en comparación con los correspondientes dispositivos físicos o con dispositivos virtuales más optimizados.
Se admiten los siguientes tipos de dispositivos emulados:
- CPUs virtuales (vCPUs), con una gran variedad de modelos de CPU disponibles. El impacto de la emulación en el rendimiento depende en gran medida de las diferencias entre la CPU anfitriona y la vCPU emulada.
- Componentes del sistema emulados, como los controladores de bus PCI
- Controladores de almacenamiento emulados, como SATA, SCSI o incluso IDE
- Dispositivos de sonido emulados, como ICH9, ICH6 o AC97
- Tarjetas gráficas emuladas, como las tarjetas VGA o QXL
- Dispositivos de red emulados, como el rtl8139
- Dispositivos paravirtuales
La paravirtualización proporciona un método rápido y eficiente para exponer dispositivos virtuales a las máquinas virtuales. Los dispositivos paravirtualizados exponen interfaces diseñadas específicamente para su uso en VMs, y por lo tanto aumentan significativamente el rendimiento del dispositivo. RHEL 8 proporciona dispositivos paravirtualizados a las VMs utilizando la API virtio como una capa entre el hipervisor y la VM. El inconveniente de este enfoque es que requiere un controlador de dispositivo específico en el sistema operativo invitado.
Se recomienda utilizar dispositivos paravirtualizados en lugar de dispositivos emulados para las VM siempre que sea posible, especialmente si están ejecutando aplicaciones intensivas de E/S. Los dispositivos paravirtualizados disminuyen la latencia de E/S y aumentan el rendimiento de E/S, en algunos casos acercándolos al rendimiento bare-metal. Otros dispositivos paravirtualizados también añaden funcionalidad a las VMs que no está disponible de otra manera.
Se admiten los siguientes tipos de dispositivos paravirtualizados:
-
El dispositivo de red paravirtualizado (
virtio-net
). Controladores de almacenamiento paravirtualizados:
-
virtio-blk
- proporciona una emulación de dispositivo de bloque. -
virtio-scsi
- proporciona una emulación SCSI más completa.
-
- El reloj paravirtualizado.
-
El dispositivo serial paravirtualizado (
virtio-serial
). El dispositivo globo (
virtio-balloon
), utilizado para compartir información sobre el uso de la memoria del huésped con el hipervisor.Sin embargo, hay que tener en cuenta que el dispositivo del globo también requiere que se instale el servicio del globo.
-
El generador de números aleatorios paravirtualizado (
virtio-rng
). -
La tarjeta gráfica paravirtualizada (
QXL
).
-
El dispositivo de red paravirtualizado (
- Dispositivos compartidos físicamente
Algunas plataformas de hardware permiten a las máquinas virtuales acceder directamente a varios dispositivos y componentes de hardware. Este proceso se conoce como device assignment o passthrough.
Cuando se conecta de esta manera, algunos aspectos del dispositivo físico están directamente disponibles para la VM como lo estarían para una máquina física. Esto proporciona un rendimiento superior para el dispositivo cuando se utiliza en la VM. Sin embargo, los dispositivos conectados físicamente a una VM no están disponibles para el host, y tampoco pueden ser migrados.
Sin embargo, algunos dispositivos pueden ser shared a través de múltiples VMs. Por ejemplo, un único dispositivo físico puede, en ciertos casos, proporcionar múltiples mediated devices, que pueden ser asignados a distintas máquinas virtuales.
Se admiten los siguientes tipos de dispositivos de paso:
- Asignación de dispositivos de E/S de funciones virtuales (VFIO): expone de forma segura los dispositivos a las aplicaciones o máquinas virtuales utilizando DMA reforzado por hardware y aislamiento de interrupciones.
- USB, PCI y SCSI passthrough: exponen los buses estándar comunes de la industria directamente a las máquinas virtuales para que sus características específicas estén disponibles para el software invitado.
- Virtualización de E/S de raíz única (SR-IOV): una especificación que permite el aislamiento reforzado por hardware de los recursos PCI Express. Esto hace que sea seguro y eficaz dividir un único recurso PCI físico en funciones PCI virtuales. Se utiliza habitualmente para las tarjetas de interfaz de red (NIC).
- Virtualización de N_Port ID (NPIV) - una tecnología de Fibre Channel para compartir un único adaptador de bus de host (HBA) físico con múltiples puertos virtuales.
- GPUs y vGPUs - aceleradores para tipos específicos de cargas de trabajo gráficas o de computación. Algunas GPU pueden conectarse directamente a una máquina virtual, mientras que algunos tipos también ofrecen la posibilidad de crear GPU virtuales (vGPU) que comparten el hardware físico subyacente.