Saltar a contenido

Básicos

Mi primera máquina virtual

PASOS A SEGUIR

  1. Descargar la ISO de Debian 11 Netinst
  2. Crear una imágen de disco qcow2
  3. 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

  1. Parar la máquina
    virsh stop Debian11
    
  2. Pasarle el undefine
    virsh undefine Debian11
    
  3. Eliminar el disco virtual asociado
    virsh vol-delete /var/lib/libvirt/images/debian11.qcow2 --pool default
    
  4. 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