Importa appliance virtuali


Un'appliance virtuale è un pacchetto che contiene immagini disco e configurazione hardware per un'istanza di una macchina virtuale (VM).

Un formato ampiamente utilizzato e popolare per le appliance virtuali è il formato OVF. Quando si pacchettizzano le appliance virtuali nel formato OVF, viene generato un pacchetto OVF. Un pacchetto OVF è una cartella che contiene un file descrittore .ovf e una raccolta di altre risorse, come i dischi. Quando un pacchetto OVF viene archiviato in un unico file, viene chiamato file OVA.

Questa pagina descrive i passaggi che puoi seguire per importare un'immagine della macchina da un' appliance virtuale utilizzando Compute Engine.

Prima di iniziare

Formati di file supportati

Puoi importare file di immagini macchina nei seguenti formati utilizzando Compute Engine:

  • Open Virtualization Format (OVF): un file OVF e file VMDK (Virtual Machine Disk) nello stesso bucket.

  • Open Virtual Appliance (OVA): un file OVA contenente un file OVF e file di disco. Compute Engine supporta l'importazione di file di immagini macchina OVA nei seguenti formati file del disco:

    • Virtual machine disk (VMDK)
    • QEMU copy-on-write (QCOW)
    • QEMU copy-on-write 2 (QCOW2)
    • QEMU enhanced disk format (QED)
    • VPC
    • Virtual disk image (VDI)
    • Virtual hard disk v2 (VHDX)

Limitazioni

Quando importi le immagini macchina, si applicano le seguenti limitazioni:

  • Non puoi importare immagini macchina nelle serie di macchine di 4ª generazione perché non supportano i volumi Google Cloud Hyperdisk.
  • Non puoi importare immagini macchina basate sull'architettura Arm.
  • Non puoi creare immagini macchina dalle VM di origine con i seguenti elementi:
    • Dischi collegati di dimensioni superiori a 200 TB
    • Tipi di macchine A4, A3, C3D, H3 o Z3

Processo di importazione delle immagini della macchina

Per importare un'immagine della macchina in Compute Engine utilizzando Compute Engine, segui questi passaggi:

  1. Prepara un file immagine della macchina per l'importazione.
  2. Seleziona un progetto di destinazione.
  3. Importa un'immagine della macchina in Compute Engine.

Prepara un file della macchina per l'importazione

Per importare un'immagine della macchina in un'immagine Compute Engine, devi prima preparare il file immagine della macchina per l'importazione. Le sezioni che seguono illustrano queste attività nel dettaglio.

Aggiungi il file immagine della macchina a Cloud Storage

Per importare un'immagine della macchina in un'immagine della macchina Compute Engine, devi prima aggiungere il file immagine della macchina a Cloud Storage. Per ulteriori informazioni, consulta Carica oggetti da un file system. Per prestazioni migliori, ti consigliamo di caricare il file immagine della macchina in un bucket nello stesso Google Cloud in cui vuoi creare l'immagine macchina.

Concedi le autorizzazioni richieste

Per importare un'immagine della macchina in un'immagine della macchina Compute Engine, concedi le autorizzazioni come descritto nella tabella seguente.

Ruolo Autorizzazioni obbligatorie Descrizione
Storage Object Viewer roles/storage.objectViewer Concedi al service account Migrate to Virtual Machines predefinito nel progetto host (service-HOST_PROJECT_NUMBER@gcp-sa-vmmigration.iam.gserviceaccount.com) il ruolo roles/storage.objectViewer nel bucket in cui risiede l'immagine che vuoi importare. Questa autorizzazione consente a Migrate to Virtual Machines di accedere all'immagine di origine.
VM Migration Administrator roles/vmmigration.admin Nel progetto host, concedi all'account utente che vuoi utilizzare per importare l'immagine di origine il ruolo roles/vmmigration.admin.
Service Account VM Migration roles/vmmigration.serviceAgent Concedi al service account Migrate to Virtual Machines predefinito nel progetto host (service-HOST_PROJECT_NUMBER@gcp-sa-vmmigration.iam.gserviceaccount.com) il ruolo roles/vmmigration.serviceAgent nel progetto di destinazione. Ad esempio, se service-1234567890@gcp-sa-vmmigration.iam.gserviceaccount.com è il service account Migrate to Virtual Machines nel progetto host, devi concedere a questo service account il ruolo roles/vmmigration.serviceAgent per poter creare l'immagine nel progetto di destinazione.

Seleziona un progetto di destinazione

Per ospitare l'immagine della macchina, devi creare o scegliere un progetto di destinazione. Un progetto di destinazione definisce il progetto target per un'immagine della macchina. Per ulteriori informazioni sulla creazione o sulla scelta di un progetto di destinazione, consulta la sezione Aggiunta di un progetto di destinazione.

Importa un'immagine della macchina in Compute Engine

Puoi importare un'immagine della macchina in Compute Engine utilizzando i comandi Google Cloud CLI o dell'API REST.

Quando importi un'immagine della macchina, Compute Engine crea alcune risorse temporanee, ad esempio VM o dischi, nel progetto di destinazione. Queste risorse temporanee vengono eliminate al termine del processo di importazione dell'immagine della macchina.

gcloud

Per importare un'immagine della macchina in Compute Engine utilizzando Google Cloud CLI, utilizza la seguente richiesta.

gcloud alpha migration vms machine-image-imports create IMAGE_NAME \
--source-file=SOURCE_FILE \
--location=REGION_ID \
--target-project=projects/HOST_PROJECT_ID/locations/global/targetProjects/TARGET_PROJECT

Sostituisci quanto segue:

  • IMAGE_NAME: il nome dell'immagine della macchina che vuoi creare. Per ulteriori informazioni sulle regole di denominazione, consulta Convenzione di denominazione.
  • SOURCE_FILE: il file da cui vuoi importare l'immagine della macchina. Inserisci il percorso nel formato gs://bucket/folder/file. Per visualizzare il percorso di un oggetto all'interno di un bucket, consulta Visualizza i metadati degli oggetti. Tieni presente che puoi importare immagini solo dai file .ovf e .ova.
  • REGION_ID: la regione in cui vuoi eseguire il processo di importazione delle immagini della macchina. L'immagine della macchina viene creata nella multi-regione più vicina. Se vuoi che l'immagine della macchina venga creata in una regione, assicurati che singleRegionStorage sia impostato su true. Per un elenco delle regioni supportate, consulta Regioni e zone.
  • HOST_PROJECT_ID: il nome del progetto host da cui vuoi eseguire la migrazione dell'immagine della macchina.
  • TARGET_PROJECT: il progetto di destinazione in cui vuoi creare l'immagine della macchina. Se non hai ancora aggiunto un progetto di destinazione, segui le istruzioni riportate in Aggiungi un progetto di destinazione.
  • REGION_ID: la regione in cui vuoi eseguire il processo di importazione delle immagini della macchina. L'immagine della macchina viene creata nella multi-regione più vicina. Se vuoi che l'immagine della macchina venga creata in una regione, assicurati che singleRegionStorage sia impostato su true. Per un elenco delle regioni supportate, consulta Regioni e zone.

Per ulteriori informazioni, vedi gcloud migration vms machine-image-imports.

API REST

Per importare un'immagine della macchina in Compute Engine utilizzando l'API REST, segui questi passaggi.

  1. Crea una risorsa di importazione dell'immagine della macchina utilizzando la seguente richiesta.

    POST https://vmmigration.googleapis.com/v1/projects/HOST_PROJECT_ID/locations/REGION_ID/imageImports?imageImportId=IMPORT_NAME
    {
    "cloudStorageUri": "SOURCE_FILE",
    "machineImageTargetDefaults": {
    "imageName": "IMAGE_NAME",
    "targetProject": "projects/HOST_PROJECT_ID/locations/global/targetProjects/TARGET_PROJECT",
    ...
    }
    }
    

    Sostituisci quanto segue:

    • HOST_PROJECT_ID: il nome del progetto host da cui vuoi eseguire la migrazione dell'immagine della macchina.
    • REGION_ID: la regione in cui vuoi eseguire il processo di importazione dell'immagine della macchina. L'immagine della macchina viene creata nella multi-regione più vicina. Se vuoi che l'immagine della macchina venga creata in una regione, assicurati che singleRegionStorage sia impostato su true. Per un elenco delle regioni supportate, consulta Regioni e zone.
    • SOURCE_FILE: il file da cui vuoi importare l'immagine della macchina. Inserisci il percorso nel formato gs://bucket/folder/file. Per visualizzare il percorso di un oggetto all'interno di un bucket, consulta Visualizza i metadati degli oggetti. Tieni presente che puoi importare immagini delle macchine solo dai file .ova e .ovf.
    • IMAGE_NAME: il nome dell'immagine della macchina che vuoi creare. Per ulteriori informazioni sulle regole di denominazione, consulta Convenzione di denominazione.
    • TARGET_PROJECT: il progetto di destinazione in cui vuoi creare l'immagine della macchina. Se non hai ancora aggiunto un progetto di destinazione, segui le istruzioni riportate in Aggiungi un progetto di destinazione.

    In questo esempio, IMPORT_NAME è un ID che rappresenta la risorsa di importazione dell'immagine della macchina. Quando importi un'immagine della macchina in Compute Engine, Migrate to Virtual Machines crea prima una risorsa di importazione dell'immagine della macchina. Questa risorsa rappresenta il processo di importazione dell'immagine della macchina. Puoi utilizzare IMPORT_NAME per ottenere il link all'immagine della macchina importata.

    Consulta la tabella seguente per l'elenco completo dei campi supportati della richiesta di creazione di importazione delle immagini macchina.

    Nome campo Descrizione
    cloudStorageUri Il percorso del file da cui vuoi importare l'immagine della macchina. Inserisci il percorso nel formato gs://bucket/folder/file. Per visualizzare il percorso di un oggetto all'interno di un bucket, consulta Visualizza i metadati degli oggetti.
    Tieni presente che puoi importare le immagini della macchina solo dai file .ovf e .ova.
    machineImageTargetDefaults.targetProject Il progetto di destinazione in cui vuoi creare l'immagine della macchina. Per ulteriori informazioni, consulta il riferimento API del progetto di destinazione. Ad esempio,
    projects/HOST_PROJECT_ID/locations/global/targetProjects/TARGET_PROJECT
    Nell'esempio, sostituisci quanto segue:
    • HOST_PROJECT_ID: il nome del progetto host da cui vuoi eseguire la migrazione dell'immagine della macchina.
    • TARGET_PROJECT: il progetto di destinazione in cui vuoi creare l'immagine.
    machineImageTargetDefaults.machine_image_name Il nome dell'immagine della macchina da creare. Per ulteriori informazioni sulle regole di denominazione, consulta la convenzione di denominazione delle risorse.
    machineImageTargetDefaults.description (Facoltativo) Una descrizione dell'immagine della macchina.
    machineImageTargetDefaults.machine_type (Facoltativo) La macchina con cui creare l'immagine della macchina. Se non specifichi il tipo di macchina, Compute Engine sceglie un tipo di macchina pertinente in base alle informazioni dell'immagine della macchina di origine.
    machineImageTargetDefaults.labels Per organizzare il progetto, aggiungi etichette alle risorse sotto forma di coppie chiave/valore. Consulta la sezione Etichettatura delle risorse.
    machineImageTargetDefaults.tags Aggiungi eventuali tag da associare all'immagine della macchina. Consulta Gestisci i tag per le risorse.
    machineImageTargetDefaults.additionalLicenses Puoi aggiungere fino a 10 licenze aggiuntive all'istanza VM creata dall'immagine della macchina importata utilizzando un formato URL valido. Ad esempio, puoi aggiungere licenze aggiuntive utilizzando il seguente formato dell'URL:
    https://www.googleapis.com/compute/beta/projects/windows-sql-cloud/global/licenses/sql-server-2012-enterprise
    machineImageTargetDefaults.service_account Specifica il service account nel progetto di destinazione utilizzato dall'immagine della macchina. Per impostazione predefinita, all'immagine della macchina non viene assegnato alcun service account.
    Se crei un'istanza Compute Engine da un'immagine della macchina e prevedi di eseguire un'applicazione al suo interno, l'istanza potrebbe dover accedere ad altri servizi e API gcloud CLI. Crea un service account nel progetto di destinazione con le autorizzazioni necessarie per accedere a questi servizi e API prima di creare l'istanza Compute Engine. Poi, specifica il service account qui. Per maggiori informazioni, vedi Configura una VM in modo che venga eseguita come service account.
    Per collegare il service account all'istanza Compute Engine, il tuo account utente nel progetto host Compute Engine richiede le autorizzazioni necessarie. Per ulteriori informazioni, consulta Configurazione delle autorizzazioni per il service account del progetto di destinazione.
    machineImageTargetDefaults.shielded_instance_config (Facoltativo) Abilita la Shielded VM in questa istanza. Le Shielded VM sono protette da un set di controlli di sicurezza che contribuiscono alla difesa da rootkit e bootkit. Consulta Che cos'è una Shielded VM?
    machineImageTargetDefaults.singleRegionStorage Imposta questo flag su true se vuoi che l'immagine della macchina storageLocations sia una regione. Se imposti questo flag su false, viene selezionata la multi-regione più vicina.
    machineImageTargetDefaults.skip_os_adaptation Imposta questo flag su true se vuoi saltare l'adattamento del sistema operativo.
    Perché funzionino correttamente su Google Cloud, occorre modificare la configurazione delle VM create dalle immagini delle macchine importate. Queste modifiche sono chiamate adattamenti del sistema operativo. Compute Engine esegue automaticamente gli adattamenti del sistema operativo durante la procedura di importazione dell'immagine della macchina. Per ulteriori informazioni, consulta Adatta le istanze VM per l'esecuzione su Google Cloud.
    machineImageTargetDefaults.osAdaptationParameters.licenseType Il tipo di licenza che vuoi utilizzare per l'immagine della macchina. Compute Engine supporta le licenze PAYG (con pagamento a consumo) e BYOL (Bring Your Own License) per le VM di cui è stato eseguito il deployment. Il tipo di licenza predefinito per una VM di cui è stata eseguita la migrazione viene assegnato da Compute Engine in base al sistema operativo di cui è stata eseguita la migrazione, come descritto in Sistemi operativi supportati.
    Se il sistema operativo supporta più tipi di licenza, puoi sostituire il tipo di licenza predefinito per specificare esplicitamente un tipo di licenza PAYG o BYOL.
    machineImageTargetDefaults.osAdaptationParameters.network_interfaces Compute Engine ti consente di creare immagini delle macchine con più interfacce di rete (NIC). Ogni interfaccia è collegata a una rete VPC diversa, consentendo all'immagine della macchina di accedere a reti VPC diverse nella gcloud CLI.
    Prima di aggiungere altre interfacce di rete, tieni presente le seguenti considerazioni:
    • Il collegamento di più interfacce di rete alla stessa rete VPC non è supportato. Sebbene la configurazione possa essere salvata, l'istanziazione della VM non andrà a buon fine.
    • Dopo aver creato un'istanza Compute Engine da un'immagine della macchina, utilizzando test-clone o cut-over, non puoi aggiungere o rimuovere un'interfaccia di rete nell'istanza creata. Puoi ripetere test-clone o cut-over con dettagli di destinazione diversi per ricreare l'istanza.
      Per aggiungere o rimuovere un'interfaccia di rete:
      • Seleziona Aggiungi interfaccia di rete per aggiungere un'altra interfaccia di rete all'istanza Compute Engine. Puoi impostare le stesse opzioni dell'interfaccia di rete iniziale.
    Per ulteriori informazioni, consulta Creazione di istanze con più interfacce di rete.
    machineImageTargetDefaults.osAdaptationParameters.generalize Imposta questo flag su true se vuoi generalizzare l'immagine della macchina.
    Quando crei un'istanza da un'immagine della macchina, Windows aggiunge alcune informazioni univoche all'istanza. La generalizzazione è un processo che rimuove queste informazioni in modo da poter creare più istanze dalla stessa immagine della macchina.
    machineImageTargetDefaults.encryption La Google-owned and Google-managed encryption key che vuoi utilizzare per criptare i tuoi dati durante la procedura di importazione. Per ulteriori informazioni, consulta Crittografia at-rest predefinita.

    Utilizza le chiavi di crittografia gestite dal cliente (CMEK) per criptare i dati dell'immagine della macchina. Queste chiavi di crittografia sono create, gestite da te e di tua proprietà. Per ulteriori informazioni, consulta Proteggi le risorse utilizzando le chiavi Cloud KMS.
    Quando aggiungi una CMEK, devi concedere le autorizzazioni come descritto nella tabella seguente.
    Ruolo Autorizzazioni obbligatorie Descrizione
    Service account VM Migration cloud roles/vmmigration.serviceAgent Concedi questa autorizzazione al service account Compute Engine per criptare i dati dell'immagine della macchina creata durante il processo di importazione.
    Compute Engine Service Agent roles/compute.serviceAgent Concedi questa autorizzazione all'agente di servizio Compute Engine per criptare i dati durante il processo di importazione.

    Dovresti visualizzare una risposta simile alla seguente risposta di esempio.

    {
      "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"
      }
    }
    
  2. Controlla se il job di importazione dell'immagine della macchina è stato completato eseguendo il polling dell'operazione tramite il seguente comando.

    GET https://vmmigration.googleapis.com/v1/projects/HOST_PROJECT_ID/locations/REGION_ID/operations/OPERATION_ID
    

    Sostituisci quanto segue:

    • HOST_PROJECT_ID: il nome del progetto host da cui esegui la migrazione dell'immagine della macchina.
    • REGION_ID: la regione in cui vuoi eseguire il processo di importazione dell'immagine della macchina. L'immagine della macchina viene creata nella multi-regione più vicina. Se vuoi che l'immagine della macchina venga creata in una regione, assicurati che singleRegionStorage sia impostato su true. Per un elenco delle regioni supportate, consulta Regioni e zone.
    • OPERATION_ID: l'ID operazione del job di migrazione.

    Dovresti visualizzare una risposta di completamento dell'operazione simile alla seguente risposta di esempio.

      {
        "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",
          "machineImageTargetDefaults": {
            "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"
        }
      }
    
  3. Monitora il completamento del job di importazione dell'immagine della macchina utilizzando il seguente comando.

    GET https://vmmigration.googleapis.com/v1/projects/HOST_PROJECT_ID/locations/REGION_ID/imageImports/IMPORT_NAME/imageImportJobs/image-import-job
    

    Sostituisci quanto segue:

    • HOST_PROJECT_ID: il nome del progetto host da cui esegui la migrazione dell'immagine della macchina.
    • REGION_ID: la regione in cui vuoi eseguire il processo di importazione dell'immagine della macchina. L'immagine della macchina viene creata nella multi-regione più vicina. Se vuoi che l'immagine della macchina venga creata in una regione, assicurati che singleRegionStorage sia impostato su true. Per un elenco delle regioni supportate, consulta Regioni e zone.
    • IMPORT_NAME: l'ID che rappresenta la risorsa di importazione delle immagini macchina. Quando importi un'immagine della macchina in Compute Engine, Migrate to Virtual Machines crea prima una risorsa di importazione dell'immagine della macchina. Questa risorsa rappresenta il processo di importazione dell'immagine della macchina. Puoi utilizzare IMPORT_NAME per ottenere il link all'immagine della macchina importata.

    Dovresti visualizzare una risposta di completamento del job simile alla seguente risposta di esempio.

    {
      "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"
    }
    

Passaggi successivi