Importar discos virtuales


Si tienes discos virtuales en tu entorno local con el software y las configuraciones que necesitas (a veces denominados discos dorados o imágenes doradas ), puedes ahorrar tiempo importando esos discos virtuales a Compute Engine y usando la imagen resultante para crear máquinas virtuales . La herramienta de importación Migrar a máquinas virtuales admite la mayoría de los formatos de archivos de discos virtuales, incluidos VMDK y VHD.

Antes de comenzar

Formatos soportados

Puede importar archivos de imagen de disco virtual en los siguientes formatos usando Migrar a máquinas virtuales:

  • Un único disco de máquina virtual (VMDK): opción recomendada, los archivos VMDK se importan más rápido
  • Copia en escritura QEMU (QCOW)
  • Copia en escritura QEMU 2 (QCOW2)
  • Formato de disco mejorado QEMU (QED)
  • VPC
  • Imagen de disco virtual (VDI)
  • Disco duro virtual v2 (VHDX)
  • Disco duro virtual (VHD)

Además de estos formatos, también se admite un archivo sin formato comprimido como .tar.gz . Asegúrese de que el archivo comprimido contenga un único archivo llamado disk.raw .

Limitaciones

Puede importar imágenes de disco con arquitectura Arm a las siguientes regiones:

Descripción de la región Nombre de la región
Jurong West, Singapur asia-southeast1
Tokio, Japón asia-northeast1
Saint-Ghislain, Bélgica europe-west1
Londres, Inglaterra europe-west2
Fráncfort, Alemania europe-west3
Eemshaven, Países Bajos europe-west4
París, Francia europe-west9
Damman, Arabia Saudita me-central2
Iowa, América del Norte us-central1
Carolina del Sur, América del Norte us-east1
Virginia, América del Norte us-east4
Oregón, América del Norte us-west1
Nevada, América del Norte us-west4

Proceso de importación de imágenes

Para importar una imagen de disco virtual a una imagen de Compute Engine usando Migrar a máquinas virtuales, siga los siguientes pasos:

  1. Prepare un archivo de imagen de disco virtual para importar
  2. Elija un proyecto objetivo
  3. Importar una imagen de disco virtual a Compute Engine

Prepare un archivo de disco virtual para importar

Para importar una imagen de disco virtual a una imagen de Compute Engine, primero debe preparar el archivo de imagen del disco virtual para importar. Las siguientes secciones analizan estas tareas en detalle.

Agregue el archivo de imagen del disco virtual a Cloud Storage

Para importar una imagen de disco virtual a una imagen de Compute Engine, primero debe agregar el archivo de imagen del disco virtual a Cloud Storage. Para obtener más información, consulte Cargar objetos desde un sistema de archivos . Para obtener un mejor rendimiento, le recomendamos que cargue el archivo de imagen del disco virtual en un depósito en la misma región de la nube en la que desea crear la imagen.

Conceder los permisos necesarios

Para importar una imagen de disco virtual a una imagen de Compute Engine, otorgue permisos como se describe en la siguiente tabla.

Role Permisos requeridos Descripción
Visor de objetos de almacenamiento roles/storage.objectViewer Otorgue a la cuenta de servicio predeterminada Migrar a máquinas virtuales en el proyecto host ( service- HOST_PROJECT_NUMBER @gcp-sa-vmmigration.iam.gserviceaccount.com ) la función roles/storage.objectViewer en el depósito donde reside la imagen que desea importar. Este permiso permite a Migrar a máquinas virtuales acceder a la imagen de origen.
Administrador de migración de VM roles/vmmigration.admin En el proyecto host, otorgue a la cuenta de usuario que desea usar para importar la imagen de origen la función roles/vmmigration.admin .
Cuenta de servicio de migración de VM roles/vmmigration.serviceAgent Otorgue a la cuenta de servicio predeterminada Migrar a máquinas virtuales en el proyecto host ( service- HOST_PROJECT_NUMBER @gcp-sa-vmmigration.iam.gserviceaccount.com ) el rol roles/vmmigration.serviceAgent en el proyecto de destino. Por ejemplo, si service-1234567890@gcp-sa-vmmigration.iam.gserviceaccount.com es la cuenta de servicio Migrar a máquinas virtuales en el proyecto host, debe otorgarle a esta cuenta de servicio el rol roles/vmmigration.serviceAgent para poder crear la imagen en el proyecto de destino.

Elija un proyecto objetivo

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

Importar una imagen de disco virtual a Compute Engine

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

Consola

Para importar una imagen de disco virtual a Compute Engine usando la consola de Google Cloud, siga los siguientes pasos.

  1. Abra la página Migrar a máquinas virtuales en la consola de Google Cloud.
    Vaya a la página Migrar a máquinas virtuales
  2. Seleccione la pestaña Importaciones de imágenes .
  3. Haga clic en Crear imagen .
  4. Definir las características de la imagen. La siguiente tabla enumera los parámetros que puede configurar para su imagen.
    Título de la sección Nombre del campo Descripción
    General Nombre El nombre de la imagen que desea crear. Para obtener más información sobre las reglas de nomenclatura, consulte Convención de nomenclatura .
    ID de importación de 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. Puede utilizar el ID de importación de imagen para obtener el enlace a la imagen que se importó como parte del proceso de importación de imágenes.
    Archivo de almacenamiento en la nube de origen El archivo desde el que desea importar la imagen. Haga clic en Examinar para ver la lista de depósitos en su proyecto actual y seleccione el archivo desde el cual desea importar la imagen.
    Si desea importar una imagen de un depósito de otro proyecto, debe ingresar la ruta en el formato depósito/carpeta/archivo . Para obtener la ruta de un objeto dentro de un depósito, consulte Ver metadatos del objeto . Cuando copie la ruta, asegúrese de no copiar el prefijo gs:// .
    Tenga en cuenta que sólo puede importar imágenes desde archivos .vmdk y .tar.gz .
    Región La región en la que desea crear la imagen. Para obtener una lista de regiones admitidas, consulte Regiones y zonas .
    Proyecto objetivo El proyecto de destino en el que desea crear la imagen. Si aún no ha agregado un proyecto de destino, hágalo siguiendo las instrucciones proporcionadas en Agregar un proyecto de destino .
    Familia (Opcional) Seleccione la familia de imágenes. Compute Engine 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, consulte Familias de imágenes públicas .
    Descripción (Opcional) Agregue una descripción para la imagen.
    Saltar adaptación del sistema operativo Para omitir la adaptación del sistema operativo, haga clic en el botón Omitir adaptación del sistema operativo a la posición de encendido.
    Para funcionar correctamente en Google Cloud, las máquinas virtuales creadas a partir de imágenes importadas requieren que se realicen cambios en su configuración. Estos cambios se conocen como adaptaciones del sistema operativo . Migrar a máquinas virtuales realiza adaptaciones del sistema operativo automáticamente en el proceso de importación de imágenes. Para obtener más información, consulte Adaptar instancias de VM para que se ejecuten en Google Cloud .
    Generalizar Para generalizar la imagen, haga clic en el botón Generalizar a la posición de encendido. Cuando crea una instancia a partir de una imagen, Windows agrega información única a la instancia. Generalizar es un proceso que elimina esta información para que pueda crear varias instancias a partir de la misma imagen.
    Licencias Tipo de licencia Compute Engine admite licencias de pago por uso (PAYG) y trae tus propias licencias (BYOL) para tus máquinas virtuales implementadas. El tipo de licencia predeterminado para una máquina virtual migrada lo asigna Migrar a máquinas virtuales según el sistema operativo migrado, como se describe en Sistemas operativos compatibles .
    Si su sistema operativo admite varios tipos de licencia, puede anular el tipo de licencia predeterminado para especificar explícitamente un tipo de licencia PAYG o BYOL.
    Licencias adicionales Licencias adicionales Puede agregar hasta 10 licencias adicionales a la instancia de VM creada a partir de la imagen importada usando un formato de URL válido. Por ejemplo, puede agregar licencias adicionales utilizando el siguiente formato de URL:
    https://www.googleapis.com/compute/beta/projects/windows-sql-cloud/global/licenses/sql-server-2012-enterprise
    Etiquetas Para organizar su proyecto, agregue etiquetas como pares clave-valor a sus recursos. Consulte Organizar recursos mediante etiquetas .
    CifradoGoogle-managed encryption key Elija esta opción para usar Google-owned and Google-managed encryption keys para cifrar sus datos durante el proceso de importación. Para obtener más información, consulte cifra los datos cuando están en reposo .
    Clave de cifrado administrada por el cliente Elija esta opción para utilizar claves de cifrado administradas por el cliente (CMEK) para cifrar sus datos durante el proceso de importación y los datos de la imagen creada durante el proceso de importación. Si tiene requisitos normativos o de cumplimiento específicos relacionados con las claves que protegen sus datos, puede usar CMEK para cifrar y descifrar sus datos. Estas claves de cifrado son creadas, administradas y de su propiedad. Para obtener más información, consulte Proteger recursos mediante claves de Cloud KMS .
    Cuando agrega una CMEK, debe otorgar permisos como se describe en la siguiente tabla.
    Role Permisos requeridos Descripción
    Cuenta de servicio de migración de VM a la nube roles/vmmigration.serviceAgen Otorgue este permiso a la cuenta de servicio de Compute Engine para cifrar los datos de la imagen creada durante el proceso de importación.
    Agente de servicio de Compute Engine roles/compute.serviceAgent Otorgue este permiso al agente del servicio Migrar a máquinas virtuales para cifrar los datos durante el proceso de importación.
  5. Seleccione Crear .

nube de gcloud

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

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

Reemplace lo siguiente:

  • IMAGE_NAME : el nombre de la imagen que deseas crear. Para obtener más información sobre las reglas de nomenclatura, consulte Convención de nomenclatura .
  • SOURCE_FILE : el archivo desde el que desea importar la imagen. Ingrese la ruta en el formato gs://bucket/folder/file . Para obtener la ruta de un objeto dentro de un depósito, consulte Ver metadatos del objeto . Tenga en cuenta que sólo puede importar imágenes desde archivos .vmdk y .tar.gz .
  • REGION_ID : la región en la que desea que se ejecute el proceso de importación de imágenes. La imagen se crea en la multirregión más cercana. Si desea que la imagen se cree en una región, asegúrese de que singleRegionStorage esté configurado en verdadero. Para obtener una lista de regiones admitidas, consulte Regiones y zonas .
  • HOST_PROJECT_ID : el nombre del proyecto host desde el que desea migrar la imagen del disco virtual.
  • TARGET_PROJECT : el proyecto de destino en el que desea crear la imagen. Si aún no ha agregado un proyecto de destino, hágalo siguiendo las instrucciones proporcionadas en Agregar un proyecto de destino .

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

DESCANSAR

Para importar una imagen de disco virtual a Compute Engine usando la API REST, siga los siguientes pasos.

  1. Cree 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",
    ...
    }
    }
    

    Reemplace lo siguiente:

    • HOST_PROJECT_ID : el nombre del proyecto host desde el que desea migrar la imagen del disco virtual.
    • REGION_ID : la región en la que desea que se ejecute el proceso de importación de imágenes. La imagen se crea en la multirregión más cercana. Si desea que la imagen se cree en una región, asegúrese de que singleRegionStorage esté configurado en verdadero. Para obtener una lista de regiones admitidas, consulte Regiones y zonas .
    • SOURCE_FILE : el archivo desde el que desea importar la imagen. Ingrese la ruta en el formato gs://bucket/carpeta/archivo . Para obtener la ruta de un objeto dentro de un depósito, consulte Ver metadatos del objeto . Tenga en cuenta que sólo puede importar imágenes desde 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 nomenclatura, consulte Convención de nomenclatura .
    • TARGET_PROJECT : el proyecto de destino en el que desea crear la imagen. Si aún no ha agregado un proyecto de destino, hágalo siguiendo las instrucciones proporcionadas en Agregar 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, Migrar a máquinas virtuales crea primero 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. Puede utilizar IMPORT_NAME para obtener el enlace a la imagen que se importó como parte del proceso de importación de imágenes.

    Consulte la siguiente tabla para obtener la lista completa de campos admitidos para la creación de importación de imágenes.

    Nombre del campo Descripción
    cloudStorageUri cadena
    La ruta del archivo desde el que desea importar la imagen. Ingrese la ruta en el formato gs://bucket/carpeta/archivo . Para obtener la ruta de un objeto dentro de un depósito, consulte Ver metadatos del objeto .
    Tenga en cuenta que sólo puede importar imágenes desde archivos .vmdk y .tar.gz .
    diskImageTargetDefaults.targetProject cadena
    La ruta del TargetProject . El proyecto de destino en el que desea crear la imagen. Para obtener más información, consulte la referencia de API del proyecto de destino . Por ejemplo,
    projects/ HOST_PROJECT_ID /locations/global/targetProjects/ TARGET_PROJECT
    En el ejemplo, reemplace lo siguiente:
    • HOST_PROJECT_ID : el nombre del proyecto host desde el que desea migrar la imagen del disco virtual.
    • TARGET_PROJECT : el proyecto de destino en el que desea crear la imagen.
    diskImageTargetDefaults.imageName cadena
    El nombre de la imagen que se creará. Para obtener más información sobre las reglas de nomenclatura, consulte convención de nomenclatura de recursos .
    diskImageTargetDefaults.description cadena
    (Opcional) Una descripción de la imagen.
    diskImageTargetDefaults.familyName cadena
    (Opcional) Seleccione la familia de imágenes. Compute Engine 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, puede agrupar un conjunto de imágenes como una familia de imágenes. Para obtener más información, consulte Familias de imágenes públicas . Para obtener más información, consulte Familias de imágenes públicas .
    diskImageTargetDefaults.labels mapa (clave: cadena, valor: cadena)
    Para organizar su proyecto, agregue etiquetas como pares clave-valor a sus recursos. Consulte Recursos de etiquetado .
    diskImageTargetDefaults.additionalLicenses cadena[]
    Puede agregar hasta 10 licencias adicionales a la instancia de VM creada a partir de la imagen importada usando un formato de URL válido. Por ejemplo, puede agregar licencias adicionales utilizando el siguiente formato de URL:
    https://www.googleapis.com/compute/beta/projects/windows-sql-cloud/global/licenses/sql-server-2012-enterprise
    diskImageTargetDefaults.singleRegionStorage booleano
    Establezca esta bandera en verdadero si desea que las storageLocations imágenes sean una región. Si establece esta bandera en falso, se selecciona la multiregión más cercana.
    diskImageTargetDefaults.dataDiskImageImport booleano
    Establezca este indicador en verdadero si desea omitir la adaptación del sistema operativo.
    Para funcionar correctamente en Google Cloud, las máquinas virtuales creadas a partir de imágenes importadas requieren que se realicen cambios en su configuración. Estos cambios se conocen como adaptaciones del sistema operativo . Migrar a máquinas virtuales realiza adaptaciones del sistema operativo automáticamente en el proceso de importación de imágenes. Para obtener más información, consulte Adaptar instancias de VM para ejecutarlas Google Cloud .
    diskImageTargetDefaults.osAdaptationParameters.licenseType cadena
    El tipo de licencia que desea utilizar para su imagen. Compute Engine admite licencias de pago por uso (PAYG) y trae tus propias licencias (BYOL) para tus máquinas virtuales implementadas. El tipo de licencia predeterminado para una máquina virtual migrada lo asigna Migrar a máquinas virtuales según el sistema operativo migrado, como se describe en Sistemas operativos compatibles .
    Si su sistema operativo admite varios tipos de licencia, puede anular el tipo de licencia predeterminado para especificar explícitamente un tipo de licencia PAYG o BYOL.
    diskImageTargetDefaults.osAdaptationParameters.generalize booleano
    Establezca esta bandera en verdadero si desea generalizar la imagen.
    Cuando crea una instancia a partir de una imagen, Windows agrega información única a la instancia. Generalizar es un proceso que elimina esta información para que pueda crear varias instancias a partir de la misma imagen.
    diskImageTargetDefaults.encryption cadena
    El Google-owned and Google-managed encryption key que desea utilizar para cifrar sus datos durante el proceso de importación. Para obtener más información, consulte cifra los datos cuando están en reposo .
    encryption cadena
    Elija esta opción para utilizar claves de cifrado administradas por el cliente (CMEK) para cifrar sus datos durante el proceso de importación y los datos de la imagen creada durante el proceso de importación. Si tiene requisitos normativos o de cumplimiento específicos relacionados con las claves que protegen sus datos, puede usar CMEK para cifrar y descifrar sus datos. Estas claves de cifrado son creadas, administradas y de su propiedad. Para obtener más información, consulte Proteger recursos mediante claves de Cloud KMS .
    Cuando agrega una CMEK, debe otorgar permisos como se describe en la siguiente tabla.
    Role Permisos requeridos Descripción
    Cuenta de servicio de migración de VM a la nube roles/vmmigration.serviceAgent Otorgue este permiso a la cuenta de servicio de Compute Engine para cifrar los datos de la imagen creada durante el proceso de importación.
    Agente de servicio de Compute Engine roles/compute.serviceAgent Otorgue este permiso al agente del servicio Migrar a máquinas virtuales para cifrar los datos durante el proceso de importación.

    Debería ver una respuesta similar a la siguiente respuesta de ejemplo.

    {
      "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. Compruebe si el trabajo de importación de imágenes está completo sondeando la operación con el siguiente comando.

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

    Reemplace lo siguiente:

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

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

      {
        "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. Supervise el trabajo de importación de imágenes para completarlo utilizando el siguiente comando.

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

    Reemplace lo siguiente:

    • HOST_PROJECT_ID : el nombre del proyecto host desde el que está migrando la imagen del disco virtual.
    • REGION_ID : la región en la que desea que se ejecute el proceso de importación de imágenes. La imagen se crea en la multirregión más cercana. Si desea que la imagen se cree en una región, asegúrese de que singleRegionStorage esté configurado en verdadero. Para obtener una lista de regiones admitidas, consulte Regiones y zonas .
    • IMPORT_NAME : el ID que representa el recurso de importación de imágenes. Cuando importas una imagen a Compute Engine, Migrar a máquinas virtuales crea primero 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. Puede utilizar IMPORT_NAME para obtener el enlace a la imagen que se importó como parte del proceso de importación de imágenes.

    Debería ver una respuesta de finalización del trabajo similar a la siguiente respuesta de ejemplo.

    {
      "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"
    }