Se nel tuo ambiente on-premise disponi di dischi virtuali con le configurazioni e il software di cui hai bisogno (a volte indicati come dischi dorati o immagini dorate), puoi risparmiare tempo importando questi dischi in Compute Engine e utilizzando l'immagine risultante per creare macchine virtuali. Lo strumento di importazione supporta la maggior parte dei formati di file di dischi virtuali, tra cui VMDK e VHD.
Se hai esportato il disco da Compute Engine, puoi creare immagini dal disco.
Per informazioni su come creare un sistema automatico per la migrazione di diverse macchine virtuali (VM), consulta Migrazione delle VM in Compute Engine.
Prima di iniziare
- Se è stato definito un criterio relativo alle immagini attendibili per il progetto in cui stai importando l'immagine, aggiungi
projects/compute-image-import
eprojects/compute-image-tools
all'elenco di publisher consentiti. - Per scoprire come soddisfare i requisiti prima di importare le immagini, consulta la pagina Prerequisiti per l'importazione e l'esportazione delle immagini VM.
-
Se non l'hai ancora fatto, configura l'autenticazione.
L'autenticazione è il processo mediante il quale viene verificata l'identità per l'accesso ai servizi e alle API Google Cloud.
Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti in Compute Engine nel seguente modo.
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Installa Google Cloud CLI, quindi initialize eseguendo questo comando:
gcloud init
- Set a default region and zone.
Se importi un disco virtuale che esegue RHEL, l'opzione Bring Your Own License (BYOL) è supportata solo se il pacchetto python-boto è installato sul disco virtuale prima dell'importazione.
I sistemi operativi sui dischi virtuali devono supportare il protocollo ACPI.
Questa funzionalità non è supportata per i progetti protetti con Controlli di servizio VPC. Per questi ambienti, consulta Importazione manuale dei dischi di avvio.
Non puoi importare immagini Arm utilizzando lo strumento di importazione delle immagini. Per importare immagini ARM, segui le istruzioni dettagliate come descritto in Importare manualmente i dischi di avvio.
Compute Engine non supporta l'importazione di dischi software criptati perché non possono essere letti senza una chiave. In particolare, non puoi importare immagini di Windows 10 e versioni successive che utilizzano la crittografia dell'unità BitLocker.
I dischi virtuali Linux devono utilizzare
grub
come bootloader.I dischi virtuali Linux devono soddisfare gli stessi requisiti delle immagini personalizzate, incluso il supporto per i dispositivi Virtio-SCSI Storage Controller.
Se installato sui dischi virtuali di Windows, il software che consente la lista consentita delle applicazioni, ad esempio CB Protection by Carbon Black, può causare la mancata riuscita del processo di importazione. Potrebbe essere necessario disinstallare questo software prima dell'importazione.
Sulle VM basate su Windows, l'adattatore di loopback Microsoft KM-TEST impedisce l'accesso di rete al server dei metadati e devi disabilitarlo o rimuoverlo prima dell'importazione.
- Nella console Google Cloud, carica il file del disco virtuale in Cloud Storage.
Vai alla pagina Crea un'immagine .
Specifica un nome per l'immagine.
In Origine, seleziona Disco virtuale (VMDK, VHD e così via).
Sfoglia o inserisci manualmente la posizione di archiviazione per il file Cloud Storage.
Seleziona il sistema operativo disponibile sul disco importato. Puoi anche apportare le seguenti modifiche:
Puoi scegliere di installare pacchetti ospite. Google consiglia di installare l'ambiente guest. Per ulteriori informazioni sull'ambiente guest, consulta la pagina relativa all'ambiente ospite.
Per i sistemi operativi Windows o Red Hat Enterprise Linux (RHEL), puoi anche scegliere un'opzione di licenza. Puoi consentire a Compute Engine di fornire una licenza o portarla con te. Per scoprire di più su come utilizzare il modello Bring Your Own License per Windows, consulta la pagina Bring Your Own License.
(Facoltativo) Specifica altre proprietà per l'immagine. Ad esempio, puoi organizzare questa immagine come parte di una famiglia di immagini.
Fai clic su Crea per importare l'immagine.
IMAGE_NAME
: il nome dell'immagine di destinazione.SOURCE_FILE
: il file del tuo disco virtuale. Questo file può essere un file locale o un file archiviato in Cloud Storage. Se il disco virtuale è un file locale, puoi fornire un percorso assoluto o relativo. Se il file del disco virtuale è già archiviato in Cloud Storage, il file deve esistere in un bucket Cloud Storage nel progetto utilizzato per il processo di importazione e devi specificare il percorso completo del file nel formatogs://BUCKET_NAME/OBJECT_NAME
.Aggiungi il disco virtuale a Cloud Storage.
Invia una richiesta
POST
all'API Cloud Build.POST https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/builds { "steps":[ { "args":[ "-image_name=IMAGE_NAME", "-source_file=SOURCE_FILE", "-timeout=7000s", "-client_id=api" ], "name":"gcr.io/compute-image-import/gce_vm_image_import:release", "env":[ "BUILD_ID=$BUILD_ID" ] } ], "timeout":"7200s", "tags":[ "gce-daisy", "gce-daisy-image-import" ] }
Sostituisci quanto segue:
PROJECT_ID
: l'ID del progetto in cui vuoi importare l'immagine.IMAGE_NAME
: il nome dell'immagine da importare.SOURCE_FILE
: l'URI dell'immagine in Cloud Storage, ad esempiogs://my-bucket/my-image.vmdk
.
Per ulteriori valori
args
che è possibile fornire, consulta la sezione dei flag facoltativi della pagina GitHub di importazione dell'immagine VM.Esempio di risposta
La seguente risposta di esempio è simile all'output restituito:
{ "name": "operations/build/myproject-12345/operation-1578608233418", "metadata": { "@type": "type.googleapis.com/google.devtools.cloudbuild.v1.BuildOperationMetadata", "build": { "id": "3a2055bc-ccbd-4101-9434-d376b88b8940", "status": "QUEUED", "createTime": "2019-09-20T15:55:29.353258929Z", "steps": [ { "name": "gcr.io/compute-image-import/gce_vm_image_import:release", "env": [ "BUILD_ID=3a2055bc-ccbd-4101-9434-d376b88b8940" ], "args": [ "-timeout=7000s", "-image_name=my-image", "-client_id=api", "-data-disk", "-source_file=gs://my-bucket/my-image.vmdk" ] } ], "timeout": "7200s", "projectId": "myproject-12345", "logsBucket": "gs://123456.cloudbuild-logs.googleusercontent.com", "options": { "logging": "LEGACY" }, "logUrl": "https://console.cloud.google.com/cloud-build/builds/3a2055bc-ccbd-4101-9434-d376b88b8940?project=123456" } }
Puoi monitorare la build in due modi:
- Esegui una richiesta projects.builds.get utilizzando il valore
build-id
restituito. - Esamina i log ospitati nel
logUrl
fornito.
IMAGE_NAME
: il nome dell'immagine da creare.SOURCE_FILE
: un file locale o URI Cloud Storage del disco virtuale da importare.OS
: il sistema operativo dell'immagine disco da importare. La licenza per il sistema operativo viene dedotta dal valore di questo flag; non esiste un flag esplicito per fornire informazioni sulla licenza durante l'importazione. Per un elenco dei valori supportati, vedi il flag--os
.- Nella console Google Cloud, carica il file del disco virtuale in Cloud Storage.
Vai alla pagina Crea un'immagine.
Specifica un nome per l'immagine.
In Origine, seleziona Disco virtuale (VMDK, VHD, ...).
Sfoglia o inserisci manualmente la posizione di archiviazione per il file Cloud Storage.
Nella sezione Sistema operativo, seleziona Nessun sistema operativo. Solo dati.
(Facoltativo) Specifica altre proprietà per l'immagine. Ad esempio, puoi organizzare questa immagine come parte di una famiglia di immagini.
Fai clic su Crea per importare l'immagine.
IMAGE_NAME
: il nome dell'immagine di destinazione.SOURCE_FILE
: il file del tuo disco virtuale. Può essere un file locale o un file archiviato in Cloud Storage. Se il disco virtuale è un file locale, puoi utilizzare un percorso assoluto o relativo. Se il file del disco virtuale è già archiviato in Cloud Storage, il file deve esistere in un bucket Cloud Storage nel progetto utilizzato per il processo di importazione e devi specificare il percorso completo del file nel formatogs://BUCKET_NAME/OBJECT_NAME
.Aggiungi il disco virtuale a Cloud Storage.
Invia una richiesta
POST
all'API Cloud Build.POST https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/builds { "steps":[ { "args":[ "-image_name=IMAGE_NAME", "-source_file=SOURCE_FILE", "-timeout=7000s", "-client_id=api", "-data_disk" ], "name":"gcr.io/compute-image-import/gce_vm_image_import:release", "env":[ "BUILD_ID=$BUILD_ID" ] } ], "timeout":"7200s", "tags":[ "gce-daisy", "gce-daisy-image-import" ] }
Sostituisci i seguenti valori
args
:PROJECT_ID
: l'ID del progetto in cui vuoi importare l'immagine.IMAGE_NAME
: il nome dell'immagine da importare.SOURCE_FILE
: l'URI dell'immagine in Cloud Storage, ad esempiogs://my-bucket/my-image.vmdk
.
Aggiungi il disco virtuale a Cloud Storage.
Il processo di importazione delle immagini richiede l'installazione di gestori di pacchetti nel sistema operativo per il disco virtuale. Questi gestori di pacchetti potrebbero dover effettuare richieste ai repository di pacchetti esterni a Google Cloud. Per consentire l'accesso a questi aggiornamenti, devi configurare Cloud NAT. Per ulteriori informazioni, consulta Creare una configurazione NAT utilizzando il router Cloud.
Configura l'accesso privato Google. Per ulteriori informazioni, consulta Configurazione dell'accesso privato Google.
Importa il disco virtuale utilizzando Google Cloud CLI o REST.
Quando importi un disco virtuale, nel progetto vengono create delle VM temporanee. Per assicurarti che a queste VM temporanee non siano assegnati indirizzi IP esterni, devi specificare un flag o un argomento aggiuntivo.
Per ulteriori informazioni, fai clic sulle seguenti schede:
IMAGE_NAME
: il nome dell'immagine disco che vuoi creare.SOURCE_FILE
: il file del tuo disco virtuale. Può essere un file locale o un file archiviato in Cloud Storage. Se il disco virtuale è un file locale, puoi fornire un percorso assoluto o relativo. Se il file del disco virtuale è già archiviato in Cloud Storage, il file deve esistere in un bucket Cloud Storage nel progetto utilizzato per il processo di importazione e devi specificare il percorso completo del file nel formatogs://BUCKET_NAME/OBJECT_NAME
.ZONE
: la zona in cui creare l'immagine. Se non la specifichi, viene utilizzata la zona predefinita per il progetto.PROJECT_ID
: l'ID del progetto in cui vuoi importare l'immagine.IMAGE_NAME
: il nome dell'immagine da importare.SOURCE_FILE
: l'URI dell'immagine in Cloud Storage. Ad esempio,gs://my-bucket/my-image.vmdk
. per il comandogcloud compute images import
.ZONE
: la zona in cui creare l'immagine. Se non la specifichi, viene utilizzata la zona predefinita per il progetto.- Se il processo di importazione dell'immagine non riesce a rilevare il bootloader UEFI durante l'importazione.
Se il disco può essere avviato in modalità doppia e presenta una combinazione di: hybrid-mbr + UEFI o protective-mbr + UEFI. Per i dischi con avvio doppio, l'importazione potrebbe utilizzare l'avvio non UEFI per impostazione predefinita.
IMAGE_NAME
: il nome dell'immagine da importare.SOURCE_FILE
: l'URI dell'immagine in Cloud Storage, ad esempiogs://my-bucket/my-image.vmdk
.Aggiungi il disco virtuale a Cloud Storage.
Invia una richiesta
POST
all'API Cloud Build.POST https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/builds { "steps":[ { "args":[ "-image_name=IMAGE_NAME", "-source_file=SOURCE_FILE", "-uefi_compatible", "-timeout=7000s", "-client_id=api" ], "name":"gcr.io/compute-image-import/gce_vm_image_import:release", "env":[ "BUILD_ID=$BUILD_ID" ] } ], "timeout":"7200s", "tags":[ "gce-daisy", "gce-daisy-image-import" ] }
Sostituisci quanto segue:
PROJECT_ID
: l'ID del progetto in cui vuoi importare l'immagine.IMAGE_NAME
: il nome dell'immagine da importare.SOURCE_FILE
: l'URI dell'immagine in Cloud Storage, ad esempiogs://my-bucket/my-image.vmdk
.
IMAGE_NAME
: il nome dell'immagine da importare.SOURCE_FILE
: il file del tuo disco virtuale. Può essere un file locale o un file archiviato in Cloud Storage. Se il disco virtuale è un file locale, puoi fornire un percorso assoluto o relativo. Se il file del disco virtuale è già archiviato in Cloud Storage, il file deve esistere in un bucket Cloud Storage nel progetto utilizzato per il processo di importazione e devi specificare il percorso completo del file nel formatogs://BUCKET_NAME/OBJECT_NAME
.SERVICE_PROJECT_ID
: ID del progetto in cui vuoi importare l'immagine.ZONE
: la zona in cui vuoi importare l'immagine. Questa zona deve corrispondere alla regione della subnet. Ad esempio, seSUBNET
èus-west1
. La zona di importazione deve essere una delle seguenti:us-west1-a
,us-west1-b
ous-west1-c
.NETWORK
: il percorso completo di una rete VPC condivisa. Ad esempio,projects/HOST_PROJECT_ID/global/networks/VPC_NETWORK_NAME
.SUBNET
: il percorso completo di una subnet VPC condivisa, ad esempioprojects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME
.Comando di esempio
gcloud compute images import example-image \ --source-file gs://source-bucket/source-file.vmdk \ --project my-image-project \ --zone us-west1-c \ --network projects/my-vpc-project/global/networks/my-shared-vpc \ --subnet projects/my-vpc-project/regions/us-west1/subnetworks/my-shared-subnet
Aggiungi il disco virtuale a Cloud Storage.
Invia una richiesta
POST
all'API Cloud Build.POST https://cloudbuild.googleapis.com/v1/projects/SERVICE_PROJECT_ID/builds { "steps":[ { "args":[ "-image_name=IMAGE_NAME", "-source_file=SOURCE_FILE", "-zone=ZONE", "-network=NETWORK", "-subnet=SUBNET", "-timeout=7000s", "-client_id=api" ], "name":"gcr.io/compute-image-import/gce_vm_image_import:release", "env":[ "BUILD_ID=$BUILD_ID" ] } ], "timeout":"7200s", "tags":[ "gce-daisy", "gce-daisy-image-import" ] }
Sostituisci i seguenti valori
args
:SERVICE_PROJECT_ID
: ID del progetto in cui vuoi importare l'immagine.IMAGE_NAME
: il nome dell'immagine da importare.SOURCE_FILE
: URI dell'immagine in Cloud Storage, ad esempiogs://my-bucket/my-image.vmdk
.ZONE
: la zona in cui vuoi importare l'immagine. Questa zona deve corrispondere alla regione della subnet. Ad esempio, seSUBNET
èus-west1
. La zona di importazione deve essere una delle seguenti:us-west1-a
,us-west1-b
ous-west1-c
.NETWORK
: il percorso completo di una rete VPC condivisa. Ad esempio,projects/HOST_PROJECT_ID/global/networks/VPC_NETWORK_NAME
.SUBNET
: il percorso completo di una subnet VPC condivisa, ad esempio:projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME
Aggiungi il disco virtuale a Cloud Storage.
Crea un account di servizio e assegna i ruoli minimi. Per saperne di più sulla creazione di account di servizio, consulta Creazione e gestione degli account di servizio.
All'account di servizio Compute Engine specificato devono essere assegnati almeno i ruoli seguenti:
roles/compute.storageAdmin
roles/storage.objectViewer
Per saperne di più, consulta Concedere i ruoli richiesti all'account di servizio Compute Engine.
Usa il
gcloud compute images import
per importare l'immagine.gcloud compute images import IMAGE_NAME \ --source-file SOURCE_FILE \ --compute-service-account SERVICE_ACCOUNT_EMAIL
Sostituisci quanto segue:
IMAGE_NAME
: il nome dell'immagine di destinazione.SOURCE_FILE
: il file del tuo disco virtuale. Questo file può essere un file locale o un file archiviato in Cloud Storage. Se il disco virtuale è un file locale, puoi fornire un percorso assoluto o relativo. Se il file del disco virtuale è già archiviato in Cloud Storage, il file deve esistere in un bucket Cloud Storage nel progetto utilizzato per il processo di importazione e devi specificare il percorso completo del file nel formatogs://BUCKET_NAME/OBJECT_NAME
.SERVICE_ACCOUNT_EMAIL
: l'indirizzo email associato all'account di servizio Compute Engine creato nel passaggio precedente.
Esempio
L'esempio seguente importa un disco virtuale di avvio denominato
my_server.vmdk
archiviato ings://your_gcs_bucket
utilizzando un account di servizio con l'indirizzo emailimage-export-service-account@proj-12345.iam.gserviceaccount.com
.gcloud compute images import my-imported-image \ --source-file gs://your_gcs_bucket/my_server.vmdk \ --compute-service-account image-export-service-account@proj-12345.iam.gserviceaccount.com
Aggiungi il disco virtuale a Cloud Storage.
Crea un account di servizio e assegna i ruoli minimi. Per saperne di più sulla creazione di account di servizio, consulta Creazione e gestione degli account di servizio.
All'account di servizio Compute Engine specificato devono essere assegnati almeno i ruoli seguenti:
roles/compute.storageAdmin
roles/storage.objectViewer
Per saperne di più, consulta Concedere i ruoli richiesti all'account di servizio Compute Engine.
Aggiungi il disco virtuale a Cloud Storage.
Invia una richiesta
POST
all'API Cloud Build.POST https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/builds { "steps":[ { "args":[ "-image_name=IMAGE_NAME", "-source_file=SOURCE_FILE", "-compute_service_account=SERVICE_ACCOUNT_EMAIL", "-timeout=7000s", "-client_id=api" ], "name":"gcr.io/compute-image-import/gce_vm_image_import:release", "env":[ "BUILD_ID=$BUILD_ID" ] } ], "timeout":"7200s", "tags":[ "gce-daisy", "gce-daisy-image-import" ] }
Sostituisci quanto segue:
PROJECT_ID
: l'ID del progetto in cui vuoi importare l'immagine.IMAGE_NAME
: il nome dell'immagine da importare.SOURCE_FILE
: l'URI dell'immagine in Cloud Storage, ad esempiogs://my-bucket/my-image.vmdk
.SERVICE_ACCOUNT_EMAIL
: l'indirizzo email associato all'account di servizio Compute Engine creato nel passaggio precedente.
IMAGE_NAME
: il nome dell'immagine di destinazione.SOURCE_IMAGE_NAME
: il nome dell'immagine di origine.Per istruzioni su come importare immagini in Google Cloud con licenze esistenti, consulta la pagina Bringing Your Own License (BYOL)
- Crea una nuova istanza VM che utilizza l'immagine avviabile.
- Condividi l'immagine tra i progetti.
REST
Per utilizzare gli esempi di API REST in questa pagina in un ambiente di sviluppo locale, devi utilizzare le credenziali che fornisci a gcloud CLI.
Installa Google Cloud CLI, quindi initialize eseguendo questo comando:
gcloud init
Per maggiori informazioni, consulta Autenticazione per REST nella documentazione sull'autenticazione di Google Cloud.
Sistemi operativi supportati
Puoi importare dischi avviabili e non avviabili. Per poter avviare i dischi virtuali su Compute Engine, i dischi virtuali devono eseguire uno dei sistemi operativi supportati.
Supporto per BYOL e BYOS
Se preferisci utilizzare una licenza software o un abbonamento personale, puoi importare i dischi virtuali con le relative licenze. Per informazioni sui sistemi operativi che supportano BYOL o BYOS, consulta Dettagli del sistema operativo.
Puoi importare immagini con licenze esistenti utilizzando il comando
gcloud compute instances import
con il flag--byol
.Limitazioni
Questa funzionalità presenta le seguenti limitazioni generali:
Questa funzionalità presenta le seguenti limitazioni su Linux:
Questa funzionalità presenta le seguenti limitazioni su Windows:
Autorizzazioni
Per un'esperienza fluida durante l'importazione delle immagini, assicurati di aver concesso i ruoli IAM richiesti al tuo account, all'account di servizio Cloud Build e all'account di servizio Compute Engine. Per ulteriori informazioni, consulta Concedere i ruoli IAM richiesti.
Verifica la compatibilità
Prima di tentare di importare il disco per la VM, scarica ed esegui lo strumento di precontrollo all'interno della VM. Lo strumento di precontrollo analizza eventuali problemi di compatibilità che potrebbero causare l'errore del processo di importazione o il funzionamento non corretto del disco su Compute Engine.
Importa dischi virtuali
Puoi importare i dischi virtuali utilizzando la console Google Cloud, Google Cloud CLI o l'API Cloud Build.
Importa un disco virtuale di avvio
Per i dischi di avvio, non è necessario specificare il sistema operativo perché lo strumento di importazione rileva automaticamente il sistema operativo per determinare i driver e i pacchetti richiesti. Tuttavia, se devi eseguire l'override del sistema operativo rilevato, puoi specificare il flag
--os
o il parametro-os
. Per un elenco dei valori supportati, vedi Flag--os
.Console
gcloud
Utilizza il comando
gcloud compute images import
per creare un'immagine Compute Engine avviabile. Sebbene Compute Engine possa avviare la maggior parte delle immagini del disco di avvio, il comandoimport
assicura che il disco disponga dei driver richiesti e dei più recenti pacchetti di ambiente guest, necessari per avviare un'istanza e connettersi all'istanza mediante SSH o RDP.Puoi importare file di dischi virtuali da un bucket Cloud Storage o dalla tua workstation locale.
Se importi il file del disco virtuale dalla workstation, lo strumento di importazione carica automaticamente il file in un bucket Cloud Storage.
Se preferisci, puoi caricare autonomamente il file del disco virtuale in Cloud Storage prima di avviare il processo di importazione, ma devi caricare il file in un bucket Cloud Storage nello stesso progetto che verrà utilizzato per il processo di importazione.
gcloud compute images import IMAGE_NAME \ --source-file SOURCE_FILE
Sostituisci quanto segue:
Se importi un'immagine con una licenza esistente, specifica il flag
--byol
come segue:gcloud compute images import IMAGE_NAME \ --source-file SOURCE_FILE --byol
Per istruzioni su come importare immagini in Google Cloud con licenze esistenti, consulta la pagina Bringing Your Own License (BYOL)
Se specifichi un file locale, l'operazione di caricamento può richiedere molto tempo, a seconda delle dimensioni del disco virtuale e della velocità della connessione di rete. L'esecuzione dell'operazione di importazione può richiedere decine di minuti, a seconda delle dimensioni del disco.
Esempio
L'esempio seguente importa un disco virtuale denominato
my_server.vmdk
archiviato ings://your_gcs_bucket
.gcloud compute images import my-imported-image \ --source-file gs://your_gcs_bucket/my_server.vmdk
Parametri facoltativi
Per impostazione predefinita, i pacchetti di ambiente ospite vengono aggiunti a tutte le immagini del disco di avvio importate. Se non vuoi questi pacchetti, aggiungi il flag
--no-guest-environment
al comando di importazione.REST
Importa e aggiungi una licenza a un disco virtuale
Per aggiungere una licenza durante l'importazione di un'immagine, utilizza il seguente comando
gcloud compute images import
.gcloud compute images import IMAGE_NAME \ --source-file=SOURCE_FILE --os=OS
Sostituisci quanto segue:
Per ulteriori informazioni su come visualizzare e aggiungere licenze, consulta Visualizzare e aggiungere le licenze.
Importa un disco virtuale non avviabile
Console
gcloud
Puoi utilizzare il comando
gcloud compute images import
per creare un'immagine Compute Engine non avviabile. Se sul disco virtuale non è installato un sistema operativo avviabile, specifica il flag--data-disk
. In questo modo viene saltato il passaggio che installa i driver e i pacchetti di ambiente guest per rendere l'immagine avviabile su Compute Engine.gcloud compute images import IMAGE_NAME \ --source-file SOURCE_FILE \ --data-disk
Sostituisci quanto segue:
Esempio 1: importazione di un disco virtuale non avviabile da Cloud Storage
L'esempio seguente importa il nome di un disco virtuale
my_disk.vmdk
archiviato ings://your_gcs_bucket
.gcloud compute images import my-imported-image \ --source-file gs://your_gcs_bucket/my_disk.vmdk --data-disk
Esempio 2: importare un file VMDK di grandi dimensioni specificando il valore di timeout
Il valore di timeout predefinito per il processo di importazione è di due ore. L'importazione di file VMDK di grandi dimensioni potrebbe richiedere fino a 24 ore. Se non specifichi il flag
--timeout
quando importi file di dimensioni così grandi, il processo non andrà a buon fine dopo due ore.L'esempio seguente importa un disco virtuale denominato
my_disk.vmdk
archiviato ings://your_gcs_bucket
. Il valore di timeout per questa importazione è 24 ore.gcloud compute images import my-imported-image \ --source-file gs://your_gcs_bucket/my_disk.vmdk --data-disk --timeout=24h
REST
Importa i dischi utilizzando reti che non consentono indirizzi IP esterni
Per importare dischi virtuali utilizzando una rete che non consente IP esterni, procedi nel seguente modo:
gcloud
Utilizza il comando
gcloud compute images import
con il flag--no-address
per importare il disco virtuale.gcloud compute images import IMAGE_NAME \ --source-file=SOURCE_FILE \ --zone=ZONE \ --no-address
Sostituisci quanto segue:
REST
Invia una richiesta
POST
all'API Cloud Build e specifica l'argomento-no-external-ip
.POST https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/builds { "steps":[ { "args":[ "-image_name=IMAGE_NAME", "-source_file=SOURCE_FILE", "-zone=ZONE", "-no_external_ip", "-timeout=7000s", "-client_id=api" ], "name":"gcr.io/compute-image-import/gce_vm_image_import:release", "env":[ "BUILD_ID=$BUILD_ID" ] } ], "timeout":"7200s", "tags":[ "gce-daisy", "gce-daisy-image-import" ] }
Sostituisci quanto segue:
Importa un disco virtuale con bootloader UEFI
Per la maggior parte dei dischi virtuali, Compute Engine può rilevare e importare correttamente i dischi con un bootloader UEFI senza bisogno di un flag aggiuntivo.
Tuttavia, in scenari come questi, potrebbe essere necessario forzare un avvio UEFI durante l'importazione.
gcloud
Puoi utilizzare il comando
gcloud compute images import
per forzare un'importazione a utilizzare l'avvio UEFI.gcloud compute images import IMAGE_NAME \ --source-file=SOURCE_FILE \ --guest-os-features=UEFI_COMPATIBLE
Sostituisci quanto segue:
Esempio
L'esempio seguente importa un disco virtuale denominato
my-disk.vmdk
archiviato ings://my-gcs-bucket/
e ne forza l'utilizzo dell'avvio UEFI.gcloud compute images import my-imported-image \ --source-file gs://my-gcs-bucket/my-disk.vmdk \ --guest-os-features=UEFI_COMPATIBLE
REST
Per forzare un'importazione a utilizzare l'avvio UEFI, puoi utilizzare l'API Cloud Build e specificare l'argomento
-uefi_compatible
. A tale scopo, completa i seguenti passaggi:Importa un disco virtuale utilizzando un VPC condiviso
Prima di importare un disco virtuale che utilizza un VPC condiviso, devi aggiungere il ruolo
compute.networkUser
all'account di servizio Cloud Build. Per maggiori informazioni, consulta Concedere i ruoli richiesti all'account di servizio Cloud Build.gcloud
Utilizza il comando
gcloud compute images import
per importare il disco virtuale.gcloud compute images import IMAGE_NAME \ --source-file SOURCE_FILE \ --project SERVICE_PROJECT_ID \ --zone ZONE \ --network NETWORK \ --subnet SUBNET
Sostituisci quanto segue:
REST
Importazione di un disco virtuale utilizzando un account di servizio Compute Engine personalizzato
Durante l'importazione di un'immagine, nel progetto vengono create istanze di macchine virtuali temporanee (VM). Lo strumento di importazione delle immagini su queste VM temporanee deve essere autenticato.
Un account di servizio è un'identità collegata a una VM. È possibile accedere ai token di accesso all'account di servizio tramite il server dei metadati dell'istanza e utilizzarli per autenticare lo strumento di importazione delle immagini nella VM.
Per impostazione predefinita, il processo di importazione utilizza l'agente di servizio Compute Engine predefinito del progetto. Tuttavia, se l'account di servizio Compute Engine predefinito è disabilitato nel tuo progetto o se vuoi utilizzare un account di servizio Compute Engine personalizzato, devi creare un account di servizio e specificarlo per il processo di importazione.
gcloud
REST
Crea un'immagine avviabile
Se hai un'immagine personalizzata di Compute Engine in cui è installato un sistema operativo avviabile ma non dispone dei driver Compute Engine o dei pacchetti dell'ambiente guest necessari, puoi utilizzare lo strumento di importazione delle immagini per rendere l'immagine avviabile in Compute Engine.
Utilizza il flag
--source-image
per specificare un'immagine personalizzata da rendere avviabile, invece di usare il flag--source-file
che specifica il nuovo disco da importare.gcloud compute images import IMAGE_NAME \ --source-image SOURCE_IMAGE_NAME
Sostituisci quanto segue:
Comando di esempio
L'esempio seguente trasforma un'immagine Compute Engine denominata
my-image
in un'immagine avviabile denominatamy-bootable-image
. In questo esempio,--os ubuntu-1604
sostituisce il sistema operativo rilevato.gcloud compute images import my-bootable-image \ --source-image my-image \ --os ubuntu-1604
Pulizia delle risorse
I file archiviati in Cloud Storage e le immagini in Compute Engine sono soggetti ad addebiti. Lo strumento di importazione importa il file del disco virtuale in Cloud Storage e crea un'immagine personalizzata di Compute Engine.
Dopo aver verificato che l'immagine sia stata importata correttamente e che si avvii correttamente come istanza di Compute Engine, puoi eliminare il file del disco virtuale da Cloud Storage. Lo strumento stampa l'URI del file durante il caricamento su Cloud Storage. Questo URI ha il seguente formato:
gs://BUCKET_NAME/tmpimage/IMAGE_NAME
.Se hai importato un'immagine utilizzando il flag
--data-disk
e poi hai eseguito lo strumentoimport
una seconda volta con il flag--source-image
per rendere l'immagine avviabile, la prima immagine esiste ancora. Se non ti serve, considera la possibilità di eliminarla. Se specifichi lo stesso nome dell'immagine per entrambi i flag--image
e--source-image
, l'immagine verrà sovrascritta automaticamente e non sarà necessaria un'ulteriore pulizia.Passaggi successivi
Salvo quando diversamente specificato, i contenuti di questa pagina sono concessi in base alla licenza Creative Commons Attribution 4.0, mentre gli esempi di codice sono concessi in base alla licenza Apache 2.0. Per ulteriori dettagli, consulta le norme del sito di Google Developers. Java è un marchio registrato di Oracle e/o delle sue consociate.
Ultimo aggiornamento 2024-05-24 UTC.
[{ "type": "thumb-down", "id": "hardToUnderstand", "label":"Hard to understand" },{ "type": "thumb-down", "id": "incorrectInformationOrSampleCode", "label":"Incorrect information or sample code" },{ "type": "thumb-down", "id": "missingTheInformationSamplesINeed", "label":"Missing the information/samples I need" },{ "type": "thumb-down", "id": "translationIssue", "label":"Problema di traduzione" },{ "type": "thumb-down", "id": "otherDown", "label":"Altra" }] [{ "type": "thumb-up", "id": "easyToUnderstand", "label":"Facile da capire" },{ "type": "thumb-up", "id": "solvedMyProblem", "label":"Il problema è stato risolto" },{ "type": "thumb-up", "id": "otherUp", "label":"Altra" }] -