Métodos de replicación incremental para migrar VMs

Respuesta corta: hay tres mecanismos. CBT (Change Block Tracking) es el nativo de VMware y el más eficiente: te dice exactamente qué bloques cambiaron. Snapshots sirven cuando CBT no está disponible. Sincronización por bloques con rsync o NBD funciona sobre discos ya convertidos. En la práctica se combinan: CBT para la replicación y sincronización por bloques para el delta final.

CBT — Change Block Tracking

VMware lleva un registro de qué bloques del disco cambiaron desde un punto determinado. En vez de comparar el disco entero, preguntás "¿qué cambió desde ayer?" y te responde con la lista exacta.

Ventajas: es el más eficiente por lejos. El tiempo de cada sincronización depende de lo que cambió, no del tamaño del disco.

Requisitos: hay que habilitarlo por VM (ctkEnabled = true), y para que tome efecto la VM necesita un ciclo de apagado o una operación de snapshot.

Cuidado conocido: CBT ha tenido bugs históricos en algunas versiones de ESXi que devuelven información incompleta. Es la razón por la que las herramientas serias validan con un checksum al final. Si venís de una versión vieja de ESXi, verificá que CBT esté sano antes de confiar en él.

Replicación por snapshots

Se toma un snapshot, se copia el estado congelado mientras la VM sigue escribiendo en el delta, y después se sincronizan los cambios.

Ventajas: funciona sin CBT y es fácil de entender.

Desventajas: los snapshots largos degradan el rendimiento de la VM y crecen. Un snapshot de días sobre una VM activa es un problema en sí mismo.

Regla: el snapshot vive lo mínimo indispensable. Si tu replicación tarda tres días, este no es el método.

Sincronización por bloques: rsync, NBD, libvirt

Sobre discos ya convertidos a RAW o QCOW2, se sincroniza a nivel bloque.

`bash

rsync -av –inplace –no-whole-file –progress \

disco.raw destino:/var/lib/libvirt/images/

qemu-nbd –persistent –shared=4 -f qcow2 disco.qcow2

virsh blockcopy dominio vda /destino/disco.qcow2 –wait –verbose

`

--inplace y --no-whole-file son importantes: sin ellos, rsync reescribe el archivo entero y perdés todo el beneficio.

Ventajas: herramientas estándar, sin licencias, funciona con cualquier destino.

Desventajas: más manual y más lento que CBT en discos grandes.

Cuál usar

CBTSnapshotsBloques (rsync/NBD)
EficienciaAltaMediaMedia
ComplejidadMediaBajaMedia
Requiere VMwareNo
Impacto en la VMMínimoMedio si dura muchoMínimo
Discos grandesIdealRegularAceptable
CostoIncluidoIncluidoIncluido

En la práctica se combinan: CBT para la replicación inicial y las sincronizaciones intermedias, y una verificación por checksum antes del corte final.

El proceso completo

  1. Habilitar CBT en la VM
  2. Exportación inicial del VMDK y conversión a QCOW2 o RAW
  3. Replicación continua de los bloques modificados, con la VM en producción
  4. Importación parcial en destino y validación en un entorno aislado
  5. Corte: apagar la VM en VMware, replicar el último delta, arrancar en destino
  6. Pruebas post-corte: servicios, integraciones, rendimiento
  7. Desmantelamiento del origen recién cuando el destino esté estable

Los pasos 1 a 4 no tienen impacto en el servicio. El único con downtime es el 5.

Herramientas

  • virt-v2v — la herramienta de Red Hat para convertir VMs de VMware a KVM. Hace mucho del trabajo sucio, incluida la instalación de drivers virtio. Es el punto de partida obligado.
  • CloudEndure, Veeam, Zerto y similares — comerciales, agregan orquestación, tableros y soporte. A escala se justifican.
  • Scripts propios sobre CBT + rsync — viable y muy usado. Requiere trabajo de ingeniería propio.

Para menos de 30 VMs, virt-v2v más un procedimiento ordenado suele alcanzar. Arriba de 100, la orquestación deja de ser opcional.

Preguntas frecuentes

¿Cuántas sincronizaciones conviene hacer?

Las necesarias para que el delta final sea chico. Un patrón razonable: inicial, una diaria durante la semana previa, y una última lo más cerca posible del corte.

¿Cómo sé que la copia es correcta?

Con checksum antes del corte. No confíes solo en el "completado con éxito" de la herramienta, sobre todo con CBT.

¿Puedo replicar varias VMs en paralelo?

Sí, y a escala es necesario. El límite es el ancho de banda y la carga sobre el almacenamiento origen.

¿Y si el delta crece más rápido de lo que sincronizo?

No converge nunca. Se resuelve con más ancho de banda, sincronizando en horarios de baja actividad, o —para bases de datos— usando la replicación nativa del motor en lugar de replicar el disco.

En resumen

Tres mecanismos, y en la práctica una combinación: CBT para saber qué cambió, sincronización por bloques para el delta final, y checksum para confiar. Con eso, la ventana de corte deja de depender del tamaño del disco.

Cómo se ejecuta ese corte y cómo se vuelve atrás está en la ventana de corte.

Descarga gratuitaReplicación incremental con herramientas abiertas: procedimiento completo

3 páginas · el procedimiento paso a paso, en PDF. Gratis, por dejar tu email.

Descargar gratis