# rm-rf.es | Administración de sistemas

Bitácora personal de un SysAdmin Gnu/Linux, Windows, BSD...

Clonar una máquina virtual KVM con virt-clone


Clonar una máquina virtual es realmente sencillo. En el caso de KVM es tan simple como apagar la máquina virtual para tener consistencia de datos y utilizar el comando virt-clone.

Podemos hacerlo de dos formas, siguiendo un asistente ejecutando virt-clone con el parámetro –prompt o pasar a mano todos los parámetros necesarios.

En el primer caso simplemente respondemos las preguntas que van saliendo, que básicamente son:

  1. Nombre de la máquina virtual a clonar
  2. Nombre para la máquina virtual resultante
  3. Ruta al disco o discos clonados (discos destino).
# virt-clone --prompt
What is the name of the original virtual machine?
virtual01
What is the name for the cloned virtual machine?
clon_virtual01
What would you like to use as the cloned disk (file path) for '/var/lib/libvirt/images/virtual01.img'?
/var/lib/libvirt/images/clon_virtual01.img
Allocating 'clon_virtual01.img'      5% [=-             ]  29 MB/s | 437 MB     04:25
...
...
Clone clon_virtual01 created successfully

Este mismo ejemplo podríamos ejecutarlo directamente de esta forma (si ejecutáis un –help veréis todos los paramétros:

# virt-clone -o virtual01 -n clon_virtual01 -f /var/lib/libvirt/images/clon_virtual01.img
Cloning virtual01.img 4% [==- ] 134 MB/s | 390 MB 00:58 ETA

Otra opción que hace aún más sencillo el trabajo es dejar al propio sistema que elija automáticamente el nombre de la máquina virtual destino y las rutas a los nuevos discos. Para ello usamos el parámetro auto-clone:

# virt-clone -o virtual01 --auto-clone

Un consejo: la primera vez que arranquéis un clon, hacedlo en single-user, runlevel 1 o cualquiera que os permita modificar la configuración de red para evitar conflictos, MAC e IPs duplicadas, etc.

Xen: Clonar una máquina virtual con virt-clone


En el sistema de virtualización Xen, y gracias a la utilidad virt-clone tenemos la posibilidad de duplicar una máquina virtual con un solo comando y de forma extremadamente sencilla.

Podemos hacerlo de dos formas, la primera utilizando el asistente y sin pasar ningún parámetro al comando, simplemente ejecutamos virt-clone –prompt y seguimos los pasos siguientes.

NOTA: La máquina virtual a clonar debe estar parada, sino recibiremos el error:

ERROR Domain with devices to clone must be paused or shutoff.

# virt-clone  --prompt
What is the name of the original virtual machine? mimaquinavirtual
 What is the name for the cloned virtual machine? clonmaquinavirtual
 What would you like to use as the cloned disk (file path) for '/home/mimaquinavirtual.img'? /home/clonmimaquinavirtual.img
Cloning /home/mimaquinavirtual.img           4% [===                                 ]  20 MB/s | 128 MB     07:59 ETA

Como podéis observar no tiene ningún misterio. Primero especificamos la máquina virtual a clonar, después el nombre de la que será el clon y la ruta al disco a utilizar para la imagen clonada.

También se puede especificar todo por línea de comandos, ejemplo:

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