Entender las diferencias entre KVM y Hyper-V es esencial al construir un entorno virtualizado para optimizar la utilización de los recursos de hardware de una organización. En este artículo del blog, explicamos brevemente qué son KVM y Hyper-V, y luego comparamos los dos hipervisores.
Los puntos clave de esta evaluación comparativa son los siguientes:
- Escalabilidad y rendimiento
- Herramientas de gestión
- Opciones de aprovisionamiento de memoria
- Características de seguridad
- Capacidades de migración en vivo
¿Qué es el hipervisor KVM?
El acrónimo KVM significa Máquina Virtual Basada en Kernel. Es una solución de virtualización completa de código abierto en el kernel de Linux. KVM se ejecuta en procesadores x86, proporcionando a los usuarios capacidades de hipervisor para construir entornos virtualizados.
El hipervisor Máquina Virtual Basada en Kernel fue lanzado por primera vez en 2007 como parte de las versiones 2.6.20 y posteriores de Linux. KVM admite varios sistemas operativos como Linux, Windows, macOS y Haiku, ofreciendo capacidades de virtualización asistida por hardware. La misma solución también proporciona paravirtualización para Windows, OpenBSD, FreeBSD, entre otros sistemas.
KVM se puede usar en la mayoría de las máquinas Linux que tienen CPUs que admiten virtualización asistida por hardware. Para instalar KVM, necesitas descargar los paquetes necesarios de los repositorios de software de Linux, además de kvm-qemu y una herramienta de gestión (opcional).
Las herramientas de gestión de virtualización basadas en KVM más comunes son Oracle Linux Virtualization Manager, Proxmox VE y Red Hat Virtualization Manager.
¿Qué es Hyper-V?
Hyper-V es un hipervisor nativo de Microsoft que permite la creación y uso de máquinas virtuales y entornos virtuales. Hyper-V se puede ejecutar en un sistema x86-64 bajo el sistema operativo Windows.
Microsoft Hyper-V se lanzó por primera vez como parte de Windows Server 2008. El hipervisor es un componente opcional descargable de los sistemas Windows Server. Además, Hyper-V tiene una edición gratuita independiente con funciones limitadas que solo soporta CLI (interfaz de línea de comandos).
Con Hyper-V, puedes obtener un conjunto de máquinas virtuales aisladas entre sí. Esto es posible gracias a la partición específica de padre (raíz) e hijo. Una partición padre, que puede acceder directamente al hardware, ejecuta la pila de gestión de virtualización. Luego, esta partición crea particiones hijas que alojan sistemas operativos invitados.
KVM vs Hyper-V: Una Comparación Detallada
Ahora que hemos resaltado las diferencias generales en nuestra comparación de Hyper-V vs KVM, podemos proceder con más detalles. Revisa la información a continuación para que puedas elegir la solución que mejor se adapte a tus necesidades.
Escalabilidad y rendimiento
La escalabilidad y el rendimiento son posiblemente los dos puntos más importantes en cualquier comparación de KVM vs Hyper-V. La buena noticia es que la competencia aquí resulta en un empate: tanto Hyper-V como KVM tienen un alto rendimiento y proporcionan gran escalabilidad.
El software de virtualización KVM se basa en el kernel de Linux, que es una solución de código abierto. Esto significa que KVM puede funcionar correctamente en una amplia gama de hardware. El mismo kernel de Linux permite alta eficiencia y velocidad operativa.
En la parte negativa, la naturaleza de código abierto de KVM puede provocar problemas situacionales que pueden requerir tiempo y esfuerzo para resolver. Sin embargo, la base de conocimientos en línea de KVM es sustancial, lo que significa que probablemente puedes encontrar una solución rápidamente.
Por otro lado, Hyper-V es un hipervisor propietario de Microsoft que viene empaquetado con el sistema operativo Windows Server, optimizado para proporcionar un rendimiento máximo en la mayoría del hardware disponible. La escalabilidad de Hyper-V también te permite utilizar tu infraestructura de TI con eficiencia máxima al ejecutar varios VM en el host y escalando tus cargas de trabajo virtuales según la demanda.
La principal desventaja de Hyper-V es su limitado soporte para sistemas operativos distintos de Windows. Combinado con ciertas complejidades de gestión y posibles problemas de compatibilidad, Hyper-V también puede ser desafiante si no tienes la experiencia técnica requerida.
Herramientas de gestión
Como Hyper-V y KVM están diseñados para diferentes plataformas subyacentes, sus herramientas de gestión también difieren.
Para la gestión de Hyper-V, puedes usar la CLI de Windows PowerShell. En caso de que desees una solución con GUI, puedes optar por usar Windows Admin Center o Hyper-V Manager.
Además, las organizaciones pueden obtener varios beneficios de la herramienta de gestión empresarial nativa proporcionada por Microsoft: System Center Virtual Machine Manager (VMM) para Hyper-V. Los administradores suelen preferir VMM para gestionar entornos Hyper-V debido a la conveniente y informativa vista de la infraestructura y las capacidades de escalabilidad. En la parte negativa, es necesario comprar una licencia dedicada para utilizar Virtual Machine Manager.
Puede realizar todas las tareas de gestión de KVM utilizando solo la CLI, al igual que con Hyper-V a través de PowerShell. Sin embargo, aquellos que prefieran interfaces gráficas para administrar su infraestructura KVM pueden querer probar soluciones como Morpheus, virt-manager o Cloonix, entre otros.
Hyper-V y KVM comparten una característica importante: una amplia lista de compatibilidad de hardware, que proporciona gran flexibilidad.
Para KVM, puede utilizar eficazmente cualquier almacenamiento (incluyendo almacenamiento directo y por red). Por su parte, Hyper-V funciona con cualquier almacenamiento compatible con Windows. Tenga en cuenta que si planea almacenar archivos de VM en un NAS o recurso compartido de archivos de red, necesitará configurar el protocolo SMB 3.0.
Opciones de provisión de memoria
La flexibilidad en el uso de memoria es otra ventaja compartida por KVM y Hyper-V. Ambos hipervisores pueden utilizar memoria regular o NUMA (acceso no uniforme a la memoria) igualmente bien.
Sin embargo, vale la pena mencionar la diferencia entre KVM y Hyper-V en la asignación dinámica de memoria. En Hyper-V, la función de memoria dinámica permite a las máquinas virtuales regular el uso de memoria dependiendo de las necesidades actuales de la VM. La demanda no supera los límites de volumen de memoria establecidos. Con la asignación dinámica de memoria, los administradores pueden ejecutar más VMs en un único host mediante la sobredimensionación de la memoria.
El hipervisor KVM también permite la sobreprovisionamiento de memoria. Sin embargo, la implementación de la función es un poco diferente a la de Hyper-V. Las máquinas virtuales de KVM son procesos separados que ejecutan en el anfitrión bajo el sistema operativo Linux. Así, las VM no tienen volúmenes de memoria pre-asignados. El sistema operativo distribuye la memoria entre las máquinas virtuales basándose en las solicitudes. En palabras sencillas, el software de virtualización KVM asigna bloques de memoria a cada máquina virtual bajo demanda.
En caso de que un anfitrión KVM enfrente una deficiencia de memoria física, el sistema entonces envía algunas páginas de memoria al swap. La cantidad de RAM libre aumenta entonces bajo demanda, por lo que se permite el sobreentregado de memoria para el sistema anfitrión.
Características de seguridad
Cuando se trata de las capacidades de seguridad en la comparación entre KVM y Hyper-V, ambas soluciones tienen funciones de seguridad eficientes que puede usar para asegurar la protección de los datos y el entorno de su organización.
Para KVM, la aislación y la seguridad de las VM provienen de las capacidades de dos soluciones. La primera, SELinux (Linux con mejoras de seguridad) establece un perímetro de seguridad alrededor de las máquinas virtuales. sVirt (virtualización segura) permite la seguridad de acceso obligatorio (MAC) para las VM de invitado, agregando más funciones a SELinux y reduciendo el impacto de los errores humanos en la seguridad virtual.
Hyper-V también puede aislar máquinas virtuales para asegurar el entorno antes de que un solo nodo comprometido. Además, la función de Arranque Seguro disponible con las VMs de generación 2 de Hyper-V ayuda a evitar que se ejecuten sistemas operativos, controladores y firmware no autorizados en el momento del arranque. Otras capacidades de seguridad de Hyper-V incluyen el cifrado del tráfico en toda una subred, Guarded Fabric (un modelo de seguridad antimalware) y máquinas virtuales protegidas.
Capacidades de migración en vivo de VM
La migración en vivo de máquinas virtuales es una característica disponible tanto en KVM como en Hyper-V. Con esta función, los administradores pueden mover VMs a un servidor diferente sin interrumpir las operaciones de VM.
La migración en vivo puede ayudar a las organizaciones a respaldar la continuidad de la producción y la disponibilidad del servicio. Por ejemplo, cuando tenga una sesión de mantenimiento de hardware planeada en su host de virtualización principal, puede mover sus VMs cruciales a un servidor secundario. El mantenimiento se ejecuta según lo planeado sin interrumpir los flujos de trabajo y operaciones de su organización.
Además, a veces su host tiene recursos insuficientes para ejecutar las VMs que originalmente creó en él. Por ejemplo, una VM puede volverse demasiado “grande” durante su uso y causar problemas de rendimiento en todo el host. La forma más efectiva de optimizar el rendimiento del host es usar las capacidades de migración en vivo de su hipervisor para mover esa máquina virtual a un host diferente sin apagar la VM.
Conversión entre KVM y Hyper-V
Cuando sea necesario, puede convertir máquinas virtuales KVM para que funcionen en entornos Hyper-V y viceversa. Vea las guías sobre la conversión entre KVM y Hyper-V a continuación.
Conversión de KVM a Hyper-V
La conversión de máquinas virtuales KVM para su uso en entornos Hyper-V se realiza en tres pasos:
- Instale qemu-ing.
- Para convertir una imagen de disco de máquina virtual KVM al formato Hyper-V, utilice el siguiente comando:
qemu-img.exe convert sourcefile.qcow2 -O vhdx -o subformat=dynamic destinationfile.vhdx
En este comando, sourcefile es el nombre del archivo de disco de la VM de origen y destinationfile es el nombre del nuevo archivo de disco que desea obtener tras la conversión.
- Cree una nueva máquina virtual en Hyper-V y, a continuación, adjúntele la imagen de disco convertida.
Conversión de Hyper-V a KVM
Para convertir máquinas virtuales Hyper-V a entornos KVM, haga lo siguiente:
- Apague la máquina virtual Hyper-V que necesita convertir. A continuación, escoja la VM y, en Hyper-V Manager, pulse Exportar.
- Proporcione el repositorio de destino para los archivos de la VM.
- Anote los núcleos de procesador, la memoria y la MAC de la VM exportada.
- Copie el archivo VHDX de la máquina virtual de destino en el entorno KVM.
- En el host KVM, instale virt-v2v.
- Usar virt-v2v para convertir VHDX a QCOW2 con el siguiente comando:
sudo virt-v2v -i disk sourcefile.vhdx -o local -of qcow2 -os targetfile
- Después de finalizar la conversión, note la SO del invitado.
- Use VMM para crear una nueva máquina virtual en el entorno KVM.
- Seleccione Importar imagen de disco existente, a continuación, haga clic en Siguiente.
- Busque el archivo vhdx-sda, a continuación, especifique la SO que necesita instalar. Después de eso, pulse Siguiente.
- Complete la configuración inicial de la nueva VM: establezca memoria, CPU, nombre de la VM y especifique las configuraciones de red KVM. A continuación, haga clic en Aplicar.
- Configure aquí opciones específicas como la MAC. A continuación, en la parte superior de la ventana, seleccione Iniciar instalación.
Consideraciones de Costo
El presupuesto de la organización sigue siendo la piedra angular de cualquier opción respecto a entornos IT, y la decisión entre KVM y Hyper-V no es una excepción. Cuando se trata de precios, KVM tiene una ventaja clara: como una solución de código abierto, es gratuita para usar. Además, también puede descargar e instalar las herramientas de gestión y los módulos de características sin costo adicional. También está disponible gratuitamente el módulo de Hyper-V de Microsoft. Sin embargo, la novedad es que Microsoft recomienda actualizar a Windows Server para ejecutar entornos virtualizados Hyper-V.
Conclusión
La decisión final entre KVM y Hyper-V depende de las necesidades específicas y el presupuesto de su organización. En caso de que necesite ejecutar VMs de Windows en un ecosistema familiar y esté dispuesto a asignar fondos para obtener la solución protegida, Hyper-V es la opción correcta. Por otra parte, si está dispuesto a poner un esfuerzo adicional en la configuración y ajuste de la solución de código abierto, KVM puede proporcionar casi iguales capacidades y experiencia en términos de gestión, seguridad, escalabilidad y características, todo esto gratuitamente.