Básicos¶
Mi primera máquina virtual¶
PASOS A SEGUIR
- Descargar la ISO de Debian 11 Netinst
- Crear una imágen de disco qcow2
- Declarar la nueva red br0 con el archivo XML
Para crear nuestra primera máquina virtual, copiamos el siguiente comando en la terminal
virt-install --name Debian11 --vcpus=1 --ram=1024 --os-type=linux \
--os-variant=debian --hvm --network network=br0 --vnc --keymap=es \
--cdrom=/home/srv/debian.iso \
--disk path=/var/lib/libvirt/images/debian.qcow2,size=15
ETIQUETAS virt-install
- name: Nombre de la máquina virtual.
- vcpu: Total de CPU virtuales asignadas a nuestra máquina virtual.
- ram: Total de memoria RAM asignada a la máquina virtual.
- os-type / --os-variant: Distro y versión.
- hvm (Hosted Virtual Machine): Full virtualization.
- network: Nombre de la red virtual.
- vnc: Exportaremos la consola VNC.
- keymap: El idioma del teclado.
- cdrom: Ruta donde tenemos la imágen ISO de instalación.
- disk: Ruta donde se encuentra nuestra imágen de disco qcow2.
KVM guarda la configuración de cada máquina virtual en un archivo XML ubicado en la carpeta /etc/libvirt/qemu/
CUIDADO
Todo lo que modifiquemos en el archivo XML, será persistente la próxima vez que reiniciemos la máquina virtual.
Operaciones desde la consola¶
# Lista las máquinas activas
virsh list
# Listar todas las máquinas activas o no
virsh list --all
ESTADO DE UNA MAQUINA VIRTUAL
- Running: Activa.
- Blocked: Bloqueada.
- Paused: Pausada mediante el comando virsh suspend.
- Shutdown: En proceso de apagado.
# Si quisieramos abrir el modo gráfico de nuestra máquina
virt-viewer Debian11
# Si queremos abrir una consola (Para salir de la consola CRTL + F5)
virsh console Debian11
# Para encender, reiniciar o apagar una máquina
virsh start | reboot | shutdown Debian11
# Para suspender una máquina
virsh suspend Debian11
# Para reanudar una máquina previamente suspendida
virsh resume Debian11
Para eliminar una máquina virtual correctamente
- Parar la máquina
virsh stop Debian11
- Pasarle el undefine
virsh undefine Debian11
- Eliminar el disco virtual asociado
virsh vol-delete /var/lib/libvirt/images/debian11.qcow2 --pool default
- Destruimos la máquina
virsh destroy Debian11
Si quisiéramos eliminar la máquina de forma brusca, debemos tener en cuenta que existe una gran posibilidad de que algún archivo quede corrupto.
# Eliminar bruscamente una máquina
virsh destroy Debian11
Autoarranque de una máquina
Es posible configurar para que una máquina virtual se inicie cuando arranque el anfitrión.
# Para habilitarlo
virsh autostart <nombre_maquina>
# Para deshabilitarlo
virsh autostart --disable <nombre_maquina>
Almacenamiento¶
Pool¶
¿Qué es?
Es una ubicación de almacenamiento para los volúmenes, por defecto está asociado al directorio /var/lib/libvirt/images
# Lista todo los pool de nuestra máquina
virsh pool-list
# Refresca el contenido del pool
virsh pool-refresh <nombre_pool>
# Borra un disco del pool
virsh vol-delete --pool images <nombre_imagen.qcow2>
Volumenes¶
# Vamos a listar los volúmenes/discos disponibles en el pool default
virsh vol-list --details default
# Información de un volumen/disco concreto
virsh vol-info /var/lib/libvirt/images/<nombre_volumen.qcow2>
# Create volumen/disco adicional
virsh vol-create-as images <nombre_imagen.qcow2> 2G
# Vincular un volumen/disco a una máquina virtual
virsh attach-disk --domain <nombre_maquina> --source /var/lib/libvirt/images/<nombre_imagen.qcow2> --persistent --target vdb
# Desvincular un volumen/disco de una máquina virtual
virsh detach-disk --domain vm <nombre_maquina> --persistent --live --target vdb
# Borrar un volumen/disco
virsh vol-delete <nombre_imagen.qcow2> --pool images
# Redimensionar un volumen/disco
qemu-img resize /var/lib/libvirt/images/<nombre_imagen.qcow2> +1G
Copias de seguridad y respaldos¶
Snapshot¶
¿Qué?
Son instantáneas que permiten almacenar el estado de una máquina virtual en un momento concreto. De este modo es posible restaurar la máquina a un estado concreto del snapshot.
# Paramos la máquina
virsh shutdowm <nombre_maquina>
# Crear un snapshot
virsh snapshot-create-as <nombre_maquina> --name misnapshot --description "Copia de seguridad semanal"
# Listar todos los snapshots que tiene una máquina virtual
virsh snapshot-list <nombre_maquina>
# Restaurar un snapshot
virsh snapshot-revert <nombre_maquina> --snapshotname misnapshot --running
# Borrar un snapshots
virsh snapshot-delete <nombre_maquina> --snapshotname misnapshot
Clonación¶
¿Qué es?
Podemos clonar una máquina virtual existente, de modo que obtengamos otra máquina virtual igual a la original.
# Apagamos la máquina virtual
virsh shutdown <nombre_maquina>
# Realizamos la clonación
virt-clone --original=<nombre_maquina> --name=<nombre_nueva_maquina> --preserve-data --file=/var/lib/libvirt/images/<nombre_imagen_nueva_maquina.qcow2>
Respaldo del XML¶
¿Qué es?
Este archivo contiene todas las configuraciones de nuestra máquina virtual.
# Apagamos la máquina virtual
virsh shutdown <nombre_maquina>
# Realizamos una copia del archivo de configuración XML de la máquina
virsh dumpxml <nombre_maquina> > /opt/kvm_backup/<nombre_backup.xml> (configuration)
virsh domblklist vm_name
cp /var/lib/libvirt/images/vm_name.qcow2 /opt/kvm_backup/ (data)
# Restaurar la copia de seguridad
cp /opt/kvm_backup/vm_name.qcow2 /var/lib/libvirt/images/
virsh define --file /opt/kvm_backup/vm_name.xml