Importa imágenes de discos virtuales

Migrate to Virtual Machines te permite importar una imagen de disco virtual a una imagen de Compute Engine. Si tienes imágenes de discos virtuales en el entorno local con software y opciones de configuración que necesitas, puedes ahorrar tiempo si importas estas imágenes de disco virtual a Compute Engine y usas las imágenes resultantes para crear las siguientes imágenes: instancias de máquinas virtuales o discos persistentes.

Antes de comenzar

  • Habilita la API de VM Migration en tu proyecto. Si deseas obtener más información para habilitar la API de VM Migration, consulta Habilita los servicios de Migrate to Virtual Machines.
  • Asegúrate de que el sistema operativo del disco sea compatible con Migrate to Virtual Machines. Para obtener más información, consulta los sistemas operativos compatibles.
  • Asegúrate de que los archivos de imagen de disco virtual que deseas importar tengan los formatos siguientes.
    • Disco de máquina virtual (VMDK).
    • Sin procesar, comprimido como .tar.gz. El archivo tar debe contener un solo archivo llamado disk.raw.

Proceso de importación de imágenes

Para importar una imagen de disco virtual a una imagen de Compute Engine con Migrate to Virtual Machines, sigue estos pasos:

  1. Prepara un archivo de imagen de disco virtual para importarlo
  2. Elige un proyecto de destino
  3. Importa una imagen de disco virtual a Compute Engine

Prepara un archivo de disco virtual para importarlo

Si quieres importar una imagen de disco virtual a una imagen de Compute Engine, primero debes preparar el archivo de imagen de disco virtual para importar. En las siguientes secciones, se analizan estas tareas en detalle.

Agrega el archivo de imagen de disco virtual a Cloud Storage

Para importar una imagen de disco virtual a una imagen de Compute Engine, primero debes agregar el archivo de imagen de disco virtual a Cloud Storage. Para obtener más información, consulta Sube objetos desde un sistema de archivos. Para obtener un mejor rendimiento, te recomendamos que subas el archivo de imagen de disco virtual a un bucket en la misma región de nube en la que deseas crear la imagen.

Otorga los permisos necesarios.

Para importar una imagen de disco virtual a una imagen de Compute Engine, otorga los permisos que se indican en la siguiente tabla.

Rol Permisos necesarios Descripción
Visualizador de objetos de almacenamiento roles/storage.objectViewer Otorga este permiso a la cuenta de servicio del proyecto host para poder importar una imagen de disco virtual a una imagen de Compute Engine.
Administrador de VM Migration roles/vmmigration.admin Otorga este permiso al proyecto host para poder crear nuevas fuentes de Migrate to Virtual Machines y realizar todas las demás operaciones de migración.
Cuenta de servicio de VM Migration roles/vmmigration.serviceAgent Otorga este permiso al proyecto de destino para que pueda crear instancias de máquinas virtuales (VMs), imágenes y discos migrados en el proyecto de destino.

Elige un proyecto de destino

Para alojar la imagen de Compute Engine, debes crear o elegir un proyecto de destino. Un proyecto de destino define el proyecto de destino de una imagen de Compute Engine. Para obtener más información sobre cómo crear o elegir un proyecto de destino, consulta Agrega un proyecto de destino.

Importa una imagen de disco virtual a Compute Engine

Puedes importar una imagen de disco virtual a Compute Engine con la consola de Google Cloud, Google Cloud CLI o los comandos de la API de REST.

Console

Para importar una imagen de disco virtual a Compute Engine mediante la consola de Google Cloud, sigue estos pasos.

  1. Abre la página Migrate to Virtual Machines en la consola de Google Cloud.

    Ir a la página Migrate to Virtual Machines

  2. Selecciona la pestaña Importaciones de imágenes.

  3. Haz clic en Create Image (Crear imagen).

  4. Define las características de la imagen. En la siguiente tabla, se enumeran los parámetros que puedes configurar para tu imagen.

    Título de la sección Nombre del campo Descripción
    General Nombre El nombre de la imagen que deseas crear. Para obtener más información sobre las reglas de nombres, consulta Convención de nombres.
    ID de importación de la imagen Un ID que representa el recurso de importación de imágenes. Cuando importas una imagen a Compute Engine, Migrate to Virtual Machines primero crea un recurso de importación de imágenes. El recurso de importación de imágenes representa el proceso de importación de imágenes. Puedes usar el ID de importación de imágenes para obtener el vínculo a la imagen que se importó como parte del proceso de importación de imágenes.
    Archivo de Cloud Storage de origen El archivo desde el que deseas importar la imagen. Haz clic en Explorar para ver la lista de buckets del proyecto actual y selecciona el archivo desde el que deseas importar la imagen.
    Si deseas importar una imagen de un bucket de otro proyecto, debes ingresar la ruta de acceso en el formato bucket/carpeta/archivo. Para obtener la ruta de un objeto dentro de un bucket, consulta Visualiza metadatos de objetos. Cuando copies la ruta de acceso, asegúrate de no copiar el prefijo gs://.
    Ten en cuenta que solo puedes importar imágenes desde archivos .vmdk y .tar.gz.
    Región Es la región en la que deseas crear la imagen. Para obtener una lista de las regiones admitidas, consulta Regiones y zonas.
    Proyecto de destino El proyecto de destino en el que deseas crear la imagen. Si aún no agregaste un proyecto de destino, hazlo mediante las instrucciones que se proporcionan en Agrega un proyecto de destino.
    Familia Selecciona la familia de imágenes (opcional). ComputeEngine proporciona familias de imágenes para ayudarte a garantizar que tus sistemas de automatización puedan hacer referencia a las imágenes más recientes Como administrador, puedes agrupar un conjunto de imágenes como una familia de imágenes. Para obtener más información, consulta Familias de imágenes públicas.
    Descripción Agrega una descripción para la imagen (opcional).
    Omitir la adaptación del SO Para omitir la adaptación del SO, haz clic en el botón Omitir adaptación del SO a la posición activada.
    Para funcionar de forma correcta en Google Cloud, las VMs creadas a partir de imágenes importadas requieren que se realicen cambios en su configuración. Estos cambios se denominan adaptaciones de SO. Migrate to Virtual Machines realiza adaptaciones de SO automáticamente en el proceso de importación de imágenes. Si deseas obtener más información, consulta Adapta las instancias de VM para que se ejecuten en Google Cloud.
    Generalizar Para generalizar la imagen, haz clic en el botón de activación Generalizar. Cuando creas una instancia a partir de una imagen, Windows le agrega información única. La generalización es un proceso que quita esta información para que puedas crear varias instancias a partir de la misma imagen.
    Licencias Tipo de licencia Compute Engine admite licencias de pago por uso (PAYG) y licencias adquiridas por el usuario (BYOL) para las VMs implementadas. Migrate to Virtual Machines asigna el tipo de licencia predeterminado para una VM migrada según el sistema operativo migrado, como se describe en Sistemas operativos compatibles.
    Si tu sistema operativo admite varios tipos de licencias, puedes anular el tipo de licencia predeterminado para especificar de forma explícita un tipo de licencia PAYG o BYOL.
    Licencias adicionales Licencias adicionales Puedes agregar hasta 10 licencias adicionales a la instancia de VM creada a partir de la imagen importada con un formato de URL válido. Por ejemplo, puedes agregar licencias adicionales con el siguiente formato de URL:
    
    https://www.googleapis.com/compute/beta/projects/windows-sql-cloud/global/licenses/sql-server-2012-enterprise
    Etiquetas Para organizar tu proyecto, agrega a tus recursos etiquetas como pares clave-valor. Consulta Organiza los recursos con etiquetas.
    Encriptación Clave de encriptación administrada por Google Elige esta opción para usar la clave de encriptación administrada por Google para encriptar tus datos durante el proceso de importación. Para obtener más información, consulta Encripta los datos cuando están en reposo.
    Clave de encriptación administrada por el cliente Elige esta opción para usar claves de encriptación administradas por el cliente (CMEK) para encriptar tus datos durante el proceso de importación y los datos de la imagen que creó el proceso de importación. Si tienes requisitos normativos o de cumplimiento específicos relacionados con las claves que protegen los datos, puedes usar CMEK para encriptar y desencriptar los datos. Estas claves de encriptación son creadas, administradas y de tu propiedad. Para obtener más información, consulta Protege recursos a través de las claves de Cloud KMS.
    Cuando agregas una CMEK, debes otorgar permisos como se describe en la siguiente tabla.
    Rol Permisos necesarios Descripción
    Cuenta de servicio de migración de VM de Cloud roles/vmmigration.serviceAgen Otorga este permiso a la cuenta de servicio de Compute Engine para encriptar los datos de la imagen que se creó durante el proceso de importación.
    Agente de servicio de Compute Engine roles/compute.serviceAgent Otorga este permiso al agente de servicio de Migrate to Virtual Machines para encriptar los datos durante el proceso de importación.
  5. Seleccione Crear.

gcloud

Para importar una imagen de disco virtual a Compute Engine mediante Google Cloud CLI, usa la siguiente solicitud.

gcloud alpha migration vms image-imports create IMAGE_NAME \
--source-file=SOURCE_FILE \
--target-project=projects/HOST_PROJECT_ID/locations/global/targetProjects/TARGET_PROJECT

Reemplaza lo siguiente:

  • HOST_PROJECT_ID: el nombre del proyecto host desde el que deseas migrar la imagen de disco virtual.
  • REGION_ID: la región en la que deseas que se ejecute el proceso de importación de imágenes. La imagen se crea en la multirregión más cercana. Si deseas que la imagen se cree en una región, asegúrate de que singleRegionStorage esté configurado como verdadero. Para obtener una lista de las regiones admitidas, consulta Regiones y zonas.
  • SOURCE_FILE: el archivo desde el que deseas importar la imagen. Ingresa la ruta de acceso con el formato gs://bucket/folder/file. Para obtener la ruta de un objeto dentro de un bucket, consulta Visualiza metadatos de objetos. Ten en cuenta que solo puedes importar imágenes de archivos .vmdk y .tar.gz.
  • IMAGE_NAME: el nombre de la imagen que deseas crear. Para obtener más información sobre las reglas de nombres, consulta Convención de nombres.
  • TARGET_PROJECT: el proyecto de destino en el que deseas crear la imagen. Si aún no agregaste un proyecto de destino, hazlo mediante las instrucciones que se proporcionan en Agrega un proyecto de destino.

Para obtener más información, consulta gcloud alpha migration vms image-imports.

REST

Para importar una imagen de disco virtual a Compute Engine con la API de REST, sigue estos pasos.

  1. Crea un recurso de importación de imágenes mediante la siguiente solicitud.

    POST https://vmmigration.googleapis.com/v1/projects/HOST_PROJECT_ID/locations/REGION_ID/imageImports?imageImportId=IMPORT_NAME
    {
    "cloudStorageUri": "SOURCE_FILE",
    "diskImageTargetDefaults": {
    "imageName": "IMAGE_NAME",
    "targetProject": "projects/HOST_PROJECT_ID/locations/global/targetProjects/TARGET_PROJECT",
    ...
    }
    }
    

    Reemplaza lo siguiente:

    • HOST_PROJECT_ID: el nombre del proyecto host desde el que deseas migrar la imagen de disco virtual.
    • REGION_ID: la región en la que deseas que se ejecute el proceso de importación de imágenes. La imagen se crea en la multirregión más cercana. Si deseas que la imagen se cree en una región, asegúrate de que singleRegionStorage esté configurado como verdadero. Para obtener una lista de las regiones admitidas, consulta Regiones y zonas.
    • SOURCE_FILE: el archivo desde el que deseas importar la imagen. Ingresa la ruta de acceso con el formato gs://bucket/folder/file. Para obtener la ruta de un objeto dentro de un bucket, consulta Visualiza metadatos de objetos. Ten en cuenta que solo puedes importar imágenes de archivos .vmdk y .tar.gz.
    • IMAGE_NAME: el nombre de la imagen que deseas crear. Para obtener más información sobre las reglas de nombres, consulta Convención de nombres.
    • TARGET_PROJECT: el proyecto de destino en el que deseas crear la imagen. Si aún no agregaste un proyecto de destino, hazlo mediante las instrucciones que se proporcionan en Agrega un proyecto de destino.

    En este ejemplo, IMPORT_NAME es un ID que representa el recurso de importación de imágenes. Cuando importas una imagen a Compute Engine, Migrate to Virtual Machines primero crea un recurso de importación de imágenes. El recurso de importación de imágenes representa el proceso de importación de imágenes. Puedes usar IMPORT_NAME para obtener el vínculo a la imagen que se importó como parte del proceso de importación de imágenes.

    Consulta la siguiente tabla para ver la lista completa de los campos compatibles con los campos de solicitud de creación de importación de imágenes.

    Nombre del campo Descripción
    cloudStorageUri string
    La ruta de acceso del archivo desde el que deseas importar la imagen. Ingresa la ruta de acceso con el formato gs://bucket/folder/file. Para obtener la ruta de un objeto dentro de un bucket, consulta Visualiza metadatos de objetos.
    Ten en cuenta que solo puedes importar imágenes desde archivos .vmdk y .tar.gz.
    diskImageTargetDefaults.targetProject string
    La ruta de acceso del TargetProject. El proyecto de destino en el que deseas crear la imagen. Para obtener más información, consulta la referencia de la API del proyecto de destino. Por ejemplo,
    projects/HOST_PROJECT_ID/locations/global/targetProjects/TARGET_PROJECT
    En el ejemplo, reemplaza lo siguiente:
    • HOST_PROJECT_ID: el nombre del proyecto host desde el que deseas migrar la imagen de disco virtual.
    • TARGET_PROJECT: Es el proyecto de destino en el que deseas crear la imagen.
    diskImageTargetDefaults.imageName string
    Es el nombre de la imagen que se creará. Para obtener más información sobre las reglas de nombres, consulta la convención de nombres de recursos.
    diskImageTargetDefaults.description string
    Es una descripción de la imagen (opcional).
    diskImageTargetDefaults.familyName string
    (Opcional) Selecciona la familia de imágenes. ComputeEngine proporciona familias de imágenes para ayudarte a garantizar que tus sistemas de automatización puedan hacer referencia a las imágenes más recientes Como administrador, puedes agrupar un conjunto de imágenes como una familia de imágenes. Para obtener más información, consulta Familias de imágenes públicas. Para obtener más información, consulta Familias de imágenes públicas.
    diskImageTargetDefaults.labels mapa (clave: string, valor: string)
    Para organizar tu proyecto, agrega etiquetas como pares clave-valor a tus recursos. Consulta Etiqueta recursos.
    diskImageTargetDefaults.additionalLicenses string[]
    Puedes agregar hasta 10 licencias adicionales a la instancia de VM creada a partir de la imagen importada con un formato de URL válido. Por ejemplo, puedes agregar licencias adicionales con el siguiente formato de URL:
    
    https://www.googleapis.com/compute/beta/projects/windows-sql-cloud/global/licenses/sql-server-2012-enterprise
    diskImageTargetDefaults.singleRegionStorage boolean
    Configura esta marca como verdadera si deseas que la imagen storageLocations sea una región. Si configuras esta marca como falsa, se selecciona la multirregión más cercana.
    diskImageTargetDefaults.dataDiskImageImport boolean
    Configura esta marca como verdadera si deseas omitir la adaptación del SO.
    Para funcionar de forma correcta en Google Cloud, las VMs creadas a partir de imágenes importadas requieren que se realicen cambios en su configuración. Estos cambios se denominan adaptaciones de SO. Migrate to Virtual Machines realiza adaptaciones de SO automáticamente en el proceso de importación de imágenes. Si deseas obtener más información, consulta Adapta las instancias de VM para que se ejecuten en Google Cloud.
    diskImageTargetDefaults.osAdaptationParameters.licenseType string
    El tipo de licencia que deseas usar para tu imagen. Compute Engine admite licencias de pago por uso (PAYG) y licencias adquiridas por el usuario (BYOL) para las VMs implementadas. Migrate to Virtual Machines asigna el tipo de licencia predeterminado para una VM migrada según el sistema operativo migrado, como se describe en Sistemas operativos compatibles.
    Si tu sistema operativo admite varios tipos de licencias, puedes anular el tipo de licencia predeterminado para especificar de forma explícita un tipo de licencia PAYG o BYOL.
    diskImageTargetDefaults.osAdaptationParameters.generalize boolean
    Configura esta marca como verdadera si deseas generalizar la imagen.
    Cuando creas una instancia a partir de una imagen, Windows le agrega información única. La generalización es un proceso que quita esta información para que puedas crear varias instancias a partir de la misma imagen.
    diskImageTargetDefaults.encryption string
    La clave de encriptación administrada por Google que deseas usar para encriptar tus datos durante el proceso de importación. Para obtener más información, consulta Encripta los datos cuando están en reposo.
    encryption string
    Elige esta opción para usar claves de encriptación administradas por el cliente (CMEK) a fin de encriptar tus datos durante el proceso de importación y los datos de la imagen creada durante el proceso de importación. Si tienes requisitos normativos o de cumplimiento específicos relacionados con las claves que protegen los datos, puedes usar CMEK para encriptar y desencriptar los datos. Estas claves de encriptación son creadas, administradas y de tu propiedad. Para obtener más información, consulta Protege recursos a través de las claves de Cloud KMS.
    Cuando agregas una CMEK, debes otorgar permisos como se describe en la siguiente tabla.
    Rol Permisos necesarios Descripción
    Cuenta de servicio de migración de VM de Cloud roles/vmmigration.serviceAgent Otorga este permiso a la cuenta de servicio de Compute Engine para encriptar los datos de la imagen que se creó durante el proceso de importación.
    Agente de servicio de Compute Engine roles/compute.serviceAgent Otorga este permiso al agente de servicio de Migrate to Virtual Machines para encriptar los datos durante el proceso de importación.

    Deberías ver una respuesta similar a la siguiente.

    {
      "name": "projects/HOST_PROJECT_ID/locations/REGION_ID/operations/OPERATION_ID",
      "metadata": {
        "createTime": "2023-10-31T09:12:26.94928636Z",
        "target": "projects/HOST_PROJECT_ID/locations/us-central1/imageImports/IMPORT_NAME",
        "verb": "create",
        "apiVersion": "v1",
        "@type": "type.googleapis.com/google.cloud.vmmigration.v1.OperationMetadata"
      }
    }
    
  2. Verifica si el trabajo de importación de imágenes se completó mediante un sondeo de la operación con el siguiente comando.

    GET https://vmmigration.googleapis.com/v1/projects/HOST_PROJECT_ID/locations/REGION_ID/operations/OPERATION_ID
    

    Reemplaza lo siguiente:

    • HOST_PROJECT_ID: Es el nombre del proyecto host desde el que migras la imagen de disco virtual.
    • REGION_ID: la región en la que deseas que se ejecute el proceso de importación de imágenes. La imagen se crea en la multirregión más cercana. Si deseas que la imagen se cree en una región, asegúrate de que singleRegionStorage esté configurado como verdadero. Para obtener una lista de las regiones admitidas, consulta Regiones y zonas.
    • OPERATION_ID: el ID de operación del trabajo de migración.

    Deberías ver una respuesta de finalización de operación similar a la siguiente respuesta de muestra.

      {
        "done": true,
        "name": "projects/HOST_PROJECT_ID/locations/REGION_ID/operations/OPERATION_ID",
        "response": {
          "@type": "type.googleapis.com/google.cloud.vmmigration.v1.ImageImport",
          "name": "projects/<HOST_PROJECT_ID>/locations/us-central1/imageImports/IMPORT_NAME",
          "cloudStorageUri": "SOURCE_FILE",
          "createTime": "2023-10-31T09:04:04.413664947Z",
          "diskImageTargetDefaults": {
            "imageName": "IMAGE_NAME",
            "targetProject": "projects/HOST_PROJECT_ID/locations/global/targetProjects/TARGET_PROJECT"
          },
          "recentImageImportJobs": [
            {
              "name": "projects/HOST_PROJECT_ID/locations/us-central1/imageImports/IMPORT_NAME/imageImportJobs/image-import-job",
              "diskImageTargetDetails": {
               "imageName": "IMAGE_NAME",
               "targetProject": "projects/HOST_PROJECT_ID/locations/global/targetProjects/TARGET_PROJECT"
            },
             "state": "PENDING"
           }
          ]
        },
        "metadata": {
          "createTime": "2023-10-31T09:04:04.416740716Z",
          "endTime": "2023-10-31T09:05:36.79987142Z",
          "target": "projects/HOST_PROJECT_ID/locations/us-central1/imageImports/IMPORT_NAME",
          "verb": "create",
          "apiVersion": "v1",
          "@type": "type.googleapis.com/google.cloud.vmmigration.v1.OperationMetadata"
        }
      }
    
  3. Supervisa el trabajo de importación de imágenes hasta que se complete con el siguiente comando.

    GET https://vmmigration.googleapis.com/v1/projects/HOST_PROJECT_ID/locations/REGION_ID/imageImports/IMPORT_NAME/imageImportJobs/image-import-job
    

    Reemplaza lo siguiente:

    • HOST_PROJECT_ID: Es el nombre del proyecto host desde el que migras la imagen de disco virtual.
    • REGION_ID: la región en la que deseas que se ejecute el proceso de importación de imágenes. La imagen se crea en la multirregión más cercana. Si deseas que la imagen se cree en una región, asegúrate de que singleRegionStorage esté configurado como verdadero. Para obtener una lista de las regiones admitidas, consulta Regiones y zonas.
    • IMPORT_NAME: el ID que representa el recurso de importación de imágenes. Cuando importas una imagen a Compute Engine, Migrate to Virtual Machines primero crea un recurso de importación de imágenes. El recurso de importación de imágenes representa el proceso de importación de imágenes. Puedes usar IMPORT_NAME para obtener el vínculo a la imagen que se importó como parte del proceso de importación de imágenes.

    Deberías ver una respuesta de finalización de trabajo similar a la siguiente respuesta de muestra.

    {
      "createTime":"2023-10-31T09:12:27.053788394Z",
      "createdResources":[
        "https://www.googleapis.com/compute/v1/projects/USER_PROJECT/global/images/IMAGE_NAME"
      ],
      "diskImageTargetDetails": {
        "imageName":"IMAGE_NAME",
        "targetProject":"projects/HOST_PROJECT_ID/locations/global/targetProjects/TARGET_PROJECT"
      },
      "endTime":"2023-10-31T09:16:50.224865783Z",
      "name":"projects/HOST_PROJECT_ID/locations/us-central1/imageImports/IMPORT_NAME/imageImportJobs/image-import-job",
      "state":"SUCCEEDED"
    }