Mover una carga de trabajo a una nueva instancia de proceso


En determinadas situaciones, puede que quieras mover tu carga de trabajo de una instancia de máquina virtual (VM) a otra más reciente. Estos son algunos de los motivos por los que puedes cambiar a una nueva máquina virtual:

  • Aprovecha los nuevos tipos de máquinas para disfrutar de velocidades de almacenamiento o de red más rápidas. Por ejemplo, cambiar de C2 a H3 para mejorar el ancho de banda de la red.
  • Disfruta de una mejor relación precio-rendimiento en comparación con la instancia de VM de origen. Por ejemplo, al actualizar de N1 a N4 para obtener un mayor valor en el procesador Intel Xeon de quinta generación.
  • Usar funciones que solo estén disponibles en la nueva instancia de VM. Por ejemplo, cambiar de N4 a C4 para aprovechar las opciones adicionales de rendimiento y mantenimiento.
  • Cambia una instancia de máquina virtual a una instancia de Bare Metal.
  • Añade discos SSD locales a tu instancia de VM C3 o C3D.

Al actualizar a la serie de máquinas de última generación, es posible que puedas usar el procedimiento más sencillo que se describe en Editar el tipo de máquina de una instancia de Compute si la máquina virtual actual (de origen) cumple las siguientes condiciones:

  • La versión del sistema operativo es compatible con la nueva serie de máquinas.
  • El tipo de disco del disco de arranque conectado a la VM de origen es compatible con la nueva serie de máquinas.
  • La VM no usa almacenamiento SSD local.
  • Tu VM con GPUs conectadas usa un tipo de máquina G2. Consulta los detalles en el artículo Añadir o quitar GPUs.
  • La máquina virtual solo usa funciones compatibles con la nueva serie de máquinas.
  • La VM no forma parte de un grupo de instancias gestionado (MIG).
  • La VM usa la interfaz de red gVNIC.

Antes de empezar

  • Si aún no lo has hecho, configura la autenticación. La autenticación verifica tu identidad para acceder a Google Cloud servicios y APIs. Para ejecutar código o ejemplos desde un entorno de desarrollo local, puedes autenticarte en Compute Engine seleccionando una de las siguientes opciones:

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. Instala Google Cloud CLI. Después de la instalación, inicializa la CLI de Google Cloud ejecutando el siguiente comando:

      gcloud init

      Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.

    2. Set a default region and zone.

    REST

    Para usar las muestras de la API REST de esta página en un entorno de desarrollo local, debes usar las credenciales que proporciones a la CLI de gcloud.

      Instala Google Cloud CLI. Después de la instalación, inicializa la CLI de Google Cloud ejecutando el siguiente comando:

      gcloud init

      Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.

    Para obtener más información, consulta el artículo Autenticarse para usar REST de la documentación sobre autenticación de Google Cloud .

Roles obligatorios

Para obtener los permisos que necesitas para editar o cambiar una VM, pide a tu administrador que te conceda los siguientes roles de gestión de identidades y accesos en el proyecto:

Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.

Estos roles predefinidos contienen los permisos necesarios para editar o cambiar una VM. Para ver los permisos exactos que se necesitan, despliega la sección Permisos necesarios:

Permisos obligatorios

Para editar o cambiar una VM, se necesitan los siguientes permisos:

  • Para cambiar el tipo de máquina, sigue estos pasos:
    • compute.instances.stop en el proyecto
    • compute.instances.create en el proyecto
    • compute.instances.start en el proyecto
    • compute.instances.setMachineType en la instancia
  • Para crear una instantánea del disco, sigue estos pasos:
    • compute.snapshots.create en el proyecto
    • compute.disks.createSnapshot en el disco
  • Para crear un disco, sigue estos pasos:
    • compute.disks.list en el proyecto
    • compute.disks.create en el proyecto
    • compute.disks.update en el proyecto
  • Para adjuntar un disco a una VM, sigue estos pasos:
    • compute.instances.attachDisk en la instancia
    • compute.disks.use en el disco
  • Para eliminar un disco: compute.disks.delete en el proyecto
  • Para cambiar el tipo de red, sigue estos pasos:
    • compute.networks.list en el proyecto
    • compute.networks.update en el proyecto

También puedes obtener estos permisos con roles personalizados u otros roles predefinidos.

Evaluar las opciones de migración de máquinas virtuales

La migración de un tipo de máquina a otro depende de varios factores, como la disponibilidad regional del nuevo tipo de máquina y la compatibilidad de las opciones de almacenamiento y las interfaces de red con respecto al sistema operativo invitado de la serie de máquinas de origen y de la nueva serie de máquinas.

Requisitos de computación

Revise los siguientes requisitos de su instancia actual y del nuevo tipo de máquina:

  • Consulta la documentación sobre el recurso de familia de máquinas para identificar los tipos de máquinas adecuados para tu carga de trabajo. Ten en cuenta si tu aplicación requiere hardware específico (GPUs), un rendimiento alto o costes más bajos.
  • Consulta las características de los tipos de disco compatibles con el nuevo tipo de máquina. Hyperdisk admite la mayoría de las funciones de Persistent Disk, pero no todas. Sin embargo, Hyperdisk ofrece funciones adicionales que no están disponibles en Persistent Disk.
  • Consulta las funciones de la serie de máquinas que te interese. Es posible que la nueva serie de máquinas no admita las mismas funciones que usas con tu serie de máquinas actual, como los tipos de máquinas personalizadas, los SSD locales o las máquinas virtuales protegidas.
  • Consulta las regiones y zonas para asegurarte de que la nueva serie de máquinas esté disponible en todas las regiones de tu VM actual. Es posible que tengas que ajustar tus planes de implementación, alta disponibilidad y recuperación tras desastres.
  • Revisa tu plan de migración del SO:
    • Si la nueva máquina virtual requiere una versión más reciente del SO, comprueba que tus aplicaciones sean compatibles con la versión más reciente del SO.
    • Si vas a cambiar a Arm y no hay disponible una imagen de Arm para tu versión actual del SO, elige un nuevo SO o una versión del SO para ejecutar tus aplicaciones y comprueba que sean compatibles con el nuevo SO.
  • Es posible migrar de una instancia de VM C3 a una instancia de C3 sin sistema operativo, siempre que la instancia de VM C3 de origen utilice un sistema operativo y un controlador de red compatibles.
  • Si vas a pasar de una serie de máquinas que no sea C3 a una instancia de Bare Metal, debes crear una instancia nueva. Es posible que tengas que ejecutar tu propio hipervisor, pero también puedes ejecutar cualquier sistema operativo compatible con C3 metal siempre que el controlador IDPF esté habilitado. Las instancias de hardware desnudo usan la interfaz de red IDPF, que se presenta solo como una función física, no como una función virtual.

Requisitos de almacenamiento

Revisa los siguientes requisitos de almacenamiento de tu instancia actual y del nuevo tipo de instancia:

  • Consulta los tipos de almacenamiento y las interfaces de almacenamiento admitidos para la nueva serie de máquinas.
    • De forma predeterminada, las series de máquinas de primera y segunda generación solo usan el tipo de almacenamiento de disco persistente y las interfaces VirtIO-SCSI.
    • Las series de máquinas de tercera generación y posteriores (como M3, C3 y N4) solo admiten la interfaz NVMe, y algunas solo admiten los tipos de almacenamiento Hyperdisk y SSD local.
    • Las instancias Bare Metal solo admiten Hyperdisk.
  • Compatibilidad con discos:
    • Si el disco de arranque usa un tipo de disco que no es compatible con la nueva serie de máquinas, por ejemplo, pd-standard, debes crear un nuevo disco de arranque para la nueva VM.
    • Si vas a actualizar el SO a una versión nueva y el sistema operativo no admite actualizaciones in situ, debes crear un nuevo disco de arranque. Se perderán todos los datos del disco de arranque de origen, a menos que los copie en un disco temporal que no sea de arranque. A continuación, crea un nuevo disco de arranque y copia los datos almacenados en el disco temporal que no es de arranque en el nuevo disco de arranque.
    • Si no vas a actualizar la versión del SO, puedes hacer una captura de tu disco de arranque actual y restaurarla en el nuevo tipo de disco compatible. Cuando crees una VM, podrás usar este nuevo disco como disco de arranque.
    • Si un disco de arranque usa un tipo de disco que no es compatible con la nueva serie de máquinas, puedes usar una instantánea para cambiar el disco de origen a un nuevo tipo de disco, tal como se describe en Cambiar el tipo de disco.
  • Los discos SSD locales no se pueden mover a una nueva máquina virtual. Puedes adjuntar a tu VM un disco lo suficientemente grande como para almacenar todos los datos de SSD local y, a continuación, usar una instantánea para cambiar el disco de origen a un nuevo tipo de disco, tal como se describe en Cambiar el tipo de disco. Después de crear una máquina virtual con discos SSD locales conectados, puedes copiar los datos en los discos SSD locales.
  • Si tu instancia de VM actual usa discos de un grupo de almacenamiento, pero vas a migrar tu carga de trabajo a una VM de otra región, debes volver a crear los discos y el grupo de almacenamiento en la nueva región.
  • Si la nueva serie de máquinas usa una interfaz de disco diferente (por ejemplo, NVMe en lugar de SCSI), los nombres de los dispositivos de disco del SO invitado serán diferentes. Asegúrate de que tus aplicaciones y secuencias de comandos usen nombres de dispositivo persistentes o enlaces simbólicos al hacer referencia a los discos conectados.

Requisitos de red

Revisa los siguientes requisitos de red de tu instancia actual y del nuevo tipo de instancia:

  • Revisa las interfaces de red admitidas de la nueva VM.

    • De forma predeterminada, las series de máquinas de primera y segunda generación solo usan la interfaz de red VirtIO.
    • Las series de máquinas de tercera generación y posteriores (como M3, C3 y N4) solo admiten la interfaz de red gVNIC.
    • Las instancias de hardware desnudo solo admiten la interfaz de red IDPF.
  • Asegúrate de que tu aplicación y tu sistema operativo admitan las interfaces disponibles para la serie de la máquina.

  • Revisa la configuración de red de tu VM para determinar si necesitas conservar las direcciones IP asignadas. Si es así, debes convertir las direcciones IP en direcciones IP estáticas.

  • Si utilizas el rendimiento de red Tier_1 por VM con tu VM actual, asegúrate de que esté disponible o sea necesario con la nueva serie de máquinas. Por ejemplo, puedes usar la red Tier_1 con un tipo de máquina C2, pero no es necesario con una VM H3.

Para determinar el tipo de interfaz de red de tu máquina virtual actual, usa el comando gcloud compute instances describe para ver el nic-type de la máquina virtual:

  gcloud compute instances describe VM_NAME --zone=ZONE

Si tu máquina virtual tiene el valor nic-type definido como VIRTIO, no puedes cambiar el tipo de interfaz de red. Debes crear una máquina virtual y configurar el tipo de interfaz de red como gVNIC.

Preparar la migración de las VMs

Una vez que hayas completado la sección de evaluación, el siguiente paso es preparar la migración de tus instancias de VM solicitando recursos para la nueva instancia de VM y preparando copias de seguridad de la instancia de VM de origen.

Preparar recursos de computación

Sigue estos pasos para preparar la migración de tu instancia actual a una nueva:

  1. Solicita cuota en la región y las zonas a las que quieras mover tus recursos. Si ya tienes una cuota para un tipo de máquina, puedes solicitar que se transfiera. El proceso tarda unos días en completarse.
  2. Crea una reserva para las nuevas instancias de VM y asegúrate de que los recursos de la máquina estén disponibles en la nueva región y las zonas. Asegúrate de entender cómo se consumen los recursos reservados y prueba que puedes consumirlos.
  3. Amplía tus planes de alta disponibilidad y recuperación tras fallos para incluir la nueva región.
  4. Si es necesario, actualiza el SO de la VM actual.
    1. Si el proveedor del sistema operativo lo admite, realiza una actualización in situ del SO a una versión compatible con la nueva serie de máquinas y comprueba que tu carga de trabajo funciona correctamente en la nueva versión del SO.
    2. Si no se admite una actualización in situ del SO, cuando crees una VM, debes crear un disco de arranque. Determina qué información necesitas copiar del disco de arranque actual y cópiala en una ubicación temporal de un disco que no sea de arranque para que se pueda transferir a la nueva VM. Si no tienes ningún disco que no sea de arranque conectado a tu máquina virtual:
  5. Si se aplica a tu distribución de Linux, consulta las reglas udev en /etc/udev/rules.d/. Este archivo puede contener entradas relevantes para la configuración de hardware de la instancia actual, pero no de la nueva. Por ejemplo, la siguiente entrada asegura que eth0 se proporcione mediante el controlador virtio-pci (VirtIO Net), lo que impide que el controlador gve (gVNIC) proporcione esta interfaz. Esto podría provocar problemas de conectividad y de secuencias de comandos de inicio de redes en la nueva instancia:
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="virtio-pci", ATTR{dev_id}=="0x0", KERNELS=="0000:00:04.0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

Preparar recursos de almacenamiento

Sigue estos pasos para preparar la transferencia de los datos de los discos conectados a tu instancia actual a una nueva instancia:

  1. En los sistemas Linux, prueba las aplicaciones y las secuencias de comandos actualizadas para asegurarte de que funcionan con nombres de dispositivos persistentes o enlaces simbólicos en lugar de con los nombres de dispositivos de disco.
  2. Si vas a migrar desde una máquina virtual que ejecuta Microsoft Windows:
  3. Si tu nueva VM no admite los mismos tipos de disco que tu VM actual, es posible que tengas que actualizar tus secuencias de comandos de implementación o plantillas de instancia para que sean compatibles con la nueva serie de máquinas.
  4. Si tu VM actual usa un tipo de disco de arranque que no es compatible con la nueva serie de máquinas y vas a migrar varias VMs con la misma configuración, crea una imagen personalizada para usarla al crear las nuevas VMs:
    1. Crea una captura del disco de arranque pd-standard de tu VM actual.
    2. Crea una imagen personalizada usando la instantánea del disco como fuente.
  5. Si necesitas mover información de SSD local, crea un disco vacío lo suficientemente grande para hacer una copia de seguridad de tus discos SSD locales.
    1. Si es posible, usa un tipo de disco compatible con la nueva VM.
    2. Si no hay ningún tipo de disco compatible con la VM actual y la nueva, crea un disco temporal con un tipo de disco compatible con la VM actual.
    3. Adjunta el nuevo disco a la VM actual y, a continuación, formatea y monta el disco.
    4. Copia los datos de los discos SSD locales conectados a la VM actual en este disco temporal.
  6. Cambia el tipo de disco de los discos conectados a la VM actual que usen un tipo de disco que no sea compatible con la nueva VM. Para mover los datos del disco a discos nuevos, crea copias de los discos. También puedes transferir archivos de una máquina virtual a otra.

    1. Puedes hacer las capturas mientras la VM está en ejecución, pero no se capturarán los datos que se escriban en los discos después de hacer la captura. Como las capturas son incrementales, puedes hacer una segunda captura después de detener la VM para registrar todos los cambios más recientes. De esta forma, se minimizará el tiempo que la VM no esté disponible mientras cambias a una nueva.
    2. También puedes hacer todas las capturas de disco después de detener la VM. Te recomendamos que crees una instantánea de todos los discos conectados a tu VM, aunque el tipo de disco sea compatible con la nueva serie de máquinas. Incluye los discos temporales que contengan los datos de la SSD local copiada.
    3. El tiempo que se tarda en crear una instantánea de un disco depende de varios factores, como el tamaño del disco y la cantidad de datos que contiene. Por ejemplo, si haces una instantánea de un disco de 1 TiB que está lleno al 85 %, puede tardar 5 minutos en completarse. Sin embargo, si haces una instantánea de un disco de 100 TiB que está lleno al 85 %, puede tardar 11 minutos en completarse. Te recomendamos que hagas pruebas de instantáneas de tus discos antes de iniciar el proceso de migración para saber cuánto tiempo se tarda en crear las instantáneas.
  7. Si tienes un disco que se puede poner fuera de línea, puedes usar el siguiente método para mover los datos a un disco nuevo mientras la VM de origen sigue disponible:

    1. Desconecta el disco de tu VM.
    2. Haz una instantánea del disco.
    3. Usa la captura para crear un disco con un tipo de disco compatible con la nueva serie de máquinas. El nuevo disco debe tener el mismo tamaño o ser más grande que el disco de origen.

Preparar recursos de red

Sigue estos pasos para actualizar la configuración de red que usa tu instancia actual para que sea compatible con la nueva instancia:

  1. Si tu máquina virtual actual no usa gVNIC, debes crear una instancia con una interfaz de red que use gVNIC. Consulta la descripción general del uso de gVNIC con VMs de Compute Engine para saber qué pasos debes seguir al crear una instancia.
  2. Si vas a crear una máquina virtual en una región nueva, crea una red de VPC y subredes en la región nueva.
  3. Si has configurado recuentos de colas de NIC personalizados, consulta Asignaciones de colas y cambio del tipo de máquina.
  4. Si quieres conservar las direcciones IP que usa la VM de origen, promociónalas a direcciones IP estáticas.
  5. Anula la asignación de la dirección IP estática antes de detener la VM de origen.

Preparar el sistema operativo SUSE Enterprise Linux Server

Para evitar dependencias específicas del hardware, vuelve a compilar el initramfs (sistema de archivos RAM inicial). Esto incluye una gama más amplia de controladores y módulos, lo que hace que el sistema operativo sea compatible con otros tipos de instancias. Si no lo haces, se producirá el problema conocido que impide que la VM se inicie correctamente.

Antes de apagar el sistema, ejecuta el siguiente comando como superusuario para volver a compilar initramfs con todos los controladores:

  sudo dracut --force --no-hostonly

Mueve tu carga de trabajo a la nueva VM

Después de preparar tus VMs para la migración, el siguiente paso es mover tu carga de trabajo a la nueva VM.

Si vas a migrar tus VMs de la serie de máquinas de primera generación a la de segunda generación, consulta las instrucciones de la página Editar el tipo de máquina de una VM. Si quieres cambiar el nombre de una máquina virtual, consulta la información de Cambiar el nombre de una máquina virtual.

Permisos que se necesitan para completar esta tarea

Para realizar esta tarea, debes tener los siguientes permisos:

  • compute.instances.setMachineType en la VM

En esta sección se describe cómo mover tu carga de trabajo de una VM de primera o segunda generación a una VM de tercera generación (o posterior). Durante este procedimiento, crearás una instancia de VM y, a continuación, moverás tus cargas de trabajo a la nueva VM.

  1. Al crear la VM, elige uno de los tipos de disco admitidos para el disco de arranque (por ejemplo, Hyperdisk Balanced).

Crear la nueva VM

Cuando traslades tus cargas de trabajo de máquinas virtuales de primera o segunda generación (N1 o N2, por ejemplo) a máquinas virtuales de tercera generación o posteriores, primero debes crear una máquina virtual y, después, trasladar tus cargas de trabajo.

  1. Si la VM de origen usa discos que no son de arranque con un tipo de disco compatible con la nueva serie de máquinas, desvincula los discos de la VM.
  2. Detén la máquina virtual de origen.
  3. Crea capturas de todos los discos que aún estén conectados a la VM de origen.
  4. Crea una instancia de máquina virtual de Compute usando una imagen pública o una imagen personalizada configurada para usar gVNIC. Cuando crees la nueva VM, elige las siguientes opciones:
    • Selecciona el tipo de máquina de la serie que hayas elegido.
    • Selecciona una imagen de SO compatible o usa una imagen personalizada que hayas creado anteriormente.
    • Selecciona un tipo de disco compatible para el disco de arranque.
    • Si has creado discos a partir de capturas de los discos originales, inclúyelos.
    • Especifica la nueva red de VPC si vas a crear la instancia en otra región.
    • Si la nueva instancia admite tanto VirtIO como gVNIC, selecciona gVNIC.
    • Especifica las direcciones IP estáticas si has promocionado las direcciones IP efímeras de la VM de origen.
  5. Inicia la nueva VM.

Después de que se inicie la instancia

Ahora que se ha creado y se ha iniciado la nueva instancia, sigue estos pasos para completar la configuración de la nueva instancia y copiar todos los datos de la instancia de origen.

  1. Conecta los discos que has desconectado de la VM de origen a la nueva VM.
  2. En el caso de los discos asociados a la VM de origen que usen un tipo de disco no compatible con la nueva VM, crea un disco a partir de una instantánea y asócialo a la nueva instancia. Cuando crees el disco, selecciona un tipo de disco compatible con la nueva VM y especifica un tamaño que sea al menos igual al del disco original.
  3. Si la VM original usaba una política de recursos para los discos que se recrearon para la nueva VM, debes añadir la política de recursos a los nuevos discos.
  4. Si has creado la nueva VM con una imagen de SO pública y no con una imagen personalizada, haz lo siguiente:
    1. Configura los usuarios, controladores, paquetes y directorios de archivos necesarios en la nueva instancia para admitir tu carga de trabajo.
    2. Instala las aplicaciones y los programas modificados en la nueva máquina virtual. Vuelve a compilar los programas en el nuevo SO o arquitectura, si es necesario.
  5. Opcional: Si has movido el contenido de los discos SSD locales a un disco temporal y la nueva VM tiene almacenamiento SSD local conectado, después de formatear y montar los discos, puedes mover los datos del disco temporal a los discos SSD locales.
  6. Reasigna las direcciones IP estáticas asociadas a la VM de origen a la nueva VM.
  7. Completa las tareas adicionales necesarias para que tu nueva VM tenga una alta disponibilidad, como configurar balanceadores de carga y actualizar las reglas de reenvío.
  8. Opcional: Actualiza las entradas de DNS de la nueva VM, si es necesario.
  9. Recomendación: programa copias de seguridad de los discos nuevos.
  10. Recomendación: Si has cambiado el SO a una versión o arquitectura diferente, vuelve a compilar tus aplicaciones.

Si tienes problemas al mover tu carga de trabajo, ponte en contacto con tu gestor de cuentas técnicas o con la organización de servicios profesionales de Google para obtener ayuda.

Ejemplo de migración de n1-standard-8 a n4-standard-8

En el siguiente ejemplo, se migra una máquina virtual n1-standard-8 a una máquina virtual n4-standard-8. La VM n1-standard-8 tiene un disco de arranque PD-SSD que ejecuta una imagen Ubuntu1804 y un disco de datos PD-SSD. Para llevar a cabo este procedimiento, debes usar la CLI o la API REST.

Hay dos opciones disponibles para actualizar tu VM N1 a una VM N4:

Opción 1: Si tu VM N1 usa la interfaz de red VirtIO, debes crear una VM N4. N4 solo admite la interfaz de red gvnic y los discos Hyperdisk Balanced. Crea una captura de tus discos de arranque y de datos de Persistent Disk, crea discos Hyperdisk Balanced a partir de esas capturas, conecta los discos Hyperdisk Balanced y crea la nueva VM N4 con los discos Hyperdisk Balanced.

También puedes crear un disco de arranque Hyperdisk Balanced con una versión más reciente del SO Ubuntu. En este caso, puedes crear un disco Hyperdisk Balanced a partir de la captura del disco de arranque, pero lo asocias como disco que no es de arranque a la VM N4. Después, puedes copiar los datos que no sean del sistema de la copia de seguridad restaurada en el nuevo disco de arranque.

Opción 2: Si tu VM N1 usa la interfaz de red gvnic, el sistema operativo tiene un controlador de dispositivo de almacenamiento NVMe, no tiene ningún disco SSD local ni GPU conectados y no forma parte de un grupo de instancias gestionado (MIG), puedes cambiar el tipo de máquina de N1 a N4, pero debes cambiar los tipos de disco de tu disco persistente a discos Hyperdisk Balanced. Primero debes separar los discos de arranque y de datos de tu disco persistente, crear capturas de los discos, crear discos Hyperdisk Balanced usando las capturas como origen y, a continuación, adjuntar los nuevos discos Hyperdisk Balanced a tu VM N4 después de cambiar el tipo de máquina. Si tu máquina virtual tiene GPUs conectadas, primero debes desconectarlas.

El tiempo necesario para crear una instantánea de un disco depende de varios factores, como el número total de TBs del disco. Por ejemplo, si haces una captura de un disco de 1 TB que está lleno al 85 %, la captura puede tardar 5 minutos en completarse. Sin embargo, si haces una instantánea de un disco de 100 TB que está lleno al 85 %, puede tardar 11 minutos en completarse. Google recomienda que hagas instantáneas de prueba de tus discos antes de iniciar el proceso de migración para saber cuánto tiempo se tarda en crear las instantáneas.

gcloud

Opción 1: Crear una máquina virtual N4 con discos de los que se han creado instantáneas:

  1. Para detener la VM, usa gcloud compute instances stop:

    gcloud compute instances stop VM_NAME \
      --zone=ZONE
    

    Haz los cambios siguientes:

    • VM_NAME El nombre de tu máquina virtual actual. n1-standard-8
    • ZONE: la zona en la que se encuentra la VM.
  2. Crea una captura de tus discos. Usa el comando gcloud compute snapshots create para crear una captura del disco de arranque y del disco de datos del disco persistente conectados a la VM.

    gcloud compute snapshots create SNAPSHOT_NAME \
        --source-disk=SOURCE_DISK_NAME \
        --source-disk-zone=SOURCE_DISK_ZONE
    

    Haz los cambios siguientes:

    • SNAPSHOT_NAME: el nombre de la captura que quieras crear.
    • SOURCE_DISK_NAME: el nombre del disco de origen.
    • SOURCE_DISK_ZONE: la zona de tu disco de origen.
  3. Crea un disco Hyperdisk Balanced para el disco de datos repitiendo el paso anterior y especificando la información del disco de datos en lugar del disco de arranque. gcloud compute disks create:

    gcloud compute disks create DISK_NAME \
        --project=PROJECT_NAME \
        --type=DISK_TYPE \
        --size=DISK_SIZE \
        --zone=ZONE \
        --source-snapshot=SNAPSHOT_NAME \
        --provisioned-iops=PROVISIONED_IOPS \
        --provisioned-throughput=PROVISIONED_THROUGHPUT
    
    

    Haz los cambios siguientes:

    • DISK_NAME: el nombre del nuevo disco que vas a crear a partir del disco con la instantánea.
    • PROJECT_NAME: el nombre de tu proyecto.
    • DISK_TYPE: el nuevo tipo de disco. En este ejemplo, se trata de un disco Hyperdisk Balanced.
    • DISK_SIZE: tamaño del disco (por ejemplo, 100GB).
    • ZONE: la zona en la que se encuentra el nuevo disco.
    • SNAPSHOT_NAME: nombre del disco de origen de la instantánea.
    • Opcional: PROVISIONED_IOPS: el rendimiento de IOPS del disco (por ejemplo, 3600).
    • Opcional: PROVISIONED_THROUGHPUT: el rendimiento de la capacidad de procesamiento para aprovisionar el disco (por ejemplo, 290).
  4. Repite el paso anterior para cada disco del que hayas creado una instantánea.

  5. Crea la VM n4-standard-8 y conecta los discos Hyperdisk Balanced con el comando gcloud compute instances create:

    gcloud compute instances create VM_NAME \
        --project=PROJECT_NAME \
        --zone=ZONE \
        --machine-type=NEW_MACHINE_TYPE \
        --boot-disk-device-name=BOOT_DISK_NAME \
        --disk=name=NON_BOOT_DISK_NAME, boot=no \
        --network-interface=nic-type=GVNIC
    

    Haz los cambios siguientes:

    • VM_NAME: nombre de la nueva instancia de VM.
    • PROJECT_NAME: el nombre de tu proyecto.
    • ZONE: la zona en la que se encuentra la nueva VM.
    • NEW_MACHINE_TYPE: el tipo de máquina. En este ejemplo, es n4-standard-8.
    • BOOT_DISK_NAME El nombre del disco de arranque Hyperdisk Balanced que has creado a partir de la instantánea del disco de origen adjunto a la VM n1-standard-8.
    • NON_BOOT_DISK_NAME El nombre del disco de datos Hyperdisk Balanced que has creado a partir del disco de la captura de origen adjunto a la VM n1-standard-8.
  6. Inicia la n4-standard-8 VM con el comando gcloud compute instances start:

    gcloud compute instances start VM_NAME
    

    Sustituye VM_NAME por el nombre de la nueva VM.

Opción 2: Realizar una actualización local del equipo:

Esta opción solo está disponible si tu VM N1 usa la interfaz de red gvnic, el sistema operativo tiene un controlador de dispositivo de almacenamiento NVMe, no tiene ningún disco SSD local ni GPU conectados y no forma parte de un grupo de instancias gestionado (MIG). Si realizas este procedimiento con una VM N1 que tenga una interfaz de red VirtIO, se generará un error de incompatibilidad de la VM.

  1. Detén la VM.
  2. Desconecta los discos de la VM.
  3. Crea una captura de los discos de arranque y de datos.
  4. Crea discos de arranque y de datos Hyperdisk Balanced usando una instantánea de disco como origen de cada disco.
  5. Define el tipo de máquina de una VM N4.
  6. Conecta el disco de arranque Hyperdisk Balanced y el disco de datos Hyperdisk Balanced.
  7. Inicia la VM N4.

REST

Opción 1: Crear una máquina virtual N4 con discos de los que se han creado instantáneas:

  1. Detén la VM con el método instances.stop:

     POST https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/zones/ZONE/instances/VM_NAME/stop
    

    Haz los cambios siguientes:

    • PROJECT_NAME: el ID del proyecto.
    • ZONE: la zona que contiene la VM.
    • VM_NAME: nombre de tu máquina virtual n1-standard-8actual.
  2. Crea una captura de tus discos con el método disks.createSnapshot para crear una captura del disco de arranque y del disco de datos persistentes conectados a la instancia.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/zones/ZONE/disks/DISK_NAME/createSnapshot
    

    En el cuerpo de la solicitud, incluye el nombre del nuevo disco persistente del que has creado una captura.

    Por ejemplo:

    {
        "name": "SNAPSHOT_NAME"
    }
    

    Haz los cambios siguientes:

    • PROJECT_NAME: el nombre de tu proyecto.
    • ZONE: la zona en la que se encuentra tu disco.
    • DISK_NAME: el disco del que quieres crear una instantánea.
    • SNAPSHOT_NAME: un nombre para la instantánea, como hdb-boot-disk o hdb-data-disk.
  3. Crea un disco Hyperdisk Balanced con el método disks.insert. Debes realizar este paso dos veces: una para incluir el name de tu disco de arranque Hyperdisk Balanced y otra para incluir el name de tus discos de datos. Usa el sourceSnapshot para los nuevos discos de arranque y de datos de Hyperdisk Balanced, el type del disco, Hyperdisk Balanced y el sizeGB del disco en el cuerpo de la solicitud.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/zones/ZONEdisks
    

    Haz los cambios siguientes:

    • PROJECT_NAME: el nombre de tu proyecto.
    • ZONE: la zona en la que se encuentra tu disco.

    En el cuerpo de la solicitud, incluye lo siguiente:

    Por ejemplo:

    {
        "name": "my-hdb-boot-disk" or "my-hdb-data-disk",
        "sourceSnapshot": "projects/your-project/global/snapshots/SNAPSHOT_NAME",
        "type": "projects/your-project/zones/us-central1-a/diskTypes/hyperdisk-balanced",
        "sizeGb": "100"
    }'
    
  4. Usa el método instances.insert para crear la nueva VM N4.

    
    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/zones/ZONE/instances
    
    

    Haz los cambios siguientes:

    • PROJECT_NAME: el nombre de tu proyecto.
    • ZONE: la zona en la que se encuentra tu disco.

    En el cuerpo de la solicitud, incluye lo siguiente:

    
      {
        "machineType":"projects/your-project/zones/us-central1-a/machineTypes/n4-standard-8" "name":"VM_NAME",
        "disks": [
          {
            "boot": true,
            "deviceName": "my-hdb-boot-disk",
            "source": "projects/your-project/zones/us-central1-a/disks/my-hdb-boot-disk",
            "type": "PERSISTENT"
          },
    
          {
            "boot": false,
            "deviceName": "my-hdb-data-disk",
            "source": "projects/your-project/zones/us-central1-a/disks/my-hdb-data-disk",
            "type": "PERSISTENT"
          }
          ],
            "networkInterfaces":[
              {
                "network":"global/networks/NETWORK_NAME",
                "subnetwork":"regions/REGION/subnetworks/SUBNET_NAME",
                "nicType": "GVNIC"
              }
           ]
         }
    
    

    Haz los cambios siguientes:

    • VM_NAME: el nombre de la VM.
    • NETWORK_NAME: nombre de la red.
    • REGION: el nombre de la región.
    • SUBNET_NAME: nombre de la subred.
  5. Inicia la VM con el método instances.start:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/zones/ZONE/instances/VM_NAME/start
    

    Haz los cambios siguientes:

    • PROJECT_NAME: el nombre de tu proyecto.
    • ZONE: la zona en la que se encuentra tu VM.
    • VM_NAME: el nombre de la VM.

Opción 2: Realizar una actualización local del equipo:

Esta opción solo está disponible si tu VM N1 usa la interfaz de red gvnic, no tiene ningún disco SSD local ni GPU conectados y no forma parte de un grupo de instancias gestionado (MIG). Si realizas este procedimiento con una VM N1 que tenga una interfaz de red VirtIO, se generará un error de incompatibilidad de la VM.

  1. Detén la VM con el método instances.stop.

  2. Desvincula los discos con el método instances.detachDisk para desvincular el disco de arranque del disco persistente original de la VM N1. También debes desvincular los discos de datos de la VM.

    https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/zones/ZONE/instances/VM_NAME/detachDisk?deviceName=DISK_NAME
    

    Haz los cambios siguientes:

    • PROJECT_NAME: el nombre de tu proyecto.
    • ZONE: la zona en la que se encuentra tu disco.
    • VM_NAME: nombre de la VM de origen con el disco pd-ssd conectado.
    • DISK_NAME: el disco que quieres separar.
  3. Crea una captura de los discos. Usa el método disks.createSnapshot para crear una captura del disco de arranque y de los discos de datos de Persistent Disk conectados a la instancia.

  4. Crea discos de arranque y de datos de Hyperdisk Balanced con el método disks.insert. Incluye el name de tu disco Hyperdisk Balanced, sourceSnapshot para el nuevo disco Hyperdisk Balanced, el type del disco, Hyperdisk Balanced, y sizeGB del disco en el cuerpo de la solicitud.

  5. Para llevar a cabo una actualización del tipo de máquina in situ con el método instances.setMachineType, incluye machineType en el cuerpo de la solicitud:

    POST  https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/zones/ZONEinstances/VM_NAME/setMachineTypeMACHINE_TYPE
    

    Haz los cambios siguientes:

    • PROJECT_NAME: el nombre de tu proyecto.
    • ZONE: la zona en la que se encuentra tu disco.
    • VM_NAME: nombre de la VM que se va a actualizar.
    • MACHINE_TYPE: el nuevo tipo de máquina.

    En el cuerpo de la solicitud, incluye lo siguiente:

    
    {
     "machineType": "projects/PROJECT_NAME/zones/ZONE/machineTypes/MACHINE_TYPE",
    }
    
    
  6. Usa el método instances.attachDisk para conectar el nuevo disco de arranque Hyperdisk Balanced y los discos de datos Hyperdisk Balanced a la VM N4.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/zones/ZONE/instancesVM_NAMEattachDiskDISK_NAME
    

    Haz los cambios siguientes:

    • PROJECT_NAME: el nombre de tu proyecto.
    • ZONE: la zona en la que se encuentra tu disco.
    • VM_NAME: nombre de la instancia de VM de origen que tiene adjunto el disco pd-ssd.
    • DISK_NAME El disco que quieras adjuntar.

    En el cuerpo de la solicitud, incluye lo siguiente:

    {
    "source": "projects/your-project/zones/us-central1-a/disks/my-hdb-boot-disk",
    "deviceName":"my-hdb-boot-disk","boot":true
    }
    
    {
    "source": "projects/your-project/zones/us-central1-a/disks/my-hdb-data-disk",
    "deviceName":"my-hdb-data-disk","boot":false
    }
    
  7. Inicia la VM N4 con el método instances.start.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/zones/ZONEinstances/VM_NAME/start
    

    Haz los cambios siguientes:

    • PROJECT_NAME: el nombre de tu proyecto.
    • ZONE: la zona en la que se encuentra tu disco.
    • VM_NAME: el nombre de la VM.

Limpieza

Una vez que hayas verificado que puedes conectarte a la nueva VM y que tu carga de trabajo se ejecuta correctamente en ella, puedes quitar los recursos que ya no necesites:

  1. Las capturas que has creado de los discos conectados a la VM de origen.
  2. Las programaciones de capturas de los discos que estaban conectados a la VM de origen.
  3. El disco temporal creado para copiar los datos de la unidad SSD local en la nueva VM.
  4. La máquina virtual de origen y todos los discos conectados.

Siguientes pasos