KVM virt-clone mientras la VM se está ejecutando

KVM virt-clone mientras la VM se está ejecutando

¿Es posible clonar una máquina kvm en ejecución sin herramientas como virt-clone?

Ya tienen la máquina virtual original en producción, no puedo cerrarla. Si no me importa la corrupción temporal de los datos (lo que puede solucionar un fsck inicial) en el clon, ¿puedo simplemente copiar el archivo de imagen qcow con un nuevo nombre, crear una nueva definición de máquina virtual que use ese disco e iniciar la máquina?

Respuesta1

Si no le importan los datos en la memoria, puede tomar una instantánea del dispositivo de respaldo y tomar una copia de esa instantánea.

Por supuesto, esto requiere un grupo de almacenamiento con soporte para instantáneas (principalmente LVM o ZFS, ya que BTRFS es abismalmente lento para el almacenamiento de máquinas virtuales).

Respuesta2

sospecho que essoloEs posible clonar un disco evitando el uso de virt-clone, porque (como ya se mencionó) virt-clone se negará a funcionar con una VM en ejecución. Entonces tendrías que usar algo más para hacer una copia de la imagen del disco real.

Creo que la respuesta básica es que puedes intentarlo y esperar tener suerte.

Obtener una 'instantánea' de la configuración del invitado es bastante simple ( virsh dumpxml NAMElo haré). Si tiene más de un disco (es decir, si tiene un disco del sistema operativo y n+1 discos de datos), entonces intentaría evitar clonar el disco del sistema operativo y vería si puedo usar una instalación nueva en su lugar.

Sin embargo, si haycualquierOtro método que no sea copiar imágenes de disco, probablemente lo preferiría. Si todo esto estuviera relacionado con un servidor de base de datos, por ejemplo, probablemente usaría las propias instalaciones de la base de datos para copiar los datos entre instancias de forma segura. Si estuviera tratando directamente con un sistema de archivos, entonces podría valer la pena ver si algo como DRBD podría ayudar, o si algo simple como rsync lo haría.

Básicamente, consideraría cuidadosamente lo que realmente necesita hacer y trataría de evitar perder tiempo en algo como intentar copiar una imagen de disco que está en uso (aparte de los problemas relacionados con el aspecto que podría tener la copia, me preocuparía qué efecto podría tener intentar copiar el disco en el original).

Respuesta3

Tenía una máquina virtual funcionando. Mientras estaba allí, entré por ssh a la máquina base KVM y copié su disco de respaldo y la instantánea en una unidad nvme usando cp -ar. También formateé y particioné el nvme mencionado antes de copiarlo... Luego usé

virsh edit mykvm 

cambió la identificación y las ubicaciones del disco y el nombre...

y apagué mi máquina y reinicié la nueva. Lo único que desapareció fueron las ventanas abiertas y la sesión de Chrome...

Parece estar funcionando a menos que esté escribiendo algunos archivos del sistema o de la aplicación...

No usaré esto por supuesto. Experimentaré con ello y, después de experimentar, implementaré los resultados en el archivo original.

Sin embargo, si alguna vez tuviera que usarlo como instantánea principal del sistema operativo. Simplemente haría una verificación del sistema de archivos y luego verificaría los archivos del sistema (sha1sum) o usaría cualquier comando integrado para verificar los archivos del sistema.

Respuesta4

Esto es completamente factible con el formato de imagen de disco RAW. No sé sobre qcow2...

Debian.img: sector de arranque x86; partición 1: ID=0x83, activo, inicio 32, sector de inicio 2048, 497664 sectores; partición 2: ID=0x5, inicio 59, sector de inicio 501758, 104353794 sectores, desplazamiento de código 0x63

Debian2.img: sector de arranque x86; partición 1: ID=0x83, activo, inicio 32, sector de inicio 2048, 497664 sectores; partición 2: ID=0x5, inicio 59, sector de inicio 501758, 104353794 sectores, desplazamiento de código 0x63

Para la prueba, compré un sistema Linux Mint en ejecución con todo. Luego creó una nueva máquina virtual con la nueva imagen, ni siquiera tenía inconsistencias en el sistema de archivos al arrancar. Aunque esto era sólo una pequeña máquina virtual de escritorio, lo que estaba a punto de "clonar" es un servidor LAMP en ejecución en producción con alta E/S en la base de datos.

Realmente no me importaría la inconsistencia, solo quería ahorrar algo de tiempo para restablecer el entorno LAMP. Supongo que crear una imagen base al principio o tomar una instantánea del primer servidor web hubiera sido una buena idea, pero después de que estuvo completamente configurado y Probé que era demasiado tarde, comenzaron a usarlo en producción de inmediato.

información relacionada