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 -yqemu-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 libvirtdAsegúrese de que se hayan cargado los módulos kvm_intel y kvm kernel:
# lsmod | grep kvmkvm_intel 188688 0
kvm 636931 1 kvm_intel
irqbypass 13503 1 kvmSi 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-utilsInstálelo si es necesario:
# yum install bridge-utils -yDespués de instalar el paquete, la interfaz de red virbr0 apareció en el sistema operativo:
# ip aPara 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=br0En 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-br0que 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 restartSi 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 showbridge name bridge id STP enabled interfaces
br0 8000.ac1f6b654321 no enp1s0f0
virbr0 8000.525400abcdef1 yes virbr0-nicEn el último paso, configure el reenvío de tráfico de red:
# echo -e "net.ipv4.ip_forward=1" >> /etc/sysctl.conf && sysctl -pLuego reinicie libvirtd:
# service libvirtd restartLa 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.isoPara 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=ontest-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-centovmsIP:00 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-centosvmPara mostrar una lista de todas las máquinas virtuales KVM registradas:
# virsh list --allObtenga 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.





