Gestión de máquinas virtuales

En los ejemplos se toma id = 1. El id lo da la lista.

Listar máquinas actuales

sudo virsh -c qemu:///system list

Arrancar máquina

sudo virsh start lucidVirtual

Apagar máquina

Para apagar una máquina virtual de forma ordenada:

sudo virsh -c qemu:///system shutdown 1
El dominio 2 está siendo apagado

Inicio automático

sudo virsh -c qemu:///system autostart 1

Y para desactivar inicio automático:

sudo virsh -c qemu:///system autostart --disable domain-id

Apagado abrupto (desconectar el cable eléctrico)

sudo virsh -c qemu:///system destroy PruebaVM

Reiniciar una máquina virtual

sudo virsh -c qemu:///system reboot PruebaVM

Guardar el estado actual de una máquina virtual

sudo virsh -c qemu:///system save PruebaVM PruebaVM-20100102_1830.state

Restaurar una máquina virtual desde un estado previo

sudo virsh -c qemu:///system restore PruebaVM-20100102_1830.state

Suspender una máquina virtual

sudo virsh -c qemu:///system suspend PruebaVM

Despertar una máquina virtual suspendida

sudo virsh -c qemu:///system resume PruebaVM

Montar un dispositivo real en la máquina virtual

sudo virsh -c qemu:///system attach-disk PruebaVM /u/isos/CentOS-5.4-i386-LiveCD.iso /media/cdrom

Desmontar real un dispositivo de la máquina virtual

sudo virsh -c qemu:///system detach-disk PruebaVM hdc

Conectarse a una máquina virtual en ejecución

De manera local

sudo virt-viewer -c qemu:///system PruebaVM

De manera remota

sudo virt-viewer -c qemu+ssh://direccion_ip_servidor/system PruebaVM

Remover una máquina virtual.

sudo virsh -c qemu:///system undefine PruebaVM

Este procedimiento remueve a la máquina virtual (PruebaVM en este caso) del Hypervisor, lo cual significa que físicamente se remueven del servidor el archivo XML con la especificación de la máquina virtual (ubicada por defecto en /etc/libvirt/qemu/) y los archivos IMG con los medios de las máquinas virtuales (ubicados para estos artículos bajo /u/vms/).

Para hacer esto en Hypervisor, se requiere que se cuente con el archivo XML que contiene la especificación de la máquina virtual ubicado en /etc/libvirt/qemu/ y con los correspondientes archivos o particiones asociados como discos.

Este comando también es muy útil para indicarle al Hypervisor que se han realizado cambios en el archivo XML de especificación de una máquina virtual para que él lo lea nuevamente y los tenga en cuenta.

Obtener la especificación actual de una máquina virtual activa

virsh -c qemu:///system dumpxml PruebaVM > /tmp/PruebaVM.xml

Clonado de máquinas virtuales

Clonado gráfico

Desde otro ubuntu y utilizando el "Gestor de máquinas virtuales" no logramos hacerlo.

Clonado respondiendo preguntas

  1. Crear una carpeta donde colocar los nuevos archivos:
    sudo mkdir /home/virtualservers/nueva
    
  2. Cambiar los permisos
    sudo chown root:libvirtd /home/virtualservers/nueva
    
  3. Pausar la máquina virtual original
  4. Ejecutar el siguiente comando y responder las preguntas
    # virt-clone  --prompt
    What is the name of the original virtual machine? mimaquinavirtual
    What is the name for the cloned virtual machine? nueva
    What would you like to use as the cloned disk (file path) for '/home/mimaquinavirtual.img'? /home/virtualservers/nueva/nueva.img
    Cloning /home/mimaquinavirtual.img           4% [===                                 ]  20 MB/s | 128 MB     07:59 ETA
    

Por un solo comando:

# virt-clone \
     --original mimaquinavirtual \
     --name clonmimaquinavirtual \
     --file /home/clonmimaquinavirtual.img

Instalar una máquina a partir de su especificación.

sudo virsh -c qemu:///system define /etc/libvirt/qemu/PruebaVM.xml

Aumentar la RAM de una máquina

  1. Apagar la máquina
  2. Cambiar la especificación, por ejemplo en: /etc/libvirt/qemu/PruebaVM.xml
  3. Re declarar la máquina:
    sudo virsh -c qemu:///system define /etc/libvirt/qemu/PruebaVM.xml
    
  4. Iniciar nuevamente la máquina