Importa discos virtuales

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 admite la mayoría de los formatos de archivo de discos virtuales, incluidos VMDK y VHD.

Si exportaste tu disco desde Compute Engine, puedes crear imágenes desde el disco.

A fin de obtener información sobre cómo crear un sistema automatizado para migrar varias máquinas virtuales (VM), consulta la página sobre cómo migrar VM a Compute Engine.

Antes de comenzar

Habilita la API de Cloud Build

La herramienta de importación de dispositivos virtuales usa Cloud Build. Habilita el servicio Cloud Build en tu proyecto y otorga permisos a la cuenta de servicio de Cloud Build para crear y administrar recursos de procesamiento.

Console

  1. Habilita la API de Cloud Build.

    Habilitar la API de Cloud Build

    Cuando habilitas la API de Cloud Build desde Console, Compute Engine otorga las siguientes funciones a la cuenta de servicio de Cloud Build para que el servicio de Cloud Build pueda importar instancias a Compute Engine:

    • roles/iam.serviceAccountTokenCreator
    • roles/compute.admin
    • roles/iam.serviceAccountUser

    La herramienta de importación también usa la cuenta de servicio predeterminada de Compute Engine. De forma predeterminada, la cuenta de servicio de Compute Engine tiene la función de editor de proyectos de Cloud IAM. Si se quita esta función, es posible que el proceso de importación falle. Para volver a agregar la función a la cuenta de servicio, consulta la página sobre cómo otorgar acceso. Para obtener más información sobre la cuenta de servicio predeterminada de Compute Engine, consulta Cuenta de servicio predeterminada de Compute Engine.

gcloud

Para configurar el servicio Cloud Build mediante la herramienta de línea de comandos de gcloud, completa los siguientes pasos:

  1. Habilita Cloud Build.

    gcloud services enable cloudbuild.googleapis.com
    

    La herramienta de importación también usa la cuenta de servicio predeterminada de Compute Engine. De forma predeterminada, la cuenta de servicio de Compute Engine tiene la función de editor de proyectos de Cloud IAM. Si se quita esta función, es posible que el proceso de importación falle. Para volver a agregar la función a la cuenta de servicio, consulta la página sobre cómo otorgar acceso. Para obtener más información sobre la cuenta de servicio predeterminada de Compute Engine, consulta Cuenta de servicio predeterminada de Compute Engine.

  2. Agrega la función compute.admin a la cuenta de servicio para la API de Cloud Build.

    gcloud projects add-iam-policy-binding [PROJECT_ID] \
      --member serviceAccount:[PROJECT_NUM]@cloudbuild.gserviceaccount.com \
      --role roles/compute.admin
    
  3. Agrega la función iam.serviceAccountUser a la cuenta de servicio para la API de Cloud Build.

    gcloud projects add-iam-policy-binding [PROJECT_ID] \
      --member serviceAccount:[PROJECT_NUM]@cloudbuild.gserviceaccount.com \
      --role roles/iam.serviceAccountUser
    
  4. Agrega la función iam.serviceAccountTokenCreator a la cuenta de servicio para la API de Cloud Build.

    gcloud projects add-iam-policy-binding [PROJECT_ID] \
      --member serviceAccount:[PROJECT_NUM]@cloudbuild.gserviceaccount.com \
      --role roles/iam.serviceAccountTokenCreator
    

    en la que:

Sistemas operativos compatibles

Para que tus discos virtuales se puedan iniciar en Compute Engine, deben ejecutar uno de los siguientes sistemas operativos:

  • Sistemas operativos Linux:
    • CentOS 6, CentOS 7
    • Debian 8, Debian 9
    • Red Hat Enterprise Linux 6, Red Hat Enterprise Linux 7
    • Ubuntu 14.04 LTS, Ubuntu 16.04 LTS
  • Sistemas operativos Windows:
    • Windows Server 2008 R2
    • Windows Server 2012, Windows Server 2012 R2, Windows Server 2012 R2 Core
    • Windows Server 2016, Windows Server 2016 Core
    • Windows Server 2019, Windows Server 2019 Core
    • Windows 7 SP1 x64 (solo compatible con BYOL)
    • Windows 8 SP1 x64 (solo compatible con BYOL)
    • Windows 10 Enterprise x64 (solo compatible con BYOL)

Limitaciones

Esta función tiene las siguientes limitaciones:

  • Los discos virtuales de Linux deben usar grub como el bootloader.
  • Los bootloaders UEFI no son compatibles con Windows ni con Linux.
  • Los discos virtuales de Linux deben cumplir con los mismos requisitos que las imágenes de SO personalizadas, incluida la compatibilidad con dispositivos del controlador de almacenamiento Virtio-SCSI.
  • Cuando se instala en discos virtuales de Windows, el software incluido en la lista blanca de aplicaciones, como Cb Protection de Carbon Black, puede hacer que el proceso de importación falle. Es posible que debas desinstalar el software antes de la importación.
  • Si importas un disco virtual que ejecuta RHEL, se admite el modelo Usa tu propia licencia (BYOL) solo si se instala el paquete python-boto en el disco virtual antes de la importación.
  • Los sistemas operativos en discos virtuales deben ser compatibles con ACPI.

Permisos

La herramienta de importación de imágenes realiza varios pasos cuando importas un archivo de disco virtual, incluida la carga del archivo a Cloud Storage, la creación de un depósito nuevo, si es necesario, la descarga del archivo a Compute Engine y la creación de una imagen en Compute Engine desde el archivo del disco. Este proceso se realiza de forma automática. Para tener una experiencia perfecta cuando uses esta función, Google recomienda que tengas las siguientes funciones en tu proyecto:

  • roles/storage.admin
  • roles/viewer
  • roles/resourcemanager.projectIamAdmin

Importa discos virtuales

Verifica la compatibilidad

Antes de intentar importar el disco para tu VM, descarga y ejecuta la herramienta de verificación previa dentro de la VM. La herramienta de verificación previa busca cualquier problema de compatibilidad que pueda provocar que el proceso de importación falle o que el disco no funcione de forma adecuada en Compute Engine.

Importa un disco virtual que se pueda iniciar

Console

  1. En Google Cloud Platform Console, sube el archivo de disco virtual a Cloud Storage.
  2. Ve a la página Crear una imagen.

    Ir a la página Crear una imagen

  3. Especifica un Nombre para tu imagen.
  4. En Fuente, selecciona Disco virtual (VMDK, VHD, etcétera).
  5. Busca o ingresa de forma manual la ubicación de almacenamiento para el archivo de Cloud Storage.
  6. Selecciona el sistema operativo que está disponible en el disco importado. También puedes realizar los siguientes cambios:

    • Puedes elegir Instalar paquetes de invitado. Google recomienda que instales el entorno invitado. Para obtener más información sobre el entorno invitado, consulta Entorno del invitado.

    • Para los sistemas operativos Windows o Red Hat Enterprise Linux (RHEL), puedes elegir una opción de licencia. Puedes permitir que Compute Engine proporcione una licencia o usar tu propia licencia. Para obtener más información sobre cómo usar tu propia licencia en Windows, consulta Usa tu propia licencia.

  7. Especifica propiedades adicionales para tu imagen (opcional). Por ejemplo, puedes organizar esta imagen como parte de una familia de imágenes.

  8. Haz clic en Crear para importar la imagen.

gcloud

Usa el comando gcloud compute images import para crear una imagen de Compute Engine que se pueda iniciar. Aunque Compute Engine puede iniciar la mayoría de las imágenes de disco de arranque, el comando import asegura que el disco tenga los controladores necesarios y los últimos paquetes de entorno invitado, que son necesarios para iniciar una instancia y conectarse a ella mediante SSH o RDP.

Puedes importar archivos de discos virtuales desde un depósito de Cloud Storage o desde tu estación de trabajo local.

Si importas el archivo de disco virtual desde tu estación de trabajo, la herramienta de importación sube el archivo a un depósito de Cloud Storage de forma automática.

Si lo prefieres, puedes subir el archivo de disco virtual a Cloud Storage de forma manual antes de comenzar con el proceso de importación. Sin embargo, debes subir el archivo a un depósito de almacenamiento que se encuentre en el mismo proyecto que se usará para el proceso de importación.

gcloud beta compute images import [IMAGE_NAME] \
    --source-file [SOURCE_FILE] \
    --os [OS]

En este comando, se muestra lo siguiente:

  • [IMAGE_NAME] es el nombre de tu imagen de destino.
  • [SOURCE_FILE] es un archivo de disco virtual. Puede ser un archivo local o un archivo almacenado en Cloud Storage. Si tu disco virtual es un archivo local, puedes proporcionar una ruta absoluta o relativa. Si tu archivo de disco virtual ya se almacenó en Cloud Storage, debe existir en un depósito de almacenamiento en el proyecto que se usa para el proceso de importación. Además, debes especificar la ruta completa del archivo en el formato gs://[BUCKET_NAME]/[OBJECT_NAME].
  • [OS] es el sistema operativo del SOURCE_FILE. Debe ser uno de: centos-6, centos-7, debian-8, debian-9, rhel-6, rhel-7, ubuntu-1404, ubuntu-1604, windows-2008r2, windows-2012, windows-2012r2, windows-2016, windows-2019 o una imagen con licencia de BYOL.

    Asistencia para Usa tu propia licencia (Beta)

    De forma predeterminada, los discos virtuales que usan los sistemas operativos Windows Server y Red Hat Enterprise Linux (RHEL) se importan y se configuran como imágenes de SO premium que generan costos adicionales.

    • Si deseas usar tus propias suscripciones a software de RHEL, puedes importar los discos como imágenes con licencia de Usa tu propia licencia (BYOL) mediante la especificación de uno de los siguientes valores de BYOL en el campo [OS]:

      • rhel-6-byol
      • rhel-7-byol
    • Si deseas usar tu propia licencia para Windows, puedes importar los discos como imágenes con licencia de BYOL mediante la especificación de uno de los siguientes valores de BYOL en el campo [OS]:

      • windows-2008r2-byol
      • windows-2012-byol
      • windows-2012r2-byol
      • windows-2016-byol
      • windows-2019-byol
      • windows-7-byol
      • windows-8-1-x64-byol
      • windows-10-byol

Si especificas un archivo local, la operación de carga puede tardar mucho tiempo en función del tamaño del disco virtual y la velocidad de la conexión de red. La importación puede tardar varios minutos en ejecutarse en función del tamaño del disco.

Comando de muestra

En el siguiente ejemplo, se importa un disco virtual debian-9 llamado your_server.vmdk y almacenado en gs://your_gcs_bucket.

gcloud beta compute images import my-imported-image \
    --source-file gs://your_gcs_bucket/your_server.vmdk \
    --os debian-9

Parámetros opcionales

De forma predeterminada, se agregan paquetes de entorno invitado a todas las imágenes de disco de arranque importadas. Si no deseas estos paquetes, agrega la marca --no-guest-environment a tu comando de importación.

Importa un disco virtual que no se pueda iniciar

Console

  1. En Google Cloud Platform Console, sube el archivo de disco virtual a Cloud Storage.
  2. Ve a la página Crear una imagen

    Ir a la página Crear una imagen

  3. Especifica un Nombre para tu imagen.
  4. En Fuente, selecciona Disco virtual (VMDK, VHD, etcétera).
  5. Busca o ingresa de forma manual la ubicación de almacenamiento para el archivo de Cloud Storage.
  6. En el sistema operativo, selecciona No hay sistema operativo. Solo datos.
  7. Especifica propiedades adicionales para tu imagen (opcional). Por ejemplo, puedes organizar esta imagen como parte de una familia de imágenes.
  8. Haz clic en Crear para importar la imagen.

gcloud

Puedes usar el comando gcloud compute images import para crear una imagen de Compute Engine que no se pueda iniciar. Si el disco virtual no contiene un sistema operativo instalado que se pueda iniciar, puedes importarlo con la marca --data-disk, en lugar de la marca --os. De esta forma, se omite el paso de instalación de controladores y paquetes de entorno invitado que hacen que la imagen se pueda iniciar en Compute Engine.

gcloud compute images import [IMAGE_NAME] \
    --source-file [SOURCE_FILE] \
    --data-disk

En este comando, se muestra lo siguiente:

  • [IMAGE_NAME] es el nombre de tu imagen de destino.
  • [SOURCE_FILE] es un archivo de disco virtual. Puede ser un archivo local o un archivo almacenado en Cloud Storage. Si el archivo del disco virtual es local, puedes usar una ruta de acceso absoluta o relativa. Si tu archivo de disco virtual ya se almacenó en Cloud Storage, debe existir en un depósito de almacenamiento en el proyecto que se usa para el proceso de importación. Además, debes especificar la ruta completa del archivo en el formato gs://[BUCKET_NAME]/[OBJECT_NAME].

Comando de muestra

En el siguiente ejemplo, se importa un disco virtual llamado your_disk.vmdk y almacenado en gs://your_gcs_bucket.

gcloud compute images import my-imported-image \
    --source-file gs://your_gcs_bucket/your_disk.vmdk \
    --data-disk

Convierte una imagen personalizada en una imagen de inicio

Si tienes una imagen personalizada de Compute Engine que contiene un sistema operativo que se puede iniciar, pero que no tiene los controladores o los paquetes de entorno invitado necesarios de Compute Engine, puedes usar la herramienta de importación de imágenes para hacer que la imagen se pueda iniciar en Compute Engine.

Usa la marca --source-image a fin de especificar una imagen personalizada para que se pueda iniciar, en lugar de usar la marca --source-file, que especifica un disco nuevo que se importará.

gcloud compute images import [IMAGE_NAME] \
    --source-image [SOURCE_IMAGE] \
    --os [OS]

En este comando, se muestra lo siguiente:

  • [IMAGE_NAME] es el nombre de tu imagen de destino.
  • [SOURCE_IMAGE] es el nombre de la imagen de origen.
  • [OS] es el sistema operativo de la SOURCE_IMAGE. Debe ser uno de los siguientes: centos-6, centos-7, debian-8, debian-9, rhel-6, rhel-7, ubuntu-1404, ubuntu-1604, windows-2008r2, windows-2012, windows-2012r2, windows-2016, windows-2019 o una imagen con licencia de BYOL.

Asistencia para Usa tu propia licencia

  • Si usas tus propias suscripciones a software de RHEL, puedes hacer que la imagen con licencia de Usa tu propia licencia (BYOL) se pueda iniciar mediante la especificación de uno de los siguientes valores de BYOL en el campo [OS]:

    • rhel-6-byol
    • rhel-7-byol
  • Si usas una imagen de usa tu propia licencia para Windows, puedes hacer que la imagen con licencia de BYOL se pueda iniciar mediante la especificación de uno de los siguientes valores de BYOL en el campo [OS]:

    • windows-2008r2-byol
    • windows-2012-byol
    • windows-2012r2-byol
    • windows-2016-byol
    • windows-2019-byol
    • windows-7-byol
    • windows-8-1-x64-byol
    • windows-10-byol

Comando de muestra

En el siguiente ejemplo, se convierte una imagen de Compute Engine llamada my-image en una imagen que se puede iniciar denominada my-bootable-image. En este ejemplo, el sistema operativo instalado en la imagen es Ubuntu 16.04.

gcloud compute images import my-bootable-image --source-image=my-image --os=ubuntu-1604

Limpia los recursos

Los archivos almacenados en Cloud Storage y las imágenes de Compute Engine generan costos. La herramienta de importación importa el archivo del disco virtual a Cloud Storage y crea una imagen personalizada de Compute Engine.

Una vez que verifiques que la imagen se importó de forma correcta y que se inicia sin problemas como una instancia de Compute Engine, puedes borrar el archivo del disco virtual de Cloud Storage. La herramienta muestra el URI del archivo mientras se sube a Cloud Storage. Este URI tiene el siguiente formato: gs://<bucket name>/tmpimage/<image name>.

Si importaste una imagen mediante la marca --data-disk y, luego, ejecutaste la herramienta de import por segunda vez con la marca --source-image para hacer que la imagen se pueda iniciar, la primera imagen seguirá existiendo. Si no la necesitas, puedes borrarla. Si especificas el mismo nombre de imagen para los parámetros [IMAGE_NAME] y [SOURCE_IMAGE], la imagen se reemplaza de forma automática y no se requiere otra limpieza.

Próximos pasos

¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...

Documentación de Compute Engine