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
- Habilite la API de migración de VM en su proyecto. Para obtener más información sobre cómo habilitar la API de migración de VM, consulte Habilitar servicios de migración a máquinas virtuales .
- Asegúrese de que el sistema operativo del disco sea compatible con Migrar a máquinas virtuales. Para obtener más información, consulte Sistemas operativos compatibles .
- Asegúrese de que los archivos de imagen de disco virtual que desea importar sean compatibles .
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:
- Prepare un archivo de imagen de disco virtual para importar
- Elija un proyecto objetivo
- 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.
- 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 - Seleccione la pestaña Importaciones de imágenes .
- Haga clic en Crear imagen .
- 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 prefijogs://
.
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 . Cifrado Google-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. - 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 formatogs://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 quesingleRegionStorage
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.
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 quesingleRegionStorage
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 utilizarIMPORT_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 delTargetProject
. 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 lasstorageLocations
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" } }
-
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 quesingleRegionStorage
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" } }
-
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 quesingleRegionStorage
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 utilizarIMPORT_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" }
-