KVM es una tecnología de virtualización de código abierto que convierte su máquina Linux en un hipervisor completo de tipo 1 que le permite ejecutar varias máquinas virtuales (VM) o VM invitadas
KVM significa Máquina virtual basada en kernel, como sugiere el nombre, KVM es un módulo del kernel, una vez que se carga en el kernel, su máquina Linux comenzará a funcionar como un hipervisor KVM. En este artículo, demostraremos cómo instalar KVM en el sistema RHEL 8 o CentOS 8, pero antes de comenzar a instalar KVM en su sistema, primero debemos asegurarnos de que el procesador de su sistema admita extensiones de virtualización de hardware como Intel VT o AMD-V y lo habilitó desde BIOS.
Detalles del laboratorio KVM de RHEL 8/CentOS 8:
- SO = RHEL 8 / CentOS 8
- Nombre de host = rhel8-kvm
- Tarjetas Ethernet = ens32 – 192.168.1.4 y ens36 – 192.168..1.12
- RAM = 4GB
- CPU = 2
- Disco = 40 GB de espacio libre (/var/libvirtd)
Pasemos a los pasos de instalación de KVM
Paso: 1) Verifique que la virtualización de hardware esté habilitada o no
Abra la terminal y ejecute el siguiente comando egrep
[[email protected] ~]# egrep -c '(vmx|svm)' /proc/cpuinfo 2 [[email protected] ~]#
Si la salida del comando egrep anterior es igual a 1 o más de 1, esto confirma que la virtualización de hardware está habilitada y es compatible.
Una forma alternativa de verificar si la virtualización de hardware está habilitada o no, ejecute el siguiente comando,
[[email protected] ~]# lscpu | grep Virtualization: Virtualization: VT-x [[email protected] opt]#
Si no hay salida en el comando anterior, entonces confirma que la virtualización no está habilitada desde el BIOS.
Nota: Para habilitar la virtualización de hardware, reinicie su sistema, vaya a la configuración de BIOS y luego busque la opción de virtualización Intel VT o AMD y habilite una de estas opciones que se adapte a la arquitectura de su sistema.
Paso: 2) Instale KVM y sus paquetes dependientes usando dnf
Ejecute el siguiente comando dnf para instalar KVM y sus paquetes dependientes,
[[email protected] ~]# dnf install qemu-kvm qemu-img libvirt virt-install libvirt-client virt-manager -y
Una vez que los paquetes anteriores se hayan instalado correctamente, ejecute el siguiente comando para confirmar si el módulo KVM se ha cargado en el kernel o no.
[email protected] ~]# lsmod | grep -i kvm kvm_intel 245760 0 kvm 745472 1 kvm_intel irqbypass 16384 1 kvm [[email protected] ~]#
Paso: 3) Habilitar e iniciar el servicio libvirtd
Ejecute el siguiente comando systemctl para habilitar e iniciar el servicio libvirtd,
[[email protected] ~]# systemctl enable libvirtd [[email protected] ~]# systemctl start libvirtd
Paso: 4) Crear un puente de red y adjuntarle una interfaz
En RHEL 8 y CentOS 8, los scripts de red están en desuso. Tenemos que usar Network Manager (nmcli / nmtui) para configurar la red y los puentes de red.
Tengo dos tarjetas Ethernet en mi servidor, ens36 se conectará al puente br0 y ens32 se usará para la administración.
[[email protected] ~]# nmcli connection show NAME UUID TYPE DEVICE ens32 1d21959d-e2ea-4129-bb89-163486c8d7bc ethernet ens32 ens36 1af408b6-c98e-47ce-bca7-5141b721f8d4 ethernet ens36 virbr0 d0f05de4-4b3b-4710-b904-2524b5ad11bf bridge virbr0 [[email protected] ~]#
Eliminar la conexión existente de la interfaz «ens36»
[[email protected] ~]# nmcli connection delete ens36 Connection 'ens36' (1af408b6-c98e-47ce-bca7-5141b721f8d4) successfully deleted. [[email protected] ~]#
Cree un puente de red con el nombre «br0” usando el comando mcli,
[[email protected] ~]# nmcli connection add type bridge autoconnect yes con-name br0 ifname br0 Connection 'br0' (62c14e9d-3e72-41c2-8ecf-d17978ad02da) successfully added. [[email protected] ~]#
Asigne la misma IP de ens36 a la interfaz del puente usando los siguientes comandos nmcli,
[[email protected] ~]# nmcli connection modify br0 ipv4.addresses 192.168.1.12/24 ipv4.method manual [[email protected] ~]# nmcli connection modify br0 ipv4.gateway 192.168.1.1 [[email protected] ~]# nmcli connection modify br0 ipv4.dns 192.168.1.1
Agregue la interfaz ens36 como solución de puente al puente de red br0,
[[email protected] ~]# nmcli connection add type bridge-slave autoconnect yes con-name ens36 ifname ens36 master br0 Connection 'ens36' (0c2065bc-ad39-47a7-9a3e-85c80cd73c94) successfully added. [[email protected] ~]#
Ahora abre el puente de red usando debajo del comando nmcli,
[[email protected] ~]# nmcli connection up br0 Connection successfully activated (master waiting for slaves) (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/9) [[email protected] ~]#
Verifique las conexiones usando el siguiente comando,
[[email protected] ~]# nmcli connection show NAME UUID TYPE DEVICE br0 00bcff8f-af85-49ad-9196-974de2d9d9d1 bridge br0 ens32 1d21959d-e2ea-4129-bb89-163486c8d7bc ethernet ens32 ens36 eaef13c9-c24e-4a3f-ae85-21bf0610471e ethernet ens36 virbr0 d0f05de4-4b3b-4710-b904-2524b5ad11bf bridge virbr0 [[email protected] ~]#
Ver los detalles y el estado del puente (br0) usando el comando ip,
Nota: Si desea utilizar scripts de red en el sistema RHEL 8, instale paquetes de scripts de red,
~ ]# dnf install network-scripts -y
Paso: 5) Crear y administrar máquinas virtuales KVM
En RHEL 8/CentOS 8, existen diferentes formas de crear y administrar máquinas virtuales KVM,
- virt-manager (GUI)
- Herramientas de línea de comandos (virt-instalar & virsh)
Durante la instalación de KVM, ya hemos instalado los paquetes virt-manager y virt-install.
Creación de máquinas virtuales utilizando la herramienta GUI virt-manager:
Ejecute el comando virt-manager desde la línea de comandos o acceda a virt-manager desde RHEL 8/CentOS 8 Desktop
Haga clic en el ícono Monitor para crear una nueva VM invitada (máquina virtual),
Elija medios de instalación local como ISO,
Haga clic en adelante,
En la siguiente pantalla, busque el archivo ISO de instalación del sistema operativo, en mi caso he colocado el archivo ISO del servidor Ubuntu 18.04 LTS en la carpeta /opt,
haga clic en Reenviar para continuar,
En la siguiente ventana, se le pedirá que especifique RAM y vCPU para su máquina virtual, así que especifique los valores que se adapten a su instalación y luego haga clic en Adelante,
En la siguiente ventana, especifique el tamaño del disco para su máquina virtual y haga clic en Adelante, en mi caso, doy espacio en disco para mi VM como 20 GB,
En la siguiente ventana, especifique el nombre de la VM y elija la red que desea conectar a la tarjeta Ethernet de la VM, ya que habíamos creado el puente de red «br0» para la red de vms, así que elija el puente «br0».
Haga clic en Finalizar para continuar con la creación de la VM y la instalación de su sistema operativo.
Siga las instrucciones de la pantalla y complete la instalación.
Creación de una máquina virtual KVM desde la línea de comandos
Si eres fanático de la línea de comandos, entonces hay una herramienta de línea de comandos para ti llamada “virt-instalar” para crear máquinas virtuales. Una vez que se aprovisionan las máquinas virtuales, las vms se pueden administrar a través de la herramienta de línea de comandos «virsh».
Supongamos que queremos crear CentOS 7 VM usando virt-install, ya he colocado el archivo ISO de CentOS 7 en la carpeta /opt,
Ejecute debajo del comando para aprovisionar una VM
[[email protected] ~]# virt-install -n CentOS7-Server --description "CentOS 7 Virtual Machine" --os-type=Linux --os-variant=rhel7 --ram=1096 --vcpus=1 --disk path=/var/lib/libvirt/images/centos7-server.img,bus=virtio,size=20 --network bridge:br0 --graphics none --location /opt/CentOS-7-x86_64-DVD-1511.iso --extra-args console=ttyS0
La salida del comando sería algo como a continuación,
Siga las instrucciones en pantalla para completar la instalación de CentOS 7. Eso es todo de este tutorial, espero que estos pasos lo hayan ayudado a configurar KVM en su sistema RHEL 8, comparta sus comentarios y opiniones.
Leer también: Cómo instalar VirtualBox 6.0 en CentOS 8 / RHEL 8