KVM - Crear máquina virtual (VM)

Introducción

El sistema debe tener instalado y configurado todo lo necesario, instalar KVM.

# Listar máquinas virtuales
virsh list
virsh list --all

Herramientas para las imágenes de discos

Para crear discos elegiremos el formato que queremos que tenga con la opción -f, la ubicación de la imagen y el tamaño. Una vez creado el disco existen otras opciones para consultar o modificar el disco.

# Crear disco en formato qcow2
qemu-img create -f qcow2 /var/lib/libvirt/images/disk-vm-0.qcow2 20G

# Crear disco en formato raw
qemu-img create -f raw /var/lib/libvirt/images/disk-vm-0.img 10G

# Consultar información de un disco existente
qemu-img info /var/lib/libvirt/images/disk-vm-0.qcow2

# Modificar tamaño del disco
qemu-img resize /var/lib/libvirt/images/disk-vm-0.qcow2 30G
qemu-img resize /var/lib/libvirt/images/disk-vm-0.qcow2 +10G

# Recuperar espacio vacío copiando a otro fichero
virt-sparsify /var/lib/libvirt/images/disk-vm-0.qcow2 /var/lib/libvirt/images/disk-vm-0-sparse.qcow2

# Recuperar espacio vacío sin copiar a otro fichero
virt-sparsify --in-place /var/lib/libvirt/images/disk-vm-0.qcow2

# Convertir un disco a otro formato
qemu-img convert -f raw -O qcow2 /var/lib/libvirt/images/disk-vm-0.img /var/lib/libvirt/images/disk-vm-0.qcow2

Crear máquina virtual

Es posible crear máquinas virtuales mediante lína de comandos con el comando virt-install Para conectar la máquina a la red tendremos que conocer la configuración de red virtual. Necesitaremos tener la imagen ISO del sistema operativo que queremos instalar.

virt-install --name NOMBRE_MV --virt-type kvm --vcpus N_CPUS --ram RAM --network CONFIGURACION_RED --boot hd,menu=on --disk path=PATH_DISCO,device=disk --cdrom=ISO_SO --graphics spice --os-type=SO_INFO --os-variant=SO_INFO --noautoconsole

virt-install --name vm_0 --virt-type kvm --vcpus 2 --ram 2048 --network bridge=virbr0,model=virtio --boot hd,menu=on --disk path=/var/lib/libvirt/images/disk-vm-0.qcow2,device=disk --cdrom=/var/lib/libvirt/images/ubuntu-22.04.4-live-server-amd64.iso --graphics spice --os-type=Linux --os-variant=ubuntu22.04 --noautoconsole

Comandos para el control de las máquinas virtuales

# Hacer que la máquina virtual arranque automáticamente al iniciar el host
virsh autostart NOMBRE_MV
virsh autostart vm_0

# Conectar con la máquina virtual
virsh console NOMBRE_MV --safe        #
virsh console NOMBRE_MV --force       # Si hay una sesión iniciada previmanete la cierra
virsh console vm_0 --safe

# Reiniciar una máquina virtual
virsh reboot NOMBRE_MV
virsh reboot vm_0

# Apagar una máquina virtual
virsh shutdown NOMBRE_MV
virsh shutdown vm_0

# Forzar apagado una máquina virtual
virsh destroy NOMBRE_MV
virsh destroy vm_0

Eliminar una máquina virtual

El comando elimina la configuración de la máquina virtual. Para eliminar los discos debe añadirse la opción --remove-all-storage o eliminar el/los discos relacionados manualmente.

virsh undefine NOMBRE_MV
virsh undefine vm_0

Otras herramientas

Para facilitar la gestión y configuración de las máquinas virtuales podemos usar el gestor con interfaz gráfica virt-manager. Si nos conectamos a la máquina KVM por SSH con la opción -X podemos usaremos el comando virt-manager para abrir la aplicacción en un entorno gráfico.

# Instalar virt-manager
apt install virt-manager

# Iniciar interfaz gráfica
virt-manager

Es posible utilizar plataformas como Cockpit para la gestión de las máquinas virtuales a través de una interfaz web.

# Instalar Cockpit
apt install cockpit cockpit-machines
virt-manager