KVM es parte de Linux, y viceversa. Ambas soluciones ofrecen las mismas características; sin embargo, las KVM tienen algunas funciones específicas que las convierten en el hipervisor preferido de las empresas.
Seguridad
Las KVM utilizan una combinación de Security-Enhanced Linux (SELinux) y Secure Virtualization (sVirt) para mejorar la seguridad y el aislamiento de las máquinas virtuales. SELinux establece límites de seguridad para las máquinas virtuales, mientras que sVirt amplía las funciones de SELinux, lo cual permite aplicar el control de acceso obligatorio (MAC) a las máquinas virtuales guest y prevenir los errores relacionados con el etiquetado manual.
Almacenamiento
Las KVM pueden usar todos los tipos de almacenamiento compatibles con Linux, lo cual incluye algunos discos locales y el almacenamiento conectado en red (NAS). La entrada y salida de varias rutas se puede utilizar para mejorar el almacenamiento y proporcionar redundancia. Las KVM también admiten los sistemas de archivos compartidos, para que varios hosts puedan compartir las imágenes de máquinas virtuales. Las imágenes del disco son compatibles con el método de implementación fina, mediante el cual el almacenamiento se asigna según se requiera, en lugar de hacerlo todo por adelantado.
Compatibilidad con los sistemas de hardware
Las KVM pueden usar varias plataformas de hardware certificadas y compatibles con Linux. Dado que los proveedores de hardware contribuyen al desarrollo del kernel con frecuencia, las funciones más recientes de estos sistemas suelen implementarse rápidamente en el kernel de Linux.
Gestión de la memoria
Las KVM cuentan con las funciones de Linux para la gestión de la memoria, como el acceso a la memoria no uniforme y la memoria compartida del kernel. La memoria de una máquina virtual puede intercambiarse o contar con el respaldo de volúmenes grandes de datos para obtener un mejor rendimiento. Además, se puede compartir o respaldar con un archivo de disco.
Migración activa
Las KVM son compatibles con la migración activa, es decir, la capacidad para trasladar una máquina virtual en ejecución entre hosts físicos sin interrumpir el servicio. Eso permite que la máquina virtual y las conexiones de red sigan activas, y que las aplicaciones continúen ejecutándose durante el proceso de migración. Además, las KVM guardan el estado actual de la VM, para que pueda almacenarla y reanudarla más adelante.
Rendimiento y capacidad de ajuste
Las KVM adquieren el rendimiento de Linux y realizan los ajustes necesarios para satisfacer la demanda en caso de que aumente la cantidad de máquinas guest y de solicitudes. Con ellas, se pueden virtualizar las cargas de trabajo de las aplicaciones más exigentes, y son la base para muchas configuraciones de virtualización empresarial, como los centros de datos y las nubes privadas (a través de OpenStack®).
Programación y control de los recursos
En el modelo de KVM, una máquina virtual es un proceso de Linux que el kernel programa y gestiona. El programador de Linux brinda un control detallado de los recursos que se asignan a un proceso y garantiza la calidad del servicio para un proceso en particular. Las KVM incluyen el programador completamente justo, los grupos de control, los espacios de nombre de las redes y las extensiones inmediatas.
Latencia más baja y mayor priorización
El kernel de Linux incluye extensiones inmediatas que permiten que las aplicaciones basadas en máquinas virtuales se ejecuten con una latencia más baja y un mejor orden de prioridad (en comparación con los servidores dedicados [bare metal]). El kernel también divide los procesos que requieren largos períodos informáticos en elementos más pequeños, que luego se programan y se procesan debidamente.