Importar discos virtuales

En este documento se describen los pasos para importar imágenes de disco de máquinas virtuales (VMs) a Google Distributed Cloud (GDC) con aislamiento físico.

Importa tus discos virtuales, a menudo denominados discos de referencia o imágenes de referencia, a Distributed Cloud para ahorrar tiempo y utiliza la imagen resultante para crear máquinas virtuales. La herramienta de importación admite los formatos de imagen RAW y QCOW.

Este documento está dirigido a los desarrolladores de grupos de administradores de plataformas u operadores de aplicaciones que crean imágenes de VM. Para obtener más información, consulta Audiencias de la documentación aislada de GDC.

Antes de empezar

Antes de continuar, asegúrate de que tienes lo siguiente:

  • La CLI de gdcloud se ha descargado, instalado y configurado. Todos los comandos de la CLI de GDC usan la CLI gdcloud o kubectl y requieren un entorno de sistema operativo (SO).

Solicitar permisos y acceso

Para importar imágenes y realizar las operaciones de VM que se indican en esta página, pide al administrador de IAM del proyecto que te conceda los siguientes roles de IAM en el espacio de nombres del proyecto en el que reside la VM:

  • Administrador de VirtualMachine de proyectos (project-vm-admin): gestiona las VMs del espacio de nombres del proyecto.

  • Lector de proyectos (project-viewer): tiene acceso de solo lectura a todos los recursos de un espacio de nombres de proyecto.

Sigue los pasos para verificar tu acceso.

Importar discos virtuales

Puedes importar archivos de disco virtual directamente desde tu estación de trabajo. La herramienta de importación sube automáticamente el archivo a un segmento de almacenamiento de objetos de tu proyecto.

Para importar tus discos virtuales, usa la CLI de gdcloud o la API Virtual Machine Manager.

gdcloud

El comando import comprueba que el disco tenga los paquetes necesarios para configurar las credenciales de conexión a la instancia mediante Secure Shell (SSH) y el protocolo de escritorio remoto (RDP). Esto incluye el entorno de invitado.

El comando también instala paquetes para el protocolo de tiempo de red (NTP) y cloud-init para que la instancia se ejecute correctamente en GDC.

  • Para crear una imagen de arranque, usa el comando gdcloud compute images import:
gdcloud compute images import IMAGE_NAME \
  --source-file=SOURCE_FILE \
  --os=IMAGE_OS \
  --timeout=TIMEOUT

Sustituye las siguientes variables:

  • IMAGE_NAME: el nombre de la imagen de destino. El nombre no puede tener más de 35 caracteres.
  • SOURCE_FILE: el archivo de disco virtual. Este archivo es un archivo local de tu estación de trabajo. Puede proporcionar una ruta absoluta o relativa.
  • IMAGE_OS: el SO del disco que se va a importar.
  • TIMEOUT: el tiempo que puede durar una importación antes de que falle con "TIMEOUT". Por ejemplo, si especificas 2h, el proceso fallará al cabo de 2 horas. El tiempo de espera predeterminado es 1h.

La operación de subida puede tardar mucho tiempo en función del tamaño del disco virtual y de la velocidad de la conexión de red. La operación de importación puede tardar decenas de minutos en ejecutarse, en función del tamaño del disco.

API

Para importar un disco virtual a través de la API, sigue estos pasos:

  1. Crea un objeto VirtualMachineImageImport en el servidor de la API Management para iniciar el proceso de importación de imágenes:

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
      -n PROJECT_ID \
      apply -f - <<EOF
    apiVersion: virtualmachine.gdc.goog/v1
    kind: VirtualMachineImageImport
    metadata:
      name: IMAGE_NAME
      namespace: PROJECT_ID
    spec:
      source:
        objectStorage:
          bucketRef:
            name: vm-images-bucket
          objectName: SOURCE_FILE
      imageMetadata:
        name: IMAGE_NAME
        operatingSystem: IMAGE_OS
        minimumDiskSize: DISK_SIZE
    EOF
    

    Sustituye las siguientes variables:

    • IMAGE_NAME: nombre de la imagen que se va a importar. El nombre no puede tener más de 35 caracteres.
    • PROJECT_ID: el ID del proyecto en el que quieres importar la imagen.
    • SOURCE_FILE: Nombre del archivo de origen que contiene la subida del disco virtual al almacenamiento de objetos. Este valor es la sección de la ruta de almacenamiento de objetos que aparece después de vm-images-bucket/.
    • IMAGE_OS: el SO del disco que se va a importar.
    • DISK_SIZE: tamaño mínimo que debe tener un disco para crearse con esta imagen. Te recomendamos que utilices un margen de al menos el 20% sobre el tamaño del sistema de archivos de la imagen original. Por ejemplo, usa al menos 12Gi para un disco virtual con un tamaño de sistema de archivos original de 10 Gi.
  2. Para monitorizar el progreso de la importación, consulta el estado del objeto VirtualMachineImageImport:

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
      -n PROJECT_ID \
      get virtualmachineimageimport.virtualmachine.gdc.goog IMAGE_NAME \
      -o jsonpath='{.status}'
    

Eliminar los recursos

El proceso de importación consiste en subir el archivo de disco virtual al almacenamiento de objetos. Si usas la CLI de gdcloud, el objeto se limpia cuando finaliza el comando, tanto si se ha completado correctamente como si no. Si se interrumpe el comando o si importas la imagen con la API, el archivo de disco virtual puede permanecer en el contenedor de almacenamiento de objetos llamado vm-images-bucket hasta que lo elimines manualmente.

Siguientes pasos