El sistema debe tener instalado y configurado todo lo necesario, instalar KVM.
# Listar máquinas virtuales
virsh list
virsh list --all
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
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
# 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
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
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