virshle permitirá editar, exportar e importar la definición XML para sus servidores. Lo usaría virt-clonepara generar un archivo de imagen clonado y exportar el XML. Para estar seguro, eliminaría la configuración de clonación del servidor original.
Lo que hará una copia this-vm, nombrada that-vmy se encargará de duplicar los dispositivos de almacenamiento. Nada nuevo aquí, excepto los detalles.
Más concretamente, lo que dice la pregunta frecuente es que las descripciones de dominio XML no son directamente editables, debe pasar por libvirt. Para completar los pasos tomados por el virt-clonecomando, puede:
source_vm=vm_name
new_vm=new_vm_name
# You cannot "clone" a running vm, stop it. suspend and destroy
# are also valid options for less graceful cloning
virsh shutdown "$source_vm"
# copy the storage.
cp /var/lib/libvirt/images/{"$source_vm","$new_vm"}.img
# dump the xml for the original
virsh dumpxml "$source_vm" > "/tmp/$new_vm.xml"
# hardware addresses need to be removed, libvirt will assign
# new addresses automatically
sed -i /uuid/d "/tmp/$new_vm.xml"
sed -i '/mac address/d' "/tmp/$new_vm.xml"
# and actually rename the vm: (this also updates the storage path)
sed -i "s/$source_vm/$new_vm" "/tmp/$new_vm.xml"
# finally, create the new vm
virsh define "/tmp/$new_vm.xml"
virsh start "$source_vm"
virsh start "$new_vm"
Esto también funciona para copiar una máquina virtual a otro host: use sftp en lugar de cp, (posible) cambie la ruta de la imagen antes de 'definir' el nuevo vm y sftp también that-vm.xml al otro host.
Andreas Florath
Gracias por esto, me ahorró un montón de tiempo. El problema que tuve fue la clonación frente a la creación de nuevos, ya que si creo un nuevo nodo, las versiones del paquete no estarían sincronizadas con los otros nodos que usaban un espejo local.
Mike Purcell
¿ virt-cloneManeja el cifrado de disco completo correctamente? Es decir, ¿me pedirá mi descifrado pw antes de hacer lo suyo?
un codificador
Creo que sed -i "s/$source_vm/$new_vm" "/tmp/$new_vm.xml"debería leer sed -i "s/$source_vm/$new_vm/" "/tmp/$new_vm.xml"o al menos en mi derivado de Debian sed se queja de una falta de seguimiento /. Gracias por la información también, mi virsh-clone simplemente no estaba funcionando en absoluto.
número9
3
Aparte de "virt-clone", puede duplicar la VM de esta manera:
Asegúrese de que la VM existente (para duplicar) esté apagada.
haga un "sudo virsh dumpxml <domid>" de la máquina virtual existente y guarde el archivo xml de salida.
Modifique la etiqueta <nombre> debajo de la etiqueta <dominio>.
Use "uuidgen" para generar una nueva ID única, y úsela para modificar la etiqueta <uuid> existente.
Haga una copia de las imágenes virtuales qcow existentes que utiliza la máquina virtual (generalmente almacenadas en / var / lib / libvirt / images, pero para asegurarse de leer su archivo XML para conocer la ubicación exacta). El comando es "sudo cp /var/lib/libvirt/images/xxx.qcow2 yyyy.qcow2", y complete el nuevo archivo yyyy.qcow2 en el archivo XML.
Inicie el nuevo vm: sudo virsh define new.xml
Inicie el nuevo domid: sudo virsh start <new_domid>
Aparte de los nombres de pseudo VM, esto es idéntico al comando de la respuesta de tres años, pero carece de la información complementaria de esa respuesta.
G-Man dice 'Restablecer a Mónica' el
0
virt-clone --auto-clone no parece jugar bien con LVM. Esperaba que creara una instantánea y la usara, pero en cambio copia todos los datos.
Es mejor hacer la ruta dumpxml / define; y recuerde montar el sistema de archivos raíz del clon y cambiar las direcciones IP y el nombre de host de manera apropiada antes de iniciar el original y el clon.
virt-clone
Maneja el cifrado de disco completo correctamente? Es decir, ¿me pedirá mi descifrado pw antes de hacer lo suyo?sed -i "s/$source_vm/$new_vm" "/tmp/$new_vm.xml"
debería leersed -i "s/$source_vm/$new_vm/" "/tmp/$new_vm.xml"
o al menos en mi derivado de Debian sed se queja de una falta de seguimiento /. Gracias por la información también, mi virsh-clone simplemente no estaba funcionando en absoluto.Aparte de "virt-clone", puede duplicar la VM de esta manera:
fuente
Al parecer, virt-clone es el camino a seguir.
Intenté duplicar el XML pero no aparecería en virt-manager.
Todavía me pregunto cómo puedo transferir un archivo XML + .img a un nuevo sistema que dice ...
fuente
El siguiente comando funcionó para mí (tengo que apagar VSA / Vm antes de ejecutar el comando)
fuente
virt-clone --auto-clone no parece jugar bien con LVM. Esperaba que creara una instantánea y la usara, pero en cambio copia todos los datos.
Es mejor hacer la ruta dumpxml / define; y recuerde montar el sistema de archivos raíz del clon y cambiar las direcciones IP y el nombre de host de manera apropiada antes de iniciar el original y el clon.
fuente