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
- Abilita l'API VM Migration del progetto.
- Assicurati che il disco di avvio sia configurato con un sistema operativo supportato.
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:
- Preparare un file immagine macchina per l'importazione
- Scegli un progetto di destinazione
- 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 chesingleRegionStorage
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 chesingleRegionStorage
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.
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 chesingleRegionStorage
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 loIMPORT_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
ocut-over
, non puoi aggiungere o rimuovere un'interfaccia di rete sull'istanza creata. Puoi ripeteretest-clone
ocut-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.
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" } }
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 chesingleRegionStorage
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" } }
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 chesingleRegionStorage
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 utilizzareIMPORT_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
- Scopri di più sui nodi single-tenant.
- Scopri di più su BYOL.