GNU/Linux >> Tutoriales Linux >  >> Linux

Introducción a Linux KVM (virtualización basada en kernel) y sus beneficios

¿Qué es la virtualización?

En términos simples, la virtualización es una plataforma o entorno simulado sobre un nodo host, lo cual es bastante abstracto para un usuario.

Estos entornos virtuales simulados pueden ser sistemas operativos, o algún entorno de desarrollo, etc.

Esto nos brinda la capacidad de utilizar de manera eficiente los recursos de hardware del nodo host.

¿Qué es KVM?

KVM significa virtualización basada en kernel.

La virtualización basada en kernel se implementó para aprovechar la compatibilidad con la virtualización asistida por hardware proporcionada por la nueva generación de CPU Intel y AMD.

Durante las etapas iniciales de desarrollo de la tecnología de virtualización, las CPU fueron emuladas completamente por el software, que finalmente perdió rendimiento debido a la ausencia de acceso directo al hardware.

En estos días, las CPU en el mercado admiten la virtualización, que es el resultado del cambio en su arquitectura desde las etapas anteriores.

Esto también se denomina virtualización asistida por hardware.

Si es totalmente nuevo en la virtualización, este es un buen lugar para comenzar, donde explicamos las tres áreas de la virtualización y dos tipos de hipervisores:Introducción a la tecnología de virtualización de servidores y tipos de hipervisores

Los siguientes son varios enfoques que se siguieron durante la etapa inicial de desarrollo de la tecnología de virtualización.

  1. Ejecutar la máquina virtual en el procesador del sistema host en lugar de emular un procesador mediante la técnica de traducción binaria. Funciona sin modificar el sistema operativo invitado.
  2. Modificar el sistema operativo de los sistemas invitados para comunicarse con un hipervisor que tiene acceso directo al hardware. La plataforma de hipervisor Xen es un ejemplo que implementa la virtualización Para.
  3. Modificar el procesador de los sistemas host para que sea fácil comunicarse con el hipervisor y, por lo tanto, admitir la virtualización. Elimina la necesidad de la traducción binaria y la emulación. Conduce a la virtualización completa en lugar de a la paravirtualización.
  4. Modificar el sistema operativo de los sistemas host para que pueda soportar la virtualización. Da como resultado hipervisores nativos en lugar de alojados.

La virtualización basada en kernel aprovecha las ventajas del tercer y cuarto enfoque mencionado anteriormente.

¿Qué es un hipervisor?

Un hipervisor no es más que una capa intermedia de programa, entre el sistema operativo invitado y el hardware del sistema host.

Administra el hardware real para todos los sistemas operativos invitados que se conectan.

Los hipervisores pueden ser de dos tipos:nativos o alojados. Los hipervisores también se denominan VMM-[Administradores de máquinas virtuales]. Consulte la figura a continuación. Representa un hipervisor nativo completo.

Buenos ejemplos de hipervisores alojados pueden ser VMware o software de caja virtual.

Si es nuevo en VMWare, esto le ayudará:Fundamentos de virtualización de VMware:VMware Server y VMware ESXi

Si es nuevo en Virtualbox, este es un buen lugar para comenzar:Cómo instalar Oracle VM VirtualBox y crear una máquina virtual

Evolución KVM

Entonces, como una solución moderna para la virtualización efectiva, la máquina virtual basada en kernel (KVM) evolucionó.

Esencialmente, utiliza las extensiones de CPU proporcionadas por la virtualización de hardware moderna que admite CPU, mediante un módulo con el kernel del sistema operativo host.

Mediante el uso de este módulo de virtualización basado en el kernel, el kernel de los sistemas operativos host funciona como un hipervisor que aprovecha las funciones del kernel de Linux y el hardware que admite la virtualización.

Entonces, para comparar KVM con XEN y QEMU, podemos decir que KVM usa la extensión del procesador para la virtualización, mientras que QEMU funciona con una emulación completa de la CPU, por otro lado, XEN funciona como un hipervisor externo para el sistema operativo host en lugar de usar kernel para ello. .

Con KVM podemos ejecutar varias máquinas virtuales con cualquier sistema operativo, en una sola máquina o, por ejemplo, en el sistema host. KVM se introdujo en Linux Kernel desde la versión estable 2.6.20. Un buen ejemplo de KVM es la solución de virtualización que viene con las distribuciones Red Hat y Fedora basadas en RPM.

Beneficios de Linux KVM

Si es nuevo en Linux KVM, esto lo ayudará a comenzar:Cómo instalar Linux KVM y crear una VM invitada con ejemplos

Las siguientes son algunas de las características y beneficios de la virtualización basada en Kernel.

  1. Con la ayuda del módulo KVM, administra las partes críticas de rendimiento de las interrupciones y los temporizadores mediante la emulación de E/S basada en el kernel. Brinda la capacidad de establecer un límite en la solicitud de E/S entre la máquina virtual y el host.
  2. El módulo KVM permite aquí la emulación de modos de CPU no compatibles con el procesador físico y las instrucciones.
  3. El módulo KVM utilizado es parte del kernel de Linux ascendente, ya que se le agrega para mejorar la virtualización.
  4. El módulo KVM utilizado aquí proporciona una interfaz común para los procesadores Intel y AMD x86 que admite la virtualización de hardware. Para Intel se conoce como asistencia de hardware Intel VMX para virtualización y para AMD se conoce como asistencia de hardware AMD SVM para virtualización.
  5. Crea un hipervisor básico a partir del kernel. Podemos decir que crea un hipervisor nativo.
  6. Aprovecha la capacidad de MMU (unidad de administración de memoria) en el hardware para virtualizar la memoria con una mejora en el rendimiento.
  7. Una máquina virtual creada por él es un proceso estándar de Linux, programado por su programador estándar nativo de Linux.
  8. Es compatible con las funciones EPT (tabla de página extendida) de Intel y RVI (indexación de virtualización rápida) de AMD para la virtualización de memoria por parte de los proveedores de CPU.
  9. Es compatible con todos los sistemas de archivos admitidos por el núcleo principal de Linux.
  10. Uso mejorado de recursos y acceso a ellos al proporcionar almacenamiento flexible. Es muy fácil agregar memoria, vCPU, disco duro a Linux KVM.
  11. Admite una amplia gama de sistemas operativos invitados, incluidos Windows, UNIX, Solaris y DOS.
  12. Todas las funciones de Linux, como la implementación de la seguridad mediante SELinux, una amplia gama de soporte de hardware y controladores de dispositivos compatibles, se heredan de las máquinas virtuales basadas en kernel.
  13. Gestión remota segura mediante la API proporcionada por los módulos de virtualización.
  14. La escalabilidad mejorada como flujo principal del kernel de Linux se puede ampliar agregando módulos para aprovechar más funciones.

Linux
  1. ¿Qué es el Kernel de Linux? ¿Debería actualizar a la última versión del Kernel?

  2. Linux:¿configurar, compilar e instalar un kernel de Linux personalizado?

  3. ¿Cómo hibernar un proceso en Linux almacenando su memoria en el disco y restaurándolo más tarde?

  4. Límite de línea de shebang en bash y kernel de linux

  5. ¿Qué son la memoria alta y la memoria baja en Linux?

Kernel de Linux y sus funciones

Administre y monitoree los módulos del kernel de Linux con Kmon

Cómo habilitar la virtualización anidada en KVM en Linux

Instale Linux Kernel 4.14 LTS en sistemas basados ​​en RPM y DEB

Instale Linux Kernel 4.15 en sistemas basados ​​en RPM y DEB

Cómo instalar y configurar KVM en Ubuntu Linux