Búsqueda de sitios web

Serie RHCSA: Conceptos básicos de virtualización y administración de invitados con KVM - Parte 15


Si busca la palabra virtualizar en un diccionario, encontrará 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 aislados unos de otros, sobre un mismo sistema físico (hardware), conocido en el esquema de virtualización como host.

Mediante el uso del monitor de máquina virtual (también conocido como hipervisor), las máquinas virtuales (denominadas invitadas) reciben recursos virtuales (es decir, CPU, RAM, almacenamiento, red). interfaces, por nombrar algunas) del hardware subyacente.

Teniendo esto en cuenta, es evidente que una de las principales ventajas de la virtualización es el ahorro de costes (en equipos e infraestructura de red y en términos de esfuerzo de mantenimiento) y una reducción sustancial del espacio físico necesario para alojar todo el hardware necesario.

Dado que este breve procedimiento no puede cubrir todos los métodos de virtualización, le recomiendo que consulte la documentación incluida en el resumen para obtener más detalles sobre el tema.

Tenga en cuenta que el presente artículo pretende ser un punto de partida para aprender los conceptos básicos de la virtualización en RHEL 7 usando KVM (máquina virtual basada en kernel) con utilidades de línea de comandos, y no en -discusión profunda 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 podemos ver que el sistema actual (con un microprocesador AMD) soporta la virtualización, tal y como indica svm. Si tuviéramos un procesador basado en Intel, veríamos vmx en los resultados del comando anterior.

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 que las aplicaciones escritas en Python utilicen la interfaz proporcionada por libvirt.
  4. libguestfs-tools: herramientas diversas de línea de comandos de administrador 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 sólo podrá comunicarse con el resto en el mismo servidor físico y con el propio host. Para permitir que los invitados lleguen a otras máquinas dentro de nuestra LAN y también a Internet, necesitamos configurar una interfaz puente en nuestro host (por ejemplo, br0) mediante:

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


BRIDGE=br0

2. crear el archivo de configuración para br0 (/etc/sysconfig/network-scripts/ifcfg-br0) con estos contenidos (tenga en cuenta que Es posible que deba cambiar la dirección IP, la dirección de la puerta de enlace y la información 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, habilitar el reenvío de paquetes haciendo, en /etc/sysctl.conf,


net.ipv4.ip_forward = 1

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


sysctl -p

Tenga en cuenta que es posible que también deba indicarle a firewalld que se debe permitir este tipo de tráfico. Recuerde que puede consultar el artículo sobre ese tema en esta misma serie (Parte 11: Control del tráfico de red usando FirewallD e Iptables) si necesita ayuda para hacerlo.