La virtualización es una de las ventajas más importantes que como usuarios y administradores de sistemas disponemos ya que la virtualización nos da la oportunidad de probar tanto sistemas operativos como aplicaciones de forma completa sin que sea necesario poner en riesgo el ambiente real y sin que debamos comprar hardware adicional. Hoy en día disponemos de plataformas virtuales para tal función, pero algo muy funcional (y de paso más seguro y compatible) es hacer de KVM. Si no sabes a que nos referimos te invitamos a que sigas leyendo este tutorial para que conozcas más sobre esta funcionalidad y como puede ser aplica en CentOS 8 o RHEL 8.
KVM tuvo su aparición en el año 2006 y fue integrado a la versión del kernel principal de Linux en el año 2007. El funcionamiento básico de KVM consiste en que KVM convierte nuestro CentOS 8 en un hipervisor de tipo 1, es decir sin sistema operativo. En este caso todos los hipervisores requieren de componentes escalados al nivel del sistema operativo con el fin de que las máquinas virtuales puedan ser ejecutadas a plenitud. Para ello KVM integra los componentes necesarios para esto debido a forma parte del kernel del propio sistema operativo Linux, esto nos da la oportunidad de que una máquina virtual sea implementada como un proceso de Linux y a la cual se le entregan aspectos de hardware como memoria, discos, video, tarjeta de red o CPU.
- KVM implementa una combinación de security-enhanced Linux (SELinux) y virtualización segura (sVirt) pen el ámbito de la seguridad y que además presenta un caracter de aislamiento que se ha mejorado en la virtualización de máquinas.
- KVM es 100% compatible con plataformas de hardware certificado y compatibles con todas las distribuciones de Linux.
- LVM está en la capacidad de usar todo tipo de almacenamiento compatible con Linux.
- KVM hereda las funciones de gestión de memoria del sistema las cuales integra a la máquina virtual.
- KVM hereda por defecto el rendimiento de Linux, pero no afecta el entorno real al momento de correr una o más máquinas virtuales.
- Se cuenta con una latencia más baja.
Vamos a ver como instalar KVM en CentOS 8.
1. Comprobar hardware CentOS 8 Linux
El primer paso a dar será validar que la plataforma de hardware pueda admitir la virtualización, para esto ejecutamos el siguiente comando:
grep -e 'vmx' /proc/cpuinfo (Intel) grep -e 'svm' /proc/cpuinfo (AMD)
Validamos que KVM este instalado con el siguiente comando:
lsmod | grep kvm
Podemos validar la información con el comando cat. En la sección “flags” buscaremos el término “vmx”.
cat /proc/cpuinfo
2. Configurar Cockpit Web Console CentOs 8
La consola Cockpit está integrada dentro del propio sistema operativo con el fin de realizar tareas de diversas índoles desde un navegador web, con esta consola será posible:
- Llevar a cabo tareas del sistema en general
- Configurar redes
- Crear y administrar máquinas virtuales
- Gestionar el almacenamiento
- Acceder a registros del sistema y las aplicaciones
Cockpit viene instalada y habilitada por defecto en CentOS 8 pero debemos agregar un complemento para gestionar las máquinas virtuales, este lo haremos con el siguiente comando:
dnf install cockpit cockpit-machines
Ingresamos la letra “S” para confirmar la descarga e instalación:
Luego vamos a ejecutar las siguientes líneas para iniciar, habilitar y ver el estado del servicio Cockpit:
systemctl start cockpit.socket systemctl enable cockpit.socket systemctl status cockpit.socket
Concedemos los permisos en el Firewall de CentOS 8:
firewall-cmd --add-service=cockpit --permanent firewall-cmd –reload
Accedemos a la consola de Cockpit accediendo desde un navegador con la siguiente sintaxis:
https://IP_equipo:9090
Esta advertencia se da debido a que Cockpit hace uso de certificados HTTPS, para continuar damos clic en “Configuración avanzada” y allí damos clic sobre la línea “acceder a IP”:
Con esto iremos a la consola central de Cockpit donde ingresamos los datos del usuario root de CentOS 8:
Damos clic en “Iniciar sesión” y este será el entorno de Cockpit:
3. Virtualizar KVM en CentOS 8
El siguiente paso será instalar el módulo de virtualización asó como algunos paquetes de virtualización necesarios para un óptimo funcionamiento, por ejemplo, el paquete virt-install es una herramienta para instalar máquinas virtuales directamente desde la interfaz de línea de comandos y del mismo modo integra un visualizador virtual para tener acceso a las máquinas virtuales.
Ejecutamos lo siguiente:
dnf module install virt
Ingresamos la letra “s” para aceptar la descarga e instalación de los paquetes:
Ahora ejecutamos lo siguiente. De nuevo confirmamos la descarga e instalación.
dnf install virt-install virt-viewer
Después de esto, vamos a ejecutar el siguiente comando con el fin de validar si se corre de forma correcta los controladores del hipervisor libvirt. En este caso podemos ver que la línea QEMU presenta error, más adelante veremos en que afecta y como corregirlo.
virt-host-validate
Vamos a iniciar, habilitar y ver el estado de libvirtd:
systemctl start libvirtd.service systemctl enable libvirtd.service systemctl status libvirtd.service
4. Configurar adaptador Network Bridge (adaptador virtual) en Cockpit
CentOS 8
Este paso abarca la creación del conmutador de red virtual con el cual será posible integrar máquinas virtuales en la misma red del equipo real, de formas predeterminada, cuando se inicia el demonio libvirtd, se activa la interfaz de red predeterminada virbr0 la cual hace referencia al conmutador de red virtual que actúa en modo NAT por defecto.
Para crear este conmutador vamos a la sección “Redes” y damos clic en el botón “Añadir puente”:
En la ventana desplegada ingresamos el nombre deseado y seleccionamos el nombre del adaptador de red de CentOS 8. Damos clic en “Aplicar” para guardar los cambios
veremos el nuevo adaptador puente disponible desde Redes:
5. Crear y configurar máquinas virtuales con Cockpit
Es momento de crear nuestra máquina virtual en Cockpit, para ello vamos al apartado “Máquinas virtuales” y damos clic en “Create VM”:
En la ventana emergente ingresamos lo siguiente:
- Nombre de la máquina virtual
- En el campo “” dejamos el valor por defecto
- En el campo “Installation Source Type” seleccionamos Local Install Media
- En “Installation Source” ingresamos la ruta /var/lib/libvirt/images/ seguida del nombre de la imagen ISO a usar
- En “Storage” definimos Create New Volume
- En “Size” asignamos el tamaño del disco virtual (puede ser en GB o MB)
- En “Memory” asignamos la memoria RAM (GB o MB)
Automáticamente Cockpit detectará el fabricante y versión de la ISO. Allí damos clic en “Create” para iniciar el proceso
y en vista de que QEMU no está presente se dará un error al momento de crearla:
Para activar QEMU vamos a ejecutar lo siguiente:
sudo yum groupinstall "Virtualization Host"
Una vez instalado esto validamos que QEMU haya sido instalado ejecutando lo siguiente:
virsh version
Una vez validado QEMU vamos de nuevo a Cockpit y comprobamos que la red este activa:
Con esto podremos iniciar la máquina virtual y veremos todo el proceso normal de configuración del sistema:
Al acceder al apartado de red del sistema podemos comprobar que hace uso del DHCP del equipo físico:
Luego ingresamos usuario y contraseña:
para permitir la administración remota:
Podemos instalar complementos:
Después de esto se dará paso al proceso de instalación:
Cuando esto finalice veremos lo siguiente:
Ahora debemos ir al apartado “Discos” y allí eliminar el disco con la imagen ISO usada, en este ejemplo damos clic sobre el signo – ubicado en “cdrom”
Para administrar la máquina virtual iremos a la pestaña “Consoles” donde será posible:
- Iniciar la máquina virtual con Run
- Apagarla con ShutDown (cuando la VM esta activa)
- Reiniciarla con Restart (cuando la VM esta activa)
- Pausarla con Pause (cuando la VM esta activa)
- Eliminarla con Delete
Como mencionamos, se ha habilitado OpenSSH para acceso y gestión remota, para ello podemos usar algún cliente SSH e ingresar lo siguiente. Con esto tendremos el control de la máquina virtual.
ssh usuario@192.168.0.xxxx
Con estos pasos que te ha explicado Solvetic estarás en la capacidad de crear y administrar máquinas virtuales en CentOS 8 gracias a KVM.