Búsqueda de sitios web

Instalar y configurar el hipervisor KVM en CentOS/RHEL


En este artículo, veremos cómo instalar y configurar el hipervisor KVM en un servidor que ejecuta Linux RHEL o CentOS. Mostraremos cómo crear una máquina virtual en KVM, cambiar su configuración e instalar un sistema operativo invitado. También describiremos algunos comandos típicos para administrar una VM.

KVM (máquina virtual basada en kernel) es un hipervisor de Linux que utiliza tecnologías de virtualización de hardware Intel VT o AMD SVM. Con KVM, puede crear máquinas virtuales aisladas con su propio hardware virtual: adaptadores de red, discos, tarjetas gráficas u otros dispositivos. Puede instalar cualquier sistema operativo invitado en una máquina virtual (no solo Linux).

¿Cómo instalar KVM en CentOS/RHEL?

Cuando configure KVM en su servidor, debe comenzar con una verificación de la CPU. Debe asegurarse de que la CPU instalada en su host sea compatible con la virtualización de hardware. Ejecute el siguiente comando en la consola de su servidor:

# cat /proc/cpuinfo | egrep "(vmx|svm)"

Si su procesador es compatible con VT-x, verá un resultado como este:

Si el comando no ha devuelto nada, pero sabe que su CPU admite la virtualización, asegúrese de que esta opción no esté deshabilitada en el servidor BIOS. Busque las opciones Tecnología de virtualización Intel o MODO SVM.

Mi servidor es compatible con VT-x y está habilitado, por lo que podemos instalar los paquetes necesarios en CentOS/RHEL usando yum/dnf:

# yum install libvirt libvirt-python libguestfs-tools qemu-kvm virt-install -y
  • qemu-kvm: el hipervisor KVM

  • libvirt: bibliotecas de administración de virtualización

  • virt-install: herramientas CLI para administrar máquinas virtuales KVM

Se instalarán muchos paquetes en su servidor Linux. Asegúrese de que no se produzcan errores durante la instalación.

Luego agregue el servicio libvirtd al inicio y ejecútelo:

# systemctl enable libvirtd
# systemctl start libvirtd

Asegúrese de que se hayan cargado los módulos kvm_intel y kvm kernel:

# lsmod | grep kvm
kvm_intel 188688 0
kvm 636931 1 kvm_intel
irqbypass 13503 1 kvm

Si el comando no devuelve nada, reinicie su host y verifique nuevamente.

Crear y configurar redes de puente para KVM

Luego cree directorios para almacenar discos de máquinas virtuales e imágenes ISO en:

# mkdir -p /vz/{disk,iso}

Para que sus máquinas virtuales tengan acceso a Internet, debe configurar la red mediante puente. Para hacerlo, necesitará bridge-utils. Asegúrese de que esté instalado en su host Linux usando este comando:

# rpm -qa | grep bridge-utils

Instálelo si es necesario:

# yum install bridge-utils -y

Después de instalar el paquete, la interfaz de red virbr0 apareció en el sistema operativo:

# ip a

Para crear un puente, debe configurar el archivo de configuración de la interfaz de red de su servidor:

# cp /etc/sysconfig/network-scripts/ifcfg-enp1s0f0 /etc/sysconfig/network-scripts/ifcfg-enp1s0f0_bak

- hacer una copia de seguridad del archivo

# nano /etc/sysconfig/network-scripts/ifcfg-enp1s0f0

- ábrelo para editar

Elimine el contenido del archivo y reemplácelo con lo siguiente:

DEVICE="enp1s0f0"
ONBOOT="yes"
BRIDGE=br0

En su caso, el nombre de la interfaz puede ser diferente (obténgalo usando el comando ip a).

Luego crea un archivo:

# nano /etc/sysconfig/network-scripts/ifcfg-br0

que contiene la siguiente configuración:

DEVICE="br0"
TYPE=BRIDGE
ONBOOT=yes
BOOTPROTO=static
IPADDR="IP_address_of_the_server"
NETMASK="255.255.255.0"
GATEWAY="Default_gateway"
DNS1="8.8.8.8"
DNS2="8.8.4.4"

Debe especificar la dirección IP de su servidor y la puerta de enlace predeterminada. Después de haber editado el archivo de configuración de la interfaz de red, reinicie la red:

# service network restart

Si después de reiniciar la red no puede acceder a su servidor, intente reiniciar también el host. A veces es necesario configurar el puente correctamente.

Para ver el estado del puente, use este comando:

# brctl show
bridge name bridge id STP enabled interfaces
br0 8000.ac1f6b654321 no enp1s0f0
virbr0 8000.525400abcdef1 yes virbr0-nic

En el último paso, configure el reenvío de tráfico de red:

# echo -e "net.ipv4.ip_forward=1" >> /etc/sysctl.conf && sysctl -p

Luego reinicie libvirtd:

# service libvirtd restart

La configuración básica de la red KVM ha terminado y puede crear una máquina virtual.

Creación de máquinas virtuales en KVM

Antes de crear una máquina virtual, descargué una imagen de CentOS 8 desde un espejo oficial a /vz/iso:

# cd /vz/iso && wget http://mirror.imt-systems.com/centos/8.3.2011/isos/x86_64/CentOS-8.3.2011-x86_64-dvd1.iso

Para crear una nueva máquina virtual KVM, ejecute lo siguiente:

virt-install -n test-centosvm \
--noautoconsole \
--network=bridge:br0 \
--ram 2048 --arch=x86_64 \
--vcpus=4 --cpu host --check-cpu \
--disk path=/vz/disk/test-centosvm.img,size=32 \
--cdrom /vz/iso/CentOS-8.3.2011-x86_64-dvd1.iso \
--graphics vnc,listen=IP,password=p@sswdr0w1 \
--os-type linux --os-variant=rhel7 --boot cdrom,hd,menu=on
  • test-centosvm

    — un nombre de máquina virtual

  • noautoconsole

    - después de crear una VM, no se conectará a la consola de la VM automáticamente

  • network

    - un tipo de red (puente, en mi caso);

  • ram

    — la cantidad de RAM en la VM;

  • vcpus

    - la cantidad de núcleos de CPU (configuración de vCPU para una VM)

  • disk

    - un disco virtual, ruta - una ruta al disco, tamaño - el tamaño del disco (puede ampliarlo/reducirlo más tarde)

  • cdrom

    - un CDROM virtual, se monta una imagen ISO para instalar un sistema operativo ráfaga;

  • graphics

    — parámetros para conectarse a una máquina virtual usando la consola gráfica. Usaremos VNC para conectarnos a él, así que para escuchar, especifique la dirección IP del servidor KVM, en el que ha creado la VM, y la contraseña para conectarse a la consola de la máquina virtual.

Para hacer que la máquina virtual arranque automáticamente, ejecute:

# virsh autostart test-centosvm

¿Cómo conectarse a una máquina virtual KVM usando VNC e instalar un sistema operativo?

Para conectarse a una máquina virtual KVM mediante VNC, debe averiguar el puerto en el que se está ejecutando:

# virsh vncdisplay test-centovms
IP:0

0 significa que el número de puerto para conectarse usando VNC es 5900. Si obtiene un valor diferente, simplemente agregue el número que el comando ha devuelto a 5900.

Para conectarme a servidores usando VNC, estoy usando TightVNC. Ejecútelo y especifique la dirección IP de su servidor y el puerto VNC que obtuvimos anteriormente (con dos puntos dobles como separador).

Haga clic en Conectar e ingrese la contraseña que estableció al crear su máquina virtual KVM. Si lo has hecho correctamente, aparece la consola del servidor, en la que se está ejecutando la instalación de CentOS (u otro SO invitado, cuya imagen has montado).

Si un firewall está habilitado en su servidor, abra los puertos 5900-5910 para VNC en firewalld/iptables (diez puertos serán suficientes). Después de la instalación de un sistema operativo invitado en una máquina virtual, inicie la máquina virtual desde la consola del servidor:

Para apagar una máquina virtual KVM, use este comando:

# virsh shutdown test-centosvm

Para mostrar una lista de todas las máquinas virtuales KVM registradas:

# virsh list --all

Obtenga más información sobre cómo administrar máquinas virtuales KVM desde la consola del servidor usando virsh (cómo agregar RAM, CPU, discos o interfaces de red). Si prefiere una interfaz gráfica, puede utilizar la GUI de KVM virt-manager.

La configuración básica del host KVM ha terminado y se ha creado una máquina virtual. Puede crear cualquier cantidad de máquinas virtuales en KVM, solo depende de los recursos de su servidor y sus necesidades.

Artículos relacionados