KVM representa Máquina virtual basada en kernel, KVM es un código libre y abierto hipervisor tipo 2 que se instala sobre Linux como distribuciones. Una vez que el KVM está instalado en su sistema, se convierte en el servidor de virtualización que nos permite ejecutar varias máquinas virtuales al mismo tiempo. KVM requiere un procesador Intel con VT-x (extensión de tecnología de virtualización) o procesador AMD con AMD-V (extensión de virtualización AMD64).
En este artículo, aprenderemos cómo instalar y configurar KVM en el sistema Debian 10. Asumo que Debian 10 ya está instalado en el sistema/servidor. Pasemos a los pasos de instalación.
Paso: 1) Comprobar si la extensión de virtualización está habilitada o no
Inicie sesión en su sistema Debian 10, abra la terminal y ejecute el siguiente comando,
[email protected]:~$ egrep -c '(vmx|svm)' /proc/cpuinfo 2 [email protected]:~$
Si la salida del comando anterior es mayor que cero, entonces podemos decir que la tecnología de virtualización está habilitada en su sistema. Si la salida es cero, debemos reiniciar el sistema, ir a la configuración de BIOS y luego habilitar VT-x (extensión de tecnología de virtualización) para el procesador Intel y AMD-V para el procesador AMD.
Ejecute el siguiente comando para verificar si su procesador es Intel/AMD y admite la virtualización de hardware,
[email protected]:~$ grep -E --color '(vmx|svm)' /proc/cpuinfo
si la salida contiene vmx, entonces tiene un procesador basado en Intel y svm confirma que es un procesador AMD.
Paso: 2) Instale los paquetes QEMU-KVM y Libvirt junto con virt-manager
Los paquetes kvm, qemu, libvirt y virt-manager están disponibles en los repositorios predeterminados de Debian 10, ejecute el siguiente comando apt para instalar estos paquetes,
[email protected]:~$ sudo apt install qemu-kvm libvirt-clients libvirt-daemon-system bridge-utils virtinst libvirt-daemon virt-manager -y
Una vez que los paquetes anteriores se hayan instalado correctamente, el servicio libvirtd se iniciará automáticamente, ejecute el siguiente comando systemctl para verificar el estado
[email protected]:~$ sudo systemctl status libvirtd.service
Paso: 3) Inicie la red predeterminada y agregue el módulo vhost_net
Ejecute el siguiente comando virsh para enumerar las redes disponibles para máquinas virtuales kvm
[email protected]:~$ sudo virsh net-list --all Name State Autostart Persistent ---------------------------------------------- default inactive no yes [email protected]:~$
Como podemos ver en la salida anterior, la red predeterminada está inactiva, por lo que para activarla y reiniciarla automáticamente durante el reinicio ejecute los siguientes comandos:
[email protected]:~$ sudo virsh net-start default Network default started [email protected]:~$ sudo virsh net-autostart default Network default marked as autostarted [email protected]:~$
Si desea descargar el mecanismo de “virtio-net” y desea mejorar el rendimiento de las máquinas virtuales KVM, luego agregue “vhost_net” módulo kernel en su sistema usando el siguiente comando,
[email protected]:~$ sudo modprobe vhost_net [email protected]:~$ echo "vhost_net" | sudo tee -a /etc/modules vhost_net [email protected]:~$ [email protected]:~$ lsmod | grep vhost vhost_net 24576 0 vhost 49152 1 vhost_net tap 28672 1 vhost_net tun 49152 2 vhost_net [email protected]:~$
Nota: Si desea que un usuario normal use comandos virsh, agregue ese usuario a biblioteca y libvirt-qemu grupo usando los siguientes comandos
[email protected]:~$ sudo adduser pkumar libvirt [email protected]:~$ sudo adduser pkumar libvirt-qemu
Para actualizar o recargar la membresía del grupo, ejecute lo siguiente,
[email protected]:~$ newgrp libvirt [email protected]:~$ newgrp libvirt-qemu
Paso: 4) Crear Linux Bridge (br0) para máquinas virtuales KVM
Cuando instalamos KVM, automáticamente crea un puente con el nombre «virbr0“, esto generalmente se usa para todos los entornos de prueba, pero si desea acceder a sus máquinas virtuales KVM a través de la red, cree un puente Linux que se conectará a la NIC física (o tarjeta LAN) de su sistema.
Para crear un puente en Debian 10, edite el archivo de configuración de red “/etc/network/interfaces” y agregue los siguientes contenidos,
En mi caso ens33 es el NIC físico y br0 es el puente de Linux y han asignado la misma dirección IP de ens33 al puente br0. (También asegúrese de eliminar la dirección IP de ens33). Reemplace el nombre de la interfaz, el nombre del puente y los detalles de IP según su configuración.
[email protected]:~$ sudo vi /etc/network/interfaces .............. #Primary network interface(ens33) auto ens33 iface ens33 inet manual #Configure bridge and give it a static ip auto br0 iface br0 inet static address 192.168.29.150 netmask 255.255.255.0 network 192.168.29.1 broadcast 192.168.29.255 gateway 192.168.29.1 bridge_ports ens33 bridge_stp off bridge_fd 0 bridge_maxwait 0 dns-nameservers 8.8.8.8 ...............
Guardar y salir del archivo
Para hacer que los cambios de red anteriores surtan efecto, tenemos que reiniciar el sistema, así que ejecute el siguiente comando de reinicio,
[email protected]:~$ sudo reboot
Una vez que el sistema vuelva a estar en línea después de reiniciar, veremos que aparecerá el puente br0, ejecute el siguiente comando para confirmar,
[email protected]:~$ ip a s br0
Paso: 5) Cree máquinas virtuales a través de Virt-Manager (GUI) o virt-install (línea de comando)
Hay dos formas de crear máquinas virtuales en KVM, la primera es a través de la herramienta GUI virt-manager y la segunda es a través de la línea de comandos usando la utilidad virt-install.
Creación de máquinas virtuales usando Virt-Manager (GUI)
Acceda a la herramienta GUI de virt-manager desde el entorno de escritorio
Haga clic en el icono del Administrador de máquinas virtuales
Haga clic en el icono del monitor para crear una nueva VM
Busque y elija el archivo ISO y luego haga clic en Adelante, en mi caso ya cargué RHEL 8 iso en el sistema Debian 10, por lo que usaré el mismo iso para instalar el sistema operativo.
En la siguiente ventana, especifique la RAM y la CPU para la VM
haga clic en Adelante para continuar,
Haga clic en Reenviar y en la siguiente pantalla especifique el nombre de la VM y su red
Haga clic en Finalizar para continuar con la instalación del sistema operativo,
Siga las instrucciones de la pantalla y complete la instalación.
Creación de VM a través de la línea de comandos usando virt-install
También podemos crear vms desde la línea de comandos usando la utilidad virt-install. El ejemplo se muestra a continuación,
[email protected]:~$ sudo virt-install --name ubuntu-vm --os-type linux --os-variant ubuntu18.04 --ram 1024 --vcpu 1 --disk path=/var/lib/libvirt/images/ubuntu-vm.qcow2,size=10 --graphics vnc,listen=0.0.0.0 --noautoconsole --hvm --cdrom /home/pkumar/ubuntu-18.04-live-server-amd64.iso --boot cdrom,hd Starting install... Domain installation still in progress. You can reconnect to the console to complete the installation process. [email protected]:~$
Como podemos ver en el resultado anterior, podemos conectarnos a la consola de ubuntu vm a través de la consola VNC o virt-manager para finalizar la instalación del sistema operativo.
Ejecute los siguientes comandos para encontrar el puerto de visualización VNC para ubuntu-vm,
[email protected]:~$ sudo virsh list --all Id Name State --------------------------- 3 ubuntu-vm running 4 rhel8-vm running [email protected]:~$ [email protected]:~$ sudo virsh vncdisplay ubuntu-vm :0 [email protected]:~$
Ahora acceda al visor de escritorio remoto en su sistema Debian 10 y conéctese a la consola VM usando la dirección IP de su sistema y el puerto vnc como «0», el ejemplo se muestra a continuación,
Haga clic en Conectar,
Siga las instrucciones de la pantalla y complete las instalaciones del servidor Ubuntu 18.04. Eso es todo de este artículo, comparta sus comentarios y sugerencias en caso de que estos pasos lo ayuden a configurar KVM en su sistema Debian 10.