Serie RHCSA: Aspectos esenciales de la virtualización y la administración de invitados con KVM – Parte 15

Si buscas la palabra virtualizar en un diccionario, encontrarás que significa “crear una versión virtual (en lugar de real) de algo“. En informática, el término virtualización se refiere a la posibilidad de ejecutar múltiples sistemas operativos simultáneamente y aislarlos entre sí, sobre el mismo sistema físico (hardware), conocido en el esquema de virtualización como anfitrión.

RHCSA Series: Essentials of Virtualization and Guest Administration with KVM – Part 15

A través del uso del monitor de máquina virtual (también conocido como hipervisor), las máquinas virtuales (llamadas huéspedes) reciben recursos virtuales (como CPU, RAM, almacenamiento, interfaces de red, entre otros) del hardware subyacente.

Con eso en mente, es fácil ver que una de las principales ventajas de la virtualización es el ahorro de costos (en equipos e infraestructura de red y en términos de esfuerzo de mantenimiento) y una reducción sustancial en el espacio físico requerido para acomodar todo el hardware necesario.

Dado que esta breve guía no puede cubrir todos los métodos de virtualización, te animo a consultar la documentación mencionada en el resumen para obtener más detalles sobre el tema.

Ten en cuenta que este artículo está destinado a ser un punto de partida para aprender los conceptos básicos de la virtualización en RHEL 7 utilizando KVM (Kernel-based Virtual Machine) con utilidades de línea de comandos, y no una discusión detallada del tema.

Verificación de Requisitos de Hardware e Instalación de Paquetes

Para configurar la virtualización, su CPU debe admitirla. Puede verificar si su sistema cumple con los requisitos con el siguiente comando:

# grep -E 'svm|vmx' /proc/cpuinfo

En la siguiente captura de pantalla podemos ver que el sistema actual (con un procesador AMD) admite la virtualización, como se indica por svm. Si tuviéramos un procesador de Intel, veríamos vmx en lugar de los resultados del comando anterior.

Check KVM Support

Además, necesitará tener habilitadas las capacidades de virtualización en el firmware de su host (BIOS o UEFI).

Ahora instale los paquetes necesarios:

  1. qemu-kvm es un virtualizador de código abierto que proporciona emulación de hardware para el hipervisor KVM, mientras que qemu-img proporciona una herramienta de línea de comandos para manipular imágenes de disco.
  2. libvirt incluye las herramientas para interactuar con las capacidades de virtualización del sistema operativo.
  3. libvirt-python contiene un módulo que permite a las aplicaciones escritas en Python utilizar la interfaz suministrada por libvirt.
  4. libguestfs-tools: herramientas de línea de comandos para administradores de sistemas para máquinas virtuales.
  5. virt-install: otras utilidades de línea de comandos para la administración de máquinas virtuales.
# yum update && yum install qemu-kvm qemu-img libvirt libvirt-python libguestfs-tools virt-install

Una vez que se complete la instalación, asegúrese de iniciar y habilitar el servicio libvirtd:

# systemctl start libvirtd.service
# systemctl enable libvirtd.service

Por defecto, cada máquina virtual solo podrá comunicarse con el resto en el mismo servidor físico y con el propio host. Para permitir que los invitados alcancen a otras máquinas dentro de nuestra LAN y también a Internet, necesitamos configurar una interfaz de puente en nuestro host (digamos br0, por ejemplo) mediante,

1. añadiendo la siguiente línea a nuestra configuración principal de NIC (probablemente /etc/sysconfig/network-scripts/ifcfg-enp0s3):

BRIDGE=br0

2. creando el archivo de configuración para br0 (/etc/sysconfig/network-scripts/ifcfg-br0) con estos contenidos (ten en cuenta que es posible que debas cambiar la dirección IP, la dirección de la puerta de enlace y la información de DNS):

DEVICE=br0
TYPE=Bridge
BOOTPROTO=static
IPADDR=192.168.0.18
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
NM_CONTROLLED=no
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=br0
ONBOOT=yes
DNS1=8.8.8.8
DNS2=8.8.4.4

3. finalmente, habilitando el reenvío de paquetes haciendo, en /etc/sysctl.conf,

net.ipv4.ip_forward = 1

y cargando los cambios en la configuración actual del kernel:

# sysctl -p

Ten en cuenta que también es posible que necesites indicarle a firewalld que este tipo de tráfico debe ser permitido. Recuerda que puedes consultar el artículo sobre ese tema en esta misma serie (Parte 11: Control de Tráfico de Red Utilizando FirewallD e Iptables) si necesitas ayuda para hacerlo.

Source:
https://www.tecmint.com/kvm-virtualization-basics-and-guest-administration/