Importa appliance virtuali


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

Un formato ampiamente usato e popolare per le appliance virtuali è Formato OVF. Quando pacchettizzi appliance virtuali in formato OVF, generi un OVF pacchetto. Un pacchetto OVF è una cartella che contiene un file descrittore .ovf e una raccolta di altre risorse, come i dischi. Quando un pacco OVF viene archiviati in un unico file, prende il nome di file OVA.

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

Prima di iniziare

Formati supportati

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

  • Open Virtualization Format (OVF): un file OVF e file VMDK (disco della macchina virtuale) nello stesso bucket.
  • Apri appliance virtuale (OVA): un file OVA contenente un file OVF e VMDK.

Procedura di importazione delle immagini macchina

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

  1. Preparare un file immagine macchina per l'importazione
  2. Scegli un progetto di destinazione
  3. Importare un'immagine macchina in Compute Engine

Prepara un file di macchina per l'importazione

Per importare un'immagine macchina in un'immagine Compute Engine, devi prima preparare il file dell'immagine macchina per l'importazione. Le sezioni seguenti trattano queste attività nel dettaglio.

Aggiungi il file dell'immagine macchina a Cloud Storage

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

Concedi le autorizzazioni richieste

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

Ruolo Autorizzazioni obbligatorie Descrizione
Visualizzatore oggetti Storage roles/storage.objectViewer Concedi all'account di servizio Migrate to Virtual Machines predefinito nel progetto host (service-HOST_PROJECT_NUMBER@gcp-sa-vmmigration.iam.gserviceaccount.com) il ruolo roles/vmmigration.serviceAgent nel bucket in cui risiede l'immagine che vuoi importare. Questa autorizzazione consente a Migrate to Virtual Machines di accedere all'immagine di origine.
Amministratore VM Migration roles/vmmigration.admin Nel progetto host, concedi all'account utente che vuoi utilizzare per importare l'immagine di origine il ruolo roles/vmmigration.admin.
Account di servizio VM Migration roles/vmmigration.serviceAgent Concedi all'account di servizio 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 è l'account di servizio Migrate to Virtual Machines nel progetto host, deve concedere a questo account di servizio il roles/vmmigration.serviceAgent per poter creare l'immagine nel progetto di destinazione.

Scegli un progetto di destinazione

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

Importa un'immagine macchina in Compute Engine

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

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

gcloud

Per importare un'immagine macchina in Compute Engine utilizzando Google Cloud CLI, usa 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 che vuoi creare. Per ulteriori informazioni sulle regole di denominazione, consulta Convenzione di denominazione.
  • SOURCE_FILE: il file da cui vuoi importare l'immagine macchina. Inserisci il percorso nel formato gs://bucket/folder/file. Per ottenere il percorso di un oggetto all'interno di un bucket, consulta Visualizzare i metadati degli oggetti. Tieni presente che puoi importare solo immagini da .ovf e .ova file.
  • REGION_ID: la regione in cui vuoi che la macchina di importazione delle immagini da eseguire. L'immagine della macchina viene creata in più regioni. Se vuoi che l'immagine della macchina venga creata in una regione, assicurati che singleRegionStorage sia impostato su true. Per un elenco di regioni e zone supportate, consulta Regioni e zone.
  • HOST_PROJECT_ID: il nome del progetto host da cui vuoi eseguire la migrazione dell'immagine macchina.
  • TARGET_PROJECT: il progetto di destinazione in cui vuoi creare l'immagine macchina. Se non hai già aggiunto una destinazione progetto, per farlo seguendo le istruzioni fornite in Aggiungere un progetto di destinazione.
  • REGION_ID: la regione in cui vuoi che la macchina di importazione delle immagini da eseguire. L'immagine della macchina viene creata nella regione 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 image-imports.

API REST

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

  1. Crea una risorsa di importazione dell'immagine 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 macchina.
    • REGION_ID: la regione in cui vuoi eseguire il processo di importazione delle immagini macchina. L'immagine della macchina viene creata più regioni più vicine. Se vuoi che l'immagine 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 ottenere il percorso di un oggetto all'interno di un bucket, consulta Visualizzare i metadati degli oggetti. Tieni presente che puoi importare immagini macchina solo da .ova e .ovf file.
    • IMAGE_NAME: il nome dell'immagine della macchina che 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 macchina. Se non hai ancora aggiunto un progetto target, segui le istruzioni riportate in Aggiungere un progetto target.

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

    Consulta la tabella seguente per un 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 macchina. Inserisci il percorso nel formato gs://bucket/cartella/file. Per ottenere di un oggetto all'interno di un bucket, Visualizza i metadati degli oggetti.
    Tieni presente che puoi importare immagini macchina solo da .ovf e .ova file.
    machineImageTargetDefaults.targetProject Il progetto di destinazione in cui vuoi creare l'immagine della macchina. Per ulteriori informazioni, consulta il riferimento all'API del progetto target. 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 macchina.
    • TARGET_PROJECT: il progetto di destinazione in cui 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. In caso contrario specifica il tipo di macchina, Compute Engine sceglie del tipo di macchina in base alle informazioni provenienti dall'immagine della macchina di origine.
    machineImageTargetDefaults.labels Per organizzare il progetto, aggiungi le etichette come coppie chiave-valore alle risorse. Consulta la sezione Risorse per l'etichettatura.
    machineImageTargetDefaults.tags Aggiungi i tag che vuoi collegare all'immagine della macchina. Vedi Gestire i tag per le risorse.
    machineImageTargetDefaults.additionalLicenses Puoi aggiungere fino a 10 licenze aggiuntive all'istanza VM creata dall'immagine macchina importata utilizzando un formato URL valido. Ad esempio, puoi aggiungere altre licenze utilizzando il seguente formato di URL:
    https://www.googleapis.com/compute/beta/projects/windows-sql-cloud/global/licenses/sql-server-2012-enterprise
    machineImageTargetDefaults.service_account Specifica l'account di servizio nel progetto di destinazione utilizzato dalla macchina dell'immagine. Per impostazione predefinita, all'immagine macchina non viene assegnato alcun account di servizio.
    Se crei un'istanza Compute Engine da un'immagine macchina e prevedi di un'applicazione, l'istanza potrebbe richiedere l'accesso ad altri servizi e API di gcloud CLI. Crea un account di servizio nel progetto di destinazione con le autorizzazioni necessarie per accedere a questi servizi e API prima di creare l'istanza Compute Engine. Poi, specifica questo account di servizio qui. Per ulteriori informazioni, consulta Configurare una VM per l'esecuzione come un account di servizio.
    Per collegare l'account di servizio all'istanza Compute Engine, l'utente sul progetto host Compute Engine richiede la necessaria autorizzazioni aggiuntive. Per ulteriori informazioni, consulta Configurazione delle autorizzazioni nel progetto di destinazione dell'account di servizio.
    machineImageTargetDefaults.shielded_instance_config (Facoltativo) Abilita la VM protetta in questa istanza. Shielded VM sono rafforzati da una serie di controlli di sicurezza che aiutano a difendersi rootkit e bootkit. Consulta Che cos'è una VM protetta?
    machineImageTargetDefaults.singleRegionStorage Imposta questo flag su true se vuoi che l'immagine macchina storageLocations come regione. Se imposti questo flag su false, viene selezionata la regione a più aree geografiche più vicina.
    machineImageTargetDefaults.skip_os_adaptation Imposta questo flag su true se vuoi saltare l'adattamento del sistema operativo.
    Per funzionare correttamente su Google Cloud, le VM create dalle immagini macchina importate richiedono modifiche alla configurazione. Queste modifiche sono chiamate adattamenti del sistema operativo. Compute Engine esegue automaticamente gli adattamenti del sistema operativo durante il processo di importazione dell'immagine della macchina. Per maggiori informazioni vedi Adattare 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 con pagamento a consumo (PAYG) 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 tuo sistema operativo supporta più tipi di licenza, puoi sostituire il tipo di licenza predefinita per specificare esplicitamente un tipo di licenza PAYG o BYOL.
    machineImageTargetDefaults.osAdaptationParameters.network_interfaces Compute Engine consente di creare facoltativamente immagini macchina con più interfacce di rete (NIC). Ogni interfaccia è collegata rete VPC diversa, consentendo all'immagine della macchina di accedere a VPC diversi in gcloud CLI.
    Prima di aggiungere altre interfacce di rete, tieni presente quanto segue:
    • L'attacco 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 di Compute Engine da un'immagine macchina, utilizzando test-clone o cut-over, non puoi aggiungere o rimuovere un'interfaccia di rete sull'istanza creata. Puoi ripetere test-clone o cut-over con un target diverso per ricreare l'istanza.
      Per aggiungere o rimuovere un'interfaccia di rete:
      • Seleziona Aggiungi interfaccia di rete per aggiungere un'altra di rete all'istanza Compute Engine. Puoi impostare tutte le le stesse opzioni disponibili con l'interfaccia di rete iniziale.
    Per saperne di più, 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 macchina, Windows aggiunge alcune informazioni univoche all'istanza. La generalizzazione è un processo che rimuove queste informazioni in modo da poter creare più istanze la stessa immagine macchina.
    machineImageTargetDefaults.encryption La chiave di crittografia gestita da Google che vuoi utilizzare per criptare la tua durante il processo di importazione. Per ulteriori informazioni, vedi Crittografia at-rest predefinita.

    Utilizza le chiavi di crittografia gestite dal cliente (CMEK) per criptare i dati dell'immagine macchina. Queste chiavi di crittografia sono create, gestite e di tua proprietà. Per ulteriori informazioni, consulta Proteggere le risorse utilizzando le chiavi Cloud KMS.
    Quando aggiungi un CMEK, devi concedere le autorizzazioni come descritto nella tabella seguente.
    Ruolo Autorizzazioni obbligatorie Descrizione
    Account del servizio di migrazione delle VM cloud roles/vmmigration.serviceAgent Concedi questa autorizzazione all'account di servizio Compute Engine per criptare i dati dell'immagine macchina creata durante il processo di importazione.
    Agente di servizio Compute Engine 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 macchina è stato completato eseguendo il polling dell'operazione utilizzando 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 macchina.
    • REGION_ID: la regione in cui vuoi eseguire il processo di importazione delle immagini macchina. L'immagine della macchina viene creata più regioni più vicine. Se vuoi che l'immagine della macchina venga creata in 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 macchina utilizzando quanto segue .

    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 macchina.
    • REGION_ID: la regione in cui vuoi che venga di importazione delle immagini della macchina. L'immagine macchina viene creata nella regione multipla più vicina. Se vuoi che l'immagine della macchina venga creata in assicurati che singleRegionStorage sia impostato su true. Per Per un elenco delle regioni supportate, consulta Regioni e zone.
    • IMPORT_NAME: l'ID che rappresenta la macchina risorsa di importazione di immagini. Quando importi un'immagine macchina in Compute Engine, Migrate to Virtual Machines crea prima una risorsa di importazione dell'immagine macchina. Risorsa di importazione dell'immagine macchina rappresenta il processo di importazione delle immagini della macchina. Puoi utilizzare IMPORT_NAME per ottenere il link all'immagine della macchina importata nell'ambito del processo di importazione dell'immagine della macchina.

    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