Si tienes discos virtuales en tu entorno local con el software y las opciones de configuración que necesitas (a veces llamados discos dorados o imágenes doradas), puedes ahorrar tiempo si los importas en Compute Engine y usas la imagen resultante para crear máquinas virtuales. La herramienta de importación Migrate to Virtual Machines admite la mayoría de los formatos de archivo de discos virtuales, incluidos VMDK y VHD.
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 sean compatibles.
Formatos admitidos
Puedes importar archivos de imagen de disco virtual en los siguientes formatos mediante Migrate to Virtual Machines:
- Disco de máquina virtual (VMDK): Opción recomendada, los archivos VMDK se importan más rápido
- Copia en escritura de QEMU (QCOW)
- Copia en escritura de QEMU 2 (QCOW2)
- Formato de disco mejorado de 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 procesar comprimido como .tar.gz. Asegúrate de que el archivo comprimido contenga 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:
- Prepara un archivo de imagen de disco virtual para la importación
- Elige un proyecto de destino
- 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 la importación. 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 la 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 permisos como se describe en la siguiente tabla.
Rol | Permisos necesarios | Descripción |
---|---|---|
Visualizador de objetos de almacenamiento | roles/storage.objectViewer |
Otorga a la cuenta de servicio predeterminada de Migrate to Virtual Machines en el proyecto
host (service-HOST_PROJECT_NUMBER@gcp-sa-vmmigration.iam.gserviceaccount.com ) el rol roles/vmmigration.serviceAgent en el bucket en el que
reside la imagen que deseas importar. Este permiso permite que Migrate to Virtual Machines acceda a la imagen de origen. |
Administrador de VM Migration | roles/vmmigration.admin |
En el proyecto host, otorga el rol roles/vmmigration.admin a la cuenta de usuario que deseas usar para importar la imagen de origen. |
Cuenta de servicio de VM Migration | roles/vmmigration.serviceAgent |
Otórgale el rol roles/vmmigration.serviceAgent a la cuenta de servicio predeterminada de Migrate to Virtual Machines en el proyecto
host (service-HOST_PROJECT_NUMBER@gcp-sa-vmmigration.iam.gserviceaccount.com ) en el proyecto
de destino. Por ejemplo, si service-1234567890@gcp-sa-vmmigration.iam.gserviceaccount.com es la cuenta de servicio de Migrate to Virtual Machines en el proyecto host, debes otorgar a esta cuenta de servicio el rol roles/vmmigration.serviceAgent para poder crear la imagen 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 para 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 con la consola de Google Cloud, sigue estos pasos:
- Abre la página Migrate to Virtual Machines en la consola de Google Cloud.
Ve a la página Migrate to Virtual Machines. - Selecciona la pestaña Importaciones de imágenes.
- Haz clic en Create Image (Crear imagen).
- 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 la Convención de nombres. ID de importación de la imagen 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 con el formato bucket/folder/file. Para obtener la ruta de acceso de un objeto dentro de un bucket, consulta Visualiza metadatos de objetos. Cuando copies la ruta de acceso, asegúrate de no copiar el prefijogs://
.
Ten en cuenta que solo puedes importar imágenes de archivos.vmdk
y.tar.gz
.Región La región en la que deseas crear la imagen. Para obtener una lista de las regiones compatibles, 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). 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, 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 de activación Omitir 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.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 agrega información única a la instancia. 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 recursos mediante 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 Cloud VM Migration roles/vmmigration.serviceAgen
Otorga este permiso a la cuenta de servicio de Compute Engine para encriptar los datos de la imagen creada 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. - Seleccione Crear.
gcloud
Para importar una imagen de disco virtual a Compute Engine mediante Google Cloud CLI, usa 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
Reemplaza lo siguiente:
IMAGE_NAME
: el nombre de la imagen que deseas crear. Para obtener más información sobre las reglas de nombres, consulta la Convención de nombres.SOURCE_FILE
: el archivo desde el que deseas importar la imagen. Ingresa la ruta de acceso con el formatogs://bucket/folder/file
. Para obtener la ruta de acceso 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
.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 quesingleRegionStorage
esté configurado como verdadero. Para obtener una lista de las regiones admitidas, consulta Regiones y zonas.HOST_PROJECT_ID
: el nombre del proyecto host desde el que deseas migrar la imagen de disco virtual.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 migration vms image-imports
.
REST
Para importar una imagen de disco virtual a Compute Engine con la API de REST, sigue estos pasos:
Crea un recurso de importación de imágenes con 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 quesingleRegionStorage
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 acceso 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 la 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 usarIMPORT_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 obtener la lista completa de los campos admitidos de campos de solicitud 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 acceso de un objeto dentro de un bucket, consulta Visualiza los metadatos de objetos.
Ten en cuenta que solo puedes importar imágenes de archivos.vmdk
y.tar.gz
.diskImageTargetDefaults.targetProject
string
La ruta de acceso delTargetProject
. 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
: 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 imagenstorageLocations
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 agrega información única a la instancia. 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 Cloud VM Migration roles/vmmigration.serviceAgent Otorga este permiso a la cuenta de servicio de Compute Engine para encriptar los datos de la imagen creada 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 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" } }
Para verificar si el trabajo de importación de imágenes se completó, sondea la operación mediante 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
: 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 quesingleRegionStorage
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 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" } }
Supervisa el trabajo de importación de imágenes para completarlo 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
: 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 quesingleRegionStorage
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 usarIMPORT_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" }