1.3. Componentes de la máquina virtual y su interacción
La virtualización en RHEL 8 consta de los siguientes componentes principales de software:
Hipervisor
La base de la creación de máquinas virtuales (VMs) en RHEL 8 es el hypervisor, una capa de software que controla el hardware y permite la ejecución de múltiples sistemas operativos en una máquina anfitriona.
El hipervisor incluye el módulo Kernel-based Virtual Machine (KVM) y los controladores del kernel de virtualización, como virtio
y vfio
. Estos componentes garantizan que el kernel Linux de la máquina anfitriona proporcione recursos para la virtualización al software del espacio de usuario.
A nivel de espacio de usuario, el emulador QEMU simula una plataforma de hardware virtualizada completa en la que puede ejecutarse el sistema operativo invitado, y gestiona cómo se asignan los recursos en el host y se presentan al invitado.
Además, el paquete de software libvirt
sirve como capa de gestión y comunicación, facilitando la interacción con QEMU, aplicando reglas de seguridad y proporcionando una serie de herramientas adicionales para configurar y ejecutar las máquinas virtuales.
Configuración XML
Un archivo de configuración XML basado en el host (también conocido como archivo domain XML ) determina todos los ajustes y dispositivos de una VM específica. La configuración incluye:
- Metadatos como el nombre de la VM, la zona horaria y otra información sobre la VM.
- Una descripción de los dispositivos en la VM, incluyendo CPUs virtuales (vCPUS), dispositivos de almacenamiento, dispositivos de entrada/salida, tarjetas de interfaz de red y otro hardware, real y virtual.
- Ajustes de la VM como la cantidad máxima de memoria que puede utilizar, ajustes de reinicio y otros ajustes sobre el comportamiento de la VM.
Para más información sobre el contenido de una configuración XML, consulte el ejemplo de configuración XML de VM.
Interacción de los componentes
Cuando se inicia una VM, el hipervisor utiliza la configuración XML para crear una instancia de la VM como un proceso de espacio de usuario en el host. El hipervisor también hace que el proceso de la VM sea accesible a las interfaces basadas en el host, como las utilidades virsh
, virt-install
, y guestfish
, o la GUI de la consola web.
Cuando se utilizan estas herramientas de virtualización, libvirt traduce su entrada en instrucciones para QEMU. QEMU comunica las instrucciones a KVM, que se asegura de que el kernel asigne adecuadamente los recursos necesarios para llevar a cabo las instrucciones. Como resultado, QEMU puede ejecutar los cambios correspondientes en el espacio de usuario, como crear o modificar una VM, o realizar una acción en el sistema operativo invitado de la VM.
Aunque QEMU es un componente esencial de la arquitectura, no está pensado para ser utilizado directamente en los sistemas RHEL 8, debido a cuestiones de seguridad. Por lo tanto, el uso de los comandos de qemu-*
no está soportado por Red Hat, y se recomienda encarecidamente interactuar con QEMU utilizando libvirt.
Para más información sobre las interfaces basadas en el host, consulte Sección 1.4, “Herramientas e interfaces para la gestión de la virtualización”.
Figura 1.1. Arquitectura de virtualización de RHEL 8