Un'appliance virtuale è un pacchetto contenente 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 pacchettizzi le appliance virtuali nel formato OVF, generi un pacchetto OVF. Un pacchetto OVF è una cartella contenente 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 utilizzare per importare un'immagine macchina da un appliance virtuale utilizzando Compute Engine.
Prima di iniziare
- Abilita l'API VM Migration nel tuo 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.
- Open Virtual Appliance (OVA): un file OVA contenente un file OVF e file VMDK.
Processo di importazione delle immagini macchina
Per importare un'immagine macchina in Compute Engine utilizzando Compute Engine, segui questi passaggi:
- Preparare un file immagine macchina per l'importazione
- Scegliere un progetto di destinazione
- Importare un'immagine macchina in Compute Engine
Preparare un file della 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 che seguono illustrano queste attività in dettaglio.
Aggiungi il file dell'immagine macchina a Cloud Storage
Per importare un'immagine macchina in un'immagine macchina Compute Engine, devi prima aggiungere il file dell'immagine macchina a Cloud Storage. Per ulteriori informazioni, consulta Caricare 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 di 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, devi
concedere a questo account di servizio il ruolo 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 progetto di destinazione definisce il progetto di destinazione per un'immagine 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 macchina in Compute Engine utilizzando i comandi Google Cloud CLI o dell'API REST.
Quando importi un'immagine 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 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 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 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 solo dai file.ovf
e.ova
.REGION_ID
: la regione in cui vuoi eseguire il processo di importazione delle immagini macchina. L'immagine della macchina viene creata nella regione multi-regione più vicina. 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.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 ancora aggiunto un progetto target, segui le istruzioni riportate in Aggiungere un progetto target.REGION_ID
: la regione in cui vuoi eseguire il processo di importazione delle immagini macchina. L'immagine della macchina viene creata nella regione multi-regione più vicina. 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.
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 macchina viene creata nella multi-regione più vicina. 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 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 le immagini macchina solo dai file.ova
e.ovf
.IMAGE_NAME
: il nome dell'immagine 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 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 macchina. Quando importi un'immagine macchina in Compute Engine, Migrate to Virtual Machines crea prima una risorsa di importazione dell'immagine macchina. La risorsa di importazione dell'immagine della macchina rappresenta il processo di importazione dell'immagine della macchina. Puoi utilizzareIMPORT_NAME
per ottenere il link all'immagine della macchina importata nell'ambito del processo di importazione dell'immagine 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/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 le immagini 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 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 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 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 le etichette come coppie chiave-valore alle risorse. Consulta la sezione Risorse per l'etichettatura. machineImageTargetDefaults.tags
Aggiungi eventuali tag da associare all'immagine macchina. Consulta 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 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 l'account di servizio nel progetto di destinazione utilizzato dall'immagine della macchina. 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 eseguire un'applicazione al suo interno, l'istanza potrebbe richiedere l'accesso ad altri servizi e API 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 maggiori informazioni, vedi Configurare una VM in modo che venga eseguita come account di servizio.
Per collegare l'account di servizio all'istanza Compute Engine, il tuo account utente nel progetto host Compute Engine richiede le autorizzazioni necessarie. Per ulteriori informazioni, consulta Configurare le autorizzazioni per l'account di servizio del progetto di destinazione.machineImageTargetDefaults.shielded_instance_config
(Facoltativo) Abilita la VM protetta in questa istanza. Le VM schermate sono protette da un set di controlli di sicurezza che contribuiscono alla difesa da rootkit e bootkit. Consulta Che cos'è Shielded VM? machineImageTargetDefaults.singleRegionStorage
Imposta questo flag su true se vuoi che l'immagine macchina storageLocations
sia una 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 macchina. Per ulteriori informazioni, consulta Adattare le istanze VM per l'esecuzione su Google Cloud.machineImageTargetDefaults.osAdaptationParameters.licenseType
Il tipo di licenza che vuoi utilizzare per l'immagine 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 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
Se vuoi, Compute Engine ti consente di creare immagini macchina con più interfacce di rete (NIC). Ogni interfaccia è collegata a una rete VPC diversa, consentendo all'immagine macchina di accedere a reti VPC diverse nella 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 Compute Engine da un'immagine macchina,
utilizzando
test-clone
ocut-over
, non puoi aggiungere o rimuovere un'interfaccia di rete nell'istanza creata. Puoi ripeteretest-clone
ocut-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 tutte le opzioni come faresti con l'interfaccia di rete iniziale.
machineImageTargetDefaults.osAdaptationParameters.generalize
Imposta questo flag su true se vuoi generalizzare l'immagine macchina.
Quando crei un'istanza da un'immagine macchina, Windows aggiunge alcune informazioni univoche all'istanza. La generalizzazione è un processo cherimuove queste informazioni in modo da poter creare più istanze dalla stessa immagine macchina.machineImageTargetDefaults.encryption
La chiave di crittografia gestita da Google che vuoi utilizzare per criptare i 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 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 macchina viene creata nella multi-regione più vicina. 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.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 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 macchina.REGION_ID
: la regione in cui vuoi eseguire il processo di importazione delle immagini macchina. L'immagine macchina viene creata nella multi-regione più vicina. 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.IMPORT_NAME
: l'ID che rappresenta la risorsa di importazione delle immagini macchina. Quando importi un'immagine macchina in Compute Engine, Migrate to Virtual Machines crea prima una risorsa di importazione dell'immagine macchina. La risorsa di importazione dell'immagine della macchina rappresenta il processo di importazione dell'immagine 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.