Importa dischi virtuali

Se nel tuo ambiente on-premise sono presenti dischi virtuali con software e configurazioni di cui hai bisogno, a volte chiamati dischi finali o immagini finali, puoi risparmiare tempo importando questi dischi virtuali nell'appliance GDC air-gapped e utilizzando l'immagine risultante per creare macchine virtuali. Lo strumento di importazione supporta i formati immagine RAW e QCOW per Linux e ISO per Windows.

Prima di iniziare

Prima di continuare, assicurati di disporre di quanto segue:

  • gcloud CLI scaricata, installata e configurata. Tutti i comandi CLI per GDC utilizzano la CLI gdcloud o kubectl e richiedono un ambiente Linux.
  • Accesso al server API Management. Segui i passaggi della CLI descritti nella sezione Accedi per accedere al server dell'API Management.

Richiedere autorizzazioni e accesso

Per eseguire le attività elencate in questa pagina, devi disporre dei ruoli Amministratore macchina virtuale progetto e Amministratore immagine macchina virtuale progetto. Segui i passaggi per verificare o chiedere all'amministratore IAM progetto di assegnarti i ruoli Amministratore VM progetto (project-vm-admin) e Amministratore immagini VM progetto (project-vm-image-admin) nello spazio dei nomi del progetto in cui si trova la VM.

Per le operazioni sulle VM utilizzando la console GDC o la CLI gdcloud, chiedi all'amministratore IAM del progetto di assegnarti i ruoli elencati nel paragrafo precedente e il ruolo Visualizzatore progetto (project-viewer).

Sistemi operativi supportati

Questa sezione descrive i sistemi operativi supportati dalle VM GDC.

Supporto Linux OS

Puoi importare solo immagini Linux da dischi avviabili. Per avviare i dischi virtuali in GDC, i dischi devono eseguire uno dei sistemi operativi supportati:

  • Ubuntu 20.04
  • Ubuntu 22.04
  • RHEL 8

Supporto del sistema operativo Windows

GDC supporta anche i sistemi operativi Windows 10 e Windows Server 2019 Datacenter Edition.

Puoi importare immagini Windows dai supporti di installazione ISO. GDC installa Windows e crea un'immagine avviabile dal disco risultante.

L'importazione di immagini richiede che l'ISO non richieda input all'avvio con Unified Extensible Firmware Interface (UEFI). Per creare un file ISO senza prompt, inizia da un file ISO esistente. Completa i seguenti passaggi:

  1. Estrai i contenuti ISO utilizzando lo strumento di gestione degli archivi 7Zip:

    7z x windows-installation.iso -oiso-unpack
    
  2. Crea una nuova ISO dall'ISO estratta utilizzando mkisofs, sostituendo il binario EFI "no prompt":

    mkisofs -b boot/etfsboot.com -no-emul-boot -c BOOT.CAT -iso-level 4 -J -l -D -N -joliet-long -relaxed-filenames -v -V "Custom" -udf -boot-info-table -eltorito-alt-boot -eltorito-boot efi/microsoft/boot/efisys_noprompt.bin -no-emul-boot -o ISO_NAME.iso -allow-limited-size iso-unpack
    

    Sostituisci ISO_NAME con un nome per l'ISO senza prompt. Ad esempio, noprompt-install.

Importa dischi virtuali

Puoi importare i dischi virtuali utilizzando gcloud CLI o l'API Virtual Machine Manager.

Per ottenere le autorizzazioni necessarie per importare le immagini, chiedi all'amministratore IAM dell'organizzazione di concederti il ruolo Amministratore immagini VirtualMachine progetto (project-vm-image-admin) per il tuo progetto.

gdcloud

Utilizza il comando gdcloud compute images import per creare un'immagine avviabile.

Il comando import garantisce che il disco contenga i pacchetti richiesti, incluso l'ambiente guest, necessario per configurare le credenziali per la connessione all'istanza utilizzando Secure Shell (SSH) su Linux e Remote Desktop Protocol (RDP) su Windows.

Su Linux, il comando installa anche i pacchetti per il protocollo NTP (Network Time Protocol) e cloud-init per il corretto funzionamento dell'istanza in GDC.

Puoi importare i file del disco virtuale direttamente dalla tua workstation. Lo strumento di importazione carica automaticamente il file in un bucket di archiviazione degli oggetti nel tuo progetto.

gdcloud compute images import IMAGE_NAME \
  --source-file=SOURCE_FILE \
  --os=IMAGE_OS \
  --timeout=TIMEOUT

Sostituisci le seguenti variabili:

  • IMAGE_NAME: il nome dell'immagine di destinazione. Il nome non deve contenere più di 35 caratteri.
  • SOURCE_FILE: il file del disco virtuale. Questo file è un file locale sulla tua workstation. Puoi fornire un percorso assoluto o relativo.
  • IMAGE_OS: il sistema operativo sul disco da importare. Devi inserire il sistema operativo comeubuntu-2004, ubuntu-2204. rhel-8, windows-10 o windows-2019.
  • TIMEOUT: il tempo che può durare un'importazione prima che non vada a buon fine con "TIMEOUT". Ad esempio, se specifichi 2h, il processo non va a buon fine dopo 2 ore. Il timeout predefinito è 1h.

L'operazione di caricamento può richiedere un periodo di tempo prolungato a seconda delle dimensioni del disco virtuale e della velocità della connessione di rete. L'operazione di importazione può richiedere decine di minuti, a seconda delle dimensioni del disco.

Il seguente esempio importa un disco virtuale denominato ubuntu_server.img archiviato nella home directory della workstation:

gdcloud compute images import imported-image \
  --source-file=~/ubuntu_server.img \
  --os=ubuntu-2004

API

Prima di iniziare il processo di importazione con l'API, devi caricare il disco virtuale in un bucket di archiviazione oggetti denominato vm-images-bucket. Per creare un bucket di archiviazione oggetti, consulta Creare bucket di archiviazione per i progetti.

Per importare un disco virtuale tramite l'API:

  1. Crea un oggetto VirtualMachineImageImport nel server dell'API Management per avviare il processo di importazione delle immagini:

    kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \
      apply -n PROJECT_ID -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: OPERATING_SYSTEM
        minimumDiskSize: DISK_SIZE
    EOF
    

    Sostituisci le seguenti variabili:

    Variabile Descrizione
    IMAGE_NAME Il nome dell'immagine da importare. Il nome non deve contenere più di 35 caratteri.
    PROJECT_ID L'ID progetto del progetto in cui vuoi importare l'immagine.
    SOURCE_FILE Il nome del file di origine che contiene il caricamento del disco virtuale nello spazio di archiviazione oggetti. Questo valore è la sezione del percorso di archiviazione di oggetti dopo vm-images-bucket/.
    OPERATING_SYSTEM Il sistema operativo sul disco da importare. Questo valore deve essere ubuntu-2004, ubuntu-2204, rhel-8, windows-10 o windows-2019.
    DISK_SIZE La dimensione minima che deve avere un disco per essere creato con questa immagine. Ti consigliamo di utilizzare un buffer di almeno il 20% in aggiunta alle dimensioni del file system dell'immagine originale. Ad esempio, utilizza almeno 12 GiB per un disco virtuale con una dimensione del file system originale di 10 GiB.
  2. Monitora l'avanzamento dell'importazione eseguendo una query sullo stato dell'oggetto VirtualMachineImageImport:

    kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \
      get virtualmachineimageimport --namespace PROJECT_ID \
      IMAGE_NAME -o jsonpath='{.status}'
    

Esegui la pulizia delle risorse

La procedura di importazione prevede il caricamento del file del disco virtuale nell'archiviazione degli oggetti. Se utilizzi gcloud CLI, l'oggetto viene pulito al termine del comando, indipendentemente dall'esito. Se il comando viene interrotto o l'importazione dell'immagine viene eseguita con l'API, il file del disco virtuale potrebbe rimanere nel bucket di archiviazione degli oggetti denominato vm-images-bucket finché non lo elimini manualmente.

Passaggi successivi

Crea una nuova istanza VM che utilizza l'immagine nella pagina Crea e avvia una VM.