Objetivo
La siguiente instrucción explicará cómo clonar máquinas virtuales basadas en KVM en Redhat Linux desde la línea de comandos usando virt-clone
dominio.
Sistema operativo y versiones de software
- Sistema operativo: – Redhat 7.3
- Software: – libvirtd (libvirt) 2.0.0
Requisitos
Se requerirá acceso privilegiado a su instalación de Redhat Linux.
Dificultad
FÁCIL
Convenios
- # – requiere que los comandos de Linux dados se ejecuten con privilegios de root, ya sea directamente como usuario root o mediante el uso de
sudo
comando - $ – requiere que los comandos de Linux dados se ejecuten como un usuario normal sin privilegios
Instrucciones
Obtener información de la máquina virtual de origen
Antes de comenzar a clonar cualquier máquina virtual, primero debemos obtener información básica sobre ella. La información mínima absoluta requerida sobre la máquina virtual de origen que estamos a punto de clonar sería su nombre y número de disco en uso. Para obtener el nombre de las máquinas virtuales, ejecute:
# virsh list Id Name State ---------------------------------------------------- 1 server1.linuxconfig.org running
A continuación, es posible que nos gustaría saber la cantidad de disco que utilizan nuestras máquinas virtuales de origen, así como su ubicación. La información sobre la ubicación de los discos es opcional, ya que solo nos brinda una pista sobre dónde almacenar nuevos archivos de disco clonados por motivos de coherencia:
# virsh dumpxml server1.linuxconfig.org | grep "source file" <source file='/var/lib/libvirt/images/server1.linuxconfig.org.qcow2'/> <source file='/var/lib/libvirt/images/server1.linuxconfig.org-1.qcow2'/> <source file='/var/lib/libvirt/images/server1.linuxconfig.org-2.qcow2'/>
Del resultado anterior podemos ver que nuestra máquina virtual original tiene tres discos almacenados en la ubicación /var/lib/libvirt/images/
.
Suspender máquina virtual de origen
Antes de que pueda llevarse a cabo la clonación, nuestra máquina virtual de origen debe pausarse o suspenderse:
# virsh suspend server1.linuxconfig.org Domain server1.linuxconfig.org suspended
Clonación automática de máquina virtual
Una forma de clonar máquinas virtuales basadas en KVM en Redhat Linux es usar --auto-clone
cambiar. La principal ventaja de --auto-clone
switch es que clona automáticamente cualquier número de discos de origen, por lo que el usuario no necesita saber la ubicación y el número del disco conectado a la máquina virtual original.
La desventaja es que el usuario no puede especificar los nombres de los discos y se enorgullece de una ubicación alternativa a los nuevos discos virtuales clonados. El siguiente comando de Linux clonará la máquina virtual original server1.linuxconfig.org
a la nueva máquina virtual clonada server2.linuxconfig.org
automáticamente usando --auto-clone
cambiar.
# virt-clone --original=server1.linuxconfig.org --name=server2.linuxconfig.org --auto-clone WARNING Setting the graphics device port to autoport, in order to avoid conflicting. Allocating 'server2.linuxconfig.org.qcow2' | 10 GB 00:00:00 Allocating 'server1.linuxconfig.org-1-clone.qcow2' | 5.0 GB 00:00:07 Allocating 'server1.linuxconfig.org-2-clone.qcow2' | 5.0 GB 00:00:00 Clone 'server2.linuxconfig.org' created successfully.
Como podemos ver en la salida anterior, --auto-clone
clonó automáticamente todos los discos virtuales conectados a la máquina virtual original y agregó clone
palabra clave a cualquier disco adicional. La nueva máquina virtual clonada debería estar esperando ahora en shut off
Estado a iniciar:
# virsh list --all Id Name State ---------------------------------------------------- 1 server1.linuxconfig.org paused - server2.linuxconfig.org shut off
Clonar manualmente varios discos
Para obtener más control sobre la nueva ubicación y el nombre del disco clonado, podemos omitir --auto-clone
cambie y suministre todos los nuevos nombres de disco clonados y la ruta de destino usando --file
cambiar. Tenga en cuenta el número de --file
Los argumentos proporcionados deben ser iguales a la cantidad de discos conectados a la máquina virtual original. Ejemplo:
# virt-clone --original=server1.linuxconfig.org --name=server2.linuxconfig.org --file /var/lib/libvirt/images/server2.linuxconfig.org.img --file /var/lib/libvirt/images/server2.linuxconfig.org-1.img --file /var/lib/libvirt/images/server2.linuxconfig.org-2.img WARNING Setting the graphics device port to autoport, in order to avoid conflicting. Allocating 'server2.linuxconfig.org.img' | 10 GB 00:00:00 Allocating 'server2.linuxconfig.org-1.img' | 5.0 GB 00:00:07 Allocating 'server2.linuxconfig.org-2.img' | 5.0 GB 00:00:00 Clone 'server2.linuxconfig.org' created successfully.
Reanudar/Iniciar
En esta etapa estamos listos para reanudar nuestra máquina virtual original server1.linuxconfig.org
:
# virsh resume server1.linuxconfig.org Domain server1.linuxconfig.org resumed
y también inicie la máquina virtual recién clonada server2.linuxconfig.org
:
# virsh start server2.linuxconfig.org Domain server2.linuxconfig.org started
Verifique el estado de todas las máquinas virtuales:
# virsh list --all Id Name State ---------------------------------------------------- 1 server1.linuxconfig.org running 3 server2.linuxconfig.org running