Migración de máquinas virtuales de « VMware » con varios discos a « IBM Cloud » mediante copia directa de volúmenes

Migrar máquinas virtuales (VM) de « VMware » con varios discos a servidores virtuales « IBM Cloud VPC » utilizando la copia directa de volúmenes con «qemu-img» o « virt-v2v » para obtener un control total a nivel de disco.

Componentes de la arquitectura

La siguiente tabla enumera los componentes de la arquitectura de una migración de copia directa de volumen.

Componentes de la arquitectura del método de migración de copia directa de volumen
Componentes de la arquitectura Descripción
Instancia de servidor virtual del trabajador

Una instancia de servidor virtual temporal que sirve como espacio de trabajo de migración. Esta instancia de servidor virtual requiere los siguientes requisitos previos:

  • Unidad central de procesamiento (CPU) y memoria adecuadas para ejecutar las herramientas de conversión

  • Espacio de almacenamiento suficiente para albergar los archivos de disco de máquina virtual (VMDK) exportados (o un disco efímero de gran tamaño)

  • Conectividad de red con tu entorno de VMware (si utiliza la transferencia en directo)

  • La herramienta qemu-img y, opcionalmente, libguestfs ( virt-v2v ) para las transformaciones

Instancia efímera de servidor virtual Una instancia de servidor virtual de corta duración creada únicamente para generar volúmenes de arranque y datos con la configuración correcta. Esta instancia de servidor virtual se elimina inmediatamente, pero se conservan sus volúmenes.
Volúmenes de destino Los volúmenes reales que se convertirán en los discos migrados de VM.

Descripción general del proceso de migración directa de volúmenes de copia

Los siguientes pasos describen el proceso de migración mediante copia directa de volumen.

  1. Aprovisionar una instancia de servidor virtual para trabajadores

    1. Ubuntu o RHEL con un espacio de trabajo adecuado
    2. Adjunte un volumen secundario grande si necesita espacio de trabajo para VMDKs
    3. Instale las herramientas necesarias
      • qemu-img
      • libguestfs-tools (para virt-v2v )
  2. Crear una instancia de servidor virtual efímera

    1. Configúrelo para que coincida con su objetivo VM (sistema operativo, tamaño del disco de arranque, recuento/tamaño de los discos secundarios)
    2. Crítico: Desactivar la eliminación automática en todos los volúmenes
    3. Crítico: Utilizar el perfil de almacenamiento general-purpose para el volumen de arranque
    4. La configuración de la red puede ser desechable
    5. Tenga en cuenta los tamaños de los volúmenes y el orden
  3. Borrar instancia de servidor virtual efímera, Conservar volúmenes

    1. Eliminar la instancia de servidor virtual a través de la interfaz de usuario o CLI
    2. Confirme que los volúmenes siguen existiendo y están disponibles para ser adjuntados
  4. Adjuntar volúmenes a la instancia de servidor virtual del trabajador

    1. Adjúntalos en el mismo orden en que fueron creados
    2. Anote los nombres de los dispositivos (por ejemplo, /dev/vdb, /dev/vdc,, etc.)
    3. Verifique los tamaños: blockdev --getsize64 /dev/vdb
  5. Transferencia y conversión de discos VM

    1. Si se exporta: Copiar VMDK a instancia de servidor virtual de trabajador
    2. Convierte y escribe en un solo paso:
    qemu-img convert -f vmdk -O raw source-vm-boot.vmdk /dev/vdb
    qemu-img convert -f vmdk -O raw source-vm-data.vmdk /dev/vdc
    
    1. Opcionalmente, utilice virt-v2v para la inyección de controladores de Windows (consulte la siguiente sección sobre Windows)
  6. Verificar y purgar

    1. Comprobación puntual de las tablas de partición: fdisk -l /dev/vdb
    2. Descarga los búferes: blockdev --flushbufs /dev/vdb
  7. Separar volúmenes del trabajador

    1. Separar todos los volúmenes de destino
    2. Ahora están listos para ser adjuntados a la instancia final del servidor virtual
  8. Crear una instancia de servidor virtual final a partir de un volumen de arranque existente

    1. En lugar de seleccionar una imagen, selecciona "volumen de arranque existente"
    2. Elija el volumen de arranque que ha rellenado
    3. Configurar red, grupos de seguridad, clave SSH (necesaria aunque no se utilice si se trata de un VM existente )
    4. Para volúmenes secundarios: Utilizar CLI/API o adjuntar después de crear y reiniciar
  9. Configuración posterior a la migración

    1. Arrancar la instancia del servidor virtual, acceder a través de la consola VNC si es necesario ajustar la configuración de red
    2. Compruebe que todos los discos están presentes y montados
    3. Expanda la partición del volumen de arranque si la redimensionó hacia arriba

Ventajas del diseño de la copia directa en volumen

La siguiente tabla enumera las ventajas de diseño de la migración directa de copia de volumen.

Ventajas de diseño para el método de migración de copia directa de volumen
Ventaja de diseño Descripción
Compatibilidad con varios discos El soporte multidisco gestiona máquinas virtuales con cualquier número de discos, hasta el límite de 12 discos de VPC.
Sin proliferación de imágenes No estás creando una imagen personalizada para cada máquina virtual. Tu lista de imágenes personalizadas se mantiene limpia.
Transformación flexible Permite una fácil integración con virt-v2v para la inyección de controladores, ajustes del sistema operativo, etc.
Opción de eficiencia de almacenamiento Si importa una plantilla base como una imagen personalizada y la utiliza como fuente de volumen de arranque para su instancia de servidor virtual efímera (paso 2), el volumen de arranque final hereda la eficiencia del espacio clonado vinculado.

Restricciones y limitaciones del diseño de la copia directa por volumen

La siguiente tabla enumera las restricciones y limitaciones de una migración directa de copia de volumen.

Limitaciones y restricciones del método de migración de copia directa de volumen
Limitación o restricción Descripción
Complejidad de la orquestación Hay más pasos y piezas móviles. Necesitas runbooks sólidos y preferiblemente automatización (Terraform, Ansible, scripts).
Limitaciones en la conexión de volúmenes

La interfaz de usuario (UI) de « IBM Cloud » no permite conectar volúmenes secundarios durante la creación de instancias de servidores virtuales. Debes realizar una de las siguientes acciones:

  • Utilizar la interfaz comando (CLI): ibmcloud is instance-create ... --volume-attach ...

  • Utilizar la API o Terraform para una automatización completa:

  • Crear la instancia del servidor virtual, detenerla, asociarle volúmenes y, a continuación, iniciarla

Gastos generales de exportación Si está exportando VMDKs desde VMware, todavía incurre en esa sobrecarga (aunque menos que la exportación de OVA).

Omitir la exportación mediante transferencia por red

Puede combinar el método 2 con técnicas de transferencia de red (detalladas en el método 3) para evitar por completo la exportación de VMDK. Arranque su fuente VM desde una ISO, establezca conectividad de red con su instancia de servidor virtual de trabajador y transmita el contenido del disco directamente:

  1. En la instancia del servidor virtual trabajador (destino), ejecute el siguiente comando :

    nc -l 192.168.100.5 8080 | gunzip | dd of=/dev/vdb bs=16M status=progress
    
  2. En la máquina virtual de origen (arrancada desde ISO), ejecute el siguiente comando :

    dd if=/dev/sda bs=16M | gzip | nc -N -v 192.168.100.5 8080
    

Este proceso elimina el tiempo de exportación y los requisitos de almacenamiento de las exportaciones.

Utilice este proceso para máquinas virtuales multidisco, para escenarios en los que desee un control preciso o en los que sea importante evitar la proliferación de imágenes personalizadas. También puedes mejorar la eficiencia con la transferencia en red.