Puoi creare immagini personalizzate da dischi di origine, immagini, snapshot o immagini archiviate in Cloud Storage e utilizzare queste immagini per creare istanze di macchine virtuali (VM). Le immagini personalizzate sono ideali per le situazioni in cui hai creato e modificato un disco di avvio permanente o un'immagine specifica in uno stato specifico e devi salvarlo per creare le VM.
In alternativa, puoi utilizzare lo strumento di importazione di dischi virtuali per importare immagini del disco di avvio in Compute Engine dai tuoi sistemi esistenti e aggiungerle all'elenco di immagini personalizzate.
Prima di iniziare
- Se vuoi utilizzare gli esempi a riga di comando in questa guida:
- Installa o aggiorna l'ultima versione di Google Cloud CLI.
- Imposta una regione e una zona predefinite.
- Se vuoi utilizzare gli esempi di API in questa guida, configura l'accesso API.
- Leggi il documento Immagini.
Creare un'immagine personalizzata
Questa sezione descrive come creare un'immagine personalizzata su una VM Linux. Per informazioni sulla creazione di un'immagine Windows, consulta la sezione Creazione di un'immagine Windows.
Seleziona una posizione di archiviazione delle immagini
Quando crei un'immagine personalizzata, puoi specificare la località Cloud Storage dell'immagine, escluse le località a doppia area geografica. Se specifichi la località di archiviazione delle immagini, puoi soddisfare i tuoi requisiti normativi e di conformità per la località dei dati, nonché le tue esigenze di alta disponibilità, garantendo la ridondanza in tutte le aree geografiche. Per creare, modificare ed eliminare le immagini archiviate in Cloud Storage, devi avere roles/compute.storageAdmin
.
La funzione di geolocalizzazione è facoltativa. Se non selezioni una località, Compute Engine archivia l'immagine nella località a più aree geografiche più vicina all'origine dell'immagine. Ad esempio, quando crei un'immagine da un disco di origine che si trova in us-central1
e non specifichi una posizione per l'immagine personalizzata, Compute Engine archivia l'immagine nella multiregione us
.
Se l'immagine non è disponibile in una regione in cui stai creando una VM, Compute Engine memorizza l'immagine in quella regione la prima volta che crei una VM.
Per vedere la posizione in cui viene archiviata un'immagine, utilizza il comando images describe
di gcloud compute
:
gcloud compute images describe IMAGE_NAME \ --project=PROJECT_ID
Sostituisci quanto segue:
IMAGE_NAME: il nome dell'immagine.
PROJECT_ID: l'ID progetto a cui appartiene l'immagine.
Tutte le immagini esistenti prima del lancio di questa funzionalità rimangono dove si trovano. L'unica differenza è che puoi visualizzare la posizione delle immagini. Se hai un'immagine esistente che vuoi spostare, devi ricrearla nella posizione desiderata.
Prepara la tua VM per un'immagine
Puoi creare un'immagine da un disco anche mentre è collegata a una VM in esecuzione. Tuttavia, l'immagine è più affidabile se imposti la VM in uno stato più facile da acquisire. In questa sezione viene descritto come preparare il disco di avvio per l'immagine.
Riduci al minimo la scrittura dei dati sul disco permanente
Utilizza una delle seguenti procedure per ridurre le scritture del disco:
Arresta la VM in modo che possa arrestarsi e interrompere la scrittura di dati sul disco permanente.
Se non riesci ad arrestare la VM prima di creare l'immagine, riduci al minimo la quantità di scritture sul disco e sincronizza il file system. Per ridurre al minimo la scrittura sul disco permanente, segui questi passaggi:
- Metti in pausa app o processi del sistema operativo che scrivono i dati sul disco permanente.
- Se necessario, esegui uno svuotamento dell'app su disco. Ad esempio, MySQL ha un'istruzione
FLUSH
. Altre app potrebbero avere processi simili. - Interrompi la scrittura delle app sul disco permanente.
- Esegui
sudo sync
.
Disattiva l'opzione di eliminazione automatica per il disco
Per impostazione predefinita, l'opzione di eliminazione automatica è abilitata sui dischi di avvio. Prima di creare un'immagine da un disco, disabilita l'eliminazione automatica per assicurarti che il disco non venga eliminato automaticamente quando elimini la VM.
Puoi utilizzare la console Google Cloud, Google Cloud CLI o l'API Compute Engine per disabilitare l'eliminazione automatica per il disco.
Console
In Google Cloud Console, vai alla pagina Istanze VM.
Fai clic sulla VM che stai utilizzando come origine per la creazione di un'immagine. Viene visualizzata la pagina Dettagli istanza VM.
Fai clic su Modifica.
Nella sezione Disco di avvio, per la Regola di eliminazione, assicurati che sia selezionata l'opzione Conserva disco.
Fai clic su Salva.
gcloud
In Google Cloud CLI, usa il comando gcloud compute instances set-disk-auto-delete
per disabilitare l'opzione di eliminazione automatica per il disco.
gcloud compute instances set-disk-auto-delete VM_NAME \ --no-auto-delete \ --disk=SOURCE_DISK
Sostituisci quanto segue:
VM_NAME
: il nome dell'istanza VM.SOURCE_DISK
: il nome del disco da cui vuoi creare l'immagine.
API
Per impostare l'opzione di eliminazione automatica di un disco, effettua una richiesta POST
al metodo instances.setDiskAutoDelete
.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/setDiskAutoDelete?autoDelete=false&deviceName=SOURCE_DISK
Sostituisci quanto segue:
PROJECT_ID
: l'ID progetto a cui appartiene la VM di origine.ZONE
: la zona in cui si trova la VM di origine.VM_NAME
: il nome della VM di origine.SOURCE_DISK
: nome del dispositivo del disco da cui vuoi creare l'immagine.
Dopo aver preparato la VM, crea l'immagine.
Crea l'immagine
Puoi creare immagini disco dalle seguenti origini:
- Un disco permanente, anche se è collegato a una VM
- Uno snapshot di un disco permanente
- Un'altra immagine nel tuo progetto
- Un'immagine condivisa da un altro progetto
- Un'immagine RAW compressa in Cloud Storage
Puoi creare un'immagine disco una volta ogni 10 minuti. Se vuoi emettere una serie di richieste di creazione di un'immagine disco, puoi inviare al massimo 6 richieste in 60 minuti. Per ulteriori informazioni, consulta la pagina relativa ai limiti di frequenza per snapshot.
Console
In Google Cloud Console, vai alla pagina Crea un'immagine.
Specifica il nome dell'immagine.
Specifica l'origine da cui vuoi creare un'immagine. Può essere un disco permanente, uno snapshot, un'altra immagine o un file disco.raw in Cloud Storage.
Se stai creando un'immagine da un disco collegato a una VM in esecuzione, seleziona Mantieni in esecuzione l'istanza per confermare che vuoi creare l'immagine mentre la VM è in esecuzione. Puoi preparare la VM prima di creare l'immagine.
Nell'elenco a discesa In base alla posizione del disco di origine (predefinita), specifica la posizione in cui archiviare l'immagine. Ad esempio, specifica
us
per archiviare l'immagine nell'area geograficaus
ous-central1
per archiviarla nell'area geograficaus-central1
. Se non effettui una selezione, Compute Engine archivia l'immagine nella località a più regioni più vicina alla posizione di origine dell'immagine.(Facoltativo) Specifica le proprietà dell'immagine.
- Famiglia: la famiglia di immagini a cui appartiene questa nuova immagine.
- Descrizione: una descrizione della tua immagine personalizzata.
- Etichetta: un'etichetta per raggruppare insieme le risorse.
Specifica la chiave di crittografia. Puoi scegliere tra una chiave gestita da Google, una chiave Cloud Key Management Service (Cloud KMS) o una chiave crittografia fornita dal cliente (CSEK). Se non viene specificata alcuna chiave di crittografia, le immagini vengono criptate utilizzando una chiave gestita da Google.
Fai clic su Crea per creare l'immagine.
gcloud
Nell'interfaccia a riga di comando di Google Cloud, utilizza il comando gcloud compute images create
per creare un'immagine personalizzata.
Crea un'immagine da un disco di origine:
Il flag --force
è un flag facoltativo che ti consente di creare
l'immagine da un'istanza in esecuzione. Per impostazione predefinita, non puoi creare immagini dalle istanze in esecuzione. Specifica questo flag solo se hai la certezza di voler creare l'immagine mentre l'istanza è in esecuzione.
gcloud compute images create IMAGE_NAME \ --source-disk=SOURCE_DISK \ --source-disk-zone=ZONE \ [--family=IMAGE_FAMILY] \ [--storage-location=LOCATION] \ [--force]
Sostituisci quanto segue:
IMAGE_NAME
: un nome per la nuova immagineSOURCE_DISK
: il disco da cui vuoi creare l'immagineZONE
: la zona in cui si trova il discoIMAGE_FAMILY
: facoltativo: un flag che specifica a quale famiglia di immagini appartiene questa immagineLOCATION
: facoltativo: un flag che ti consente di indicare l'area geografica o le aree geografiche multiple in cui è archiviata l'immagine. Ad esempio, specificaus
per archiviare l'immagine nella località a più aree geograficheus
ous-central1
per archiviarla nell'area geograficaus-central1
. Se non effettui una selezione, Compute Engine archivia l'immagine nella località a più aree geografiche più vicina alla posizione di origine dell'immagine.
Per creare un'immagine da un'immagine di origine:
gcloud compute images create IMAGE_NAME \ --source-image=SOURCE_IMAGE \ [--source-image-project=IMAGE_PROJECT] \ [--family=IMAGE_FAMILY] \ [--storage-location=LOCATION]
Sostituisci quanto segue:
IMAGE_NAME
: un nome per la nuova immagine.SOURCE_IMAGE
: l'immagine da cui vuoi creare la nuova immagine.IMAGE_PROJECT
: facoltativo: il progetto in cui si trova l'immagine di origine. Utilizza questo parametro se vuoi copiare un'immagine da un altro progetto.IMAGE_FAMILY
: facoltativa: la famiglia di immagini a cui appartiene questa nuova immagine.LOCATION
: (facoltativo) consente di specificare la regione o le regioni a cui è archiviata l'immagine. Ad esempio, specificaus
per archiviare l'immagine nell'area geograficaus
ous-central1
per archiviarla nell'area geograficaus-central1
. Se non effettui una selezione, Compute Engine archivia l'immagine nella località a più regioni più vicina alla posizione di origine della tua immagine.
Crea un'immagine da uno snapshot:
gcloud compute images create IMAGE_NAME \ --source-snapshot=SOURCE_SNAPSHOT \ [--storage-location=LOCATION]
Sostituisci quanto segue:
IMAGE_NAME
: un nome per la nuova immagineSOURCE_SNAPSHOT
: lo snapshot da cui vuoi creare l'immagineLOCATION
: facoltativo: un flag che ti consente di indicare l'area geografica o le aree geografiche multiple in cui è archiviata l'immagine. Ad esempio, specificaus
per archiviare l'immagine nella località a più aree geograficheus
ous-central1
per archiviarla nell'area geograficaus-central1
. Se non effettui una selezione, Compute Engine archivia l'immagine nella località a più aree geografiche più vicina alla posizione di origine dell'immagine.
Per visualizzare la posizione di un'immagine:
Utilizza il comando gcloud compute images describe
per visualizzare una posizione dell'immagine.
gcloud compute images describe IMAGE_NAME
Sostituisci IMAGE_NAME
con il nome dell'immagine che vuoi esaminare.
API
Esegui una richiesta POST
per il metodo images().insert
, un URL nel corpo della richiesta che punti all'oggetto di origine da cui vuoi creare l'immagine. Specifica gli URL delle risorse utilizzando il tuo ID progetto e i nomi delle risorse.
Crea un'immagine da un disco permanente:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/images { "name": "IMAGE_NAME", "sourceDisk": "/zones/ZONE/disks/SOURCE_DISK", ("storageLocations": "LOCATION",) ("forceCreate": "TRUE") }
Sostituisci quanto segue:
PROJECT_ID
: l'ID progetto a cui appartiene l'immagine.IMAGE_NAME
: un nome per la nuova immagine che vuoi creare.ZONE
: la zona in cui si trova il disco di origine.SOURCE_DISK
: il disco da cui vuoi creare l'immagine.LOCATION
: facoltativa: la posizione di archiviazione della tua immagine. Ad esempio, specificaus
per archiviare l'immagine nella località con più regionius
oppureus-central1
per archiviarla nell'area geograficaus-central1
. Se non effettui una selezione, Compute Engine archivia l'immagine nella località a più regioni più vicina alla posizione di origine della tua immagine.
Il parametro facoltativo forceCreate
consente di creare l'immagine da una VM in esecuzione. Specifica TRUE
solo se hai la certezza di voler creare l'immagine da una VM in esecuzione. L'impostazione predefinita forceCreate
è FALSE
.
Per creare un'immagine da un'altra immagine:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/images { "name": "IMAGE_NAME", "sourceImage": "/global/images/SOURCE_IMAGE", ("storageLocations": "LOCATION") }
Sostituisci quanto segue:
PROJECT_ID
: il progetto a cui appartiene l'immagine.IMAGE_NAME
: un nome per la nuova immagine che vuoi creare.SOURCE_IMAGE
: l'immagine da cui vuoi creare l'immagine.LOCATION
: facoltativa: la posizione di archiviazione della tua immagine. Ad esempio, specificaus
per archiviare l'immagine nella località con più regionius
oppureus-central1
per archiviarla nell'area geograficaus-central1
. Se non effettui una selezione, Compute Engine archivia l'immagine nella multiregione più vicina alla posizione di origine della tua immagine.
Crea un'immagine da uno snapshot:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/images { "name": "IMAGE_NAME", "sourceSnapshot": "(/SOURCE_PROJECT_ID)/global/snapshots/SOURCE_SNAPSHOT", ("storageLocations": "LOCATION") }
Sostituisci quanto segue:
PROJECT_ID
: il progetto a cui appartiene l'immagine.IMAGE_NAME
: un nome per la nuova immagine che vuoi creare.SOURCE_PROJECT_ID
: facoltativo: il progetto in cui si trova lo snapshot. Devi avere l'autorizzazione per accedere alla risorsa snapshot in quel progetto.SOURCE_SNAPSHOT
: l'istantanea da cui vuoi creare l'immagine.LOCATION
: facoltativa: la posizione di archiviazione della tua immagine. Ad esempio, specificaus
per archiviare l'immagine nella località con più regionius
oppureus-central1
per archiviarla nell'area geograficaus-central1
. Se non effettui una selezione, Compute Engine archivia l'immagine nella località a più regioni più vicina alla posizione di origine della tua immagine.
Per scoprire di più sull'aggiunta di immagini, consulta il riferimento per le immagini.
Condividi l'immagine
Dopo aver creato un'immagine personalizzata, puoi condividerla tra progetti. Se consenti agli utenti di un altro progetto di utilizzare le tue immagini personalizzate, possono accedere a queste immagini specificando il progetto immagine nella loro richiesta.
Abilita le funzionalità del sistema operativo guest sulle immagini personalizzate
Utilizza le funzionalità del sistema operativo guest (OS) per configurare le seguenti opzioni di networking, sicurezza, archiviazione e sistema operativo su immagini personalizzate. Le immagini personalizzate con queste funzionalità configurate vengono utilizzate come dischi di avvio.
gcloud
Utilizza il comando gcloud compute images
create
con il flag --guest-os-features
per creare una nuova immagine personalizzata da un'immagine personalizzata esistente.
gcloud compute images create IMAGE_NAME \ --source-image=SOURCE_IMAGE \ [--source-image-project=IMAGE_PROJECT] \ --guest-os-features="FEATURES,..." \ [--storage-location=LOCATION]
Sostituisci quanto segue:
IMAGE_NAME
: il nome della nuova immagine.SOURCE_IMAGE
: un'immagine su cui basare la nuova immagine.IMAGE_PROJECT
: facoltativo: il progetto contenente l'immagine di origineUtilizza questo parametro per copiare un'immagine da un altro progetto.
FEATURES
: tag del sistema operativo guest per abilitare le funzionalità per le VM che crei dalle immaginiPer aggiungere più valori, utilizza le virgole per separare i valori. Imposta uno o più dei seguenti valori:
VIRTIO_SCSI_MULTIQUEUE
.Utilizza sui dispositivi SSD locali come alternativa a NVMe. Per ulteriori informazioni sulle immagini che supportano SCSI, vedi Scegliere un'interfaccia.Per le immagini Linux, puoi abilitare SCSI a più code sui dispositivi SSD locali su immagini con kernel 3.17 o versioni successive. Per le immagini Windows, puoi abilitare SCSI a più code sui dispositivi SSD locali su immagini con driver di Compute Engine Windows versione 1.2.
WINDOWS
. Tagga le immagini di avvio personalizzate di Windows Server come immagini Windows.MULTI_IP_SUBNET
. Configura le interfacce con una netmask diversa da/32
. Per ulteriori informazioni sulle interfacce di rete multiple e su come funzionano, consulta Panoramica ed esempi di più interfacce di rete.UEFI_COMPATIBLE
. Avvia con firmware UEFI e le seguenti funzionalità di VM schermate:- Avvio protetto: disabilitato per impostazione predefinita
- Virtual Trusted Platform Module (vTPM): attivato per impostazione predefinita
- Monitoraggio dell'integrità: abilitato per impostazione predefinita
GVNIC
. Supporta larghezze di banda di rete fino a velocità da 50 Gbps a 100 Gbps. Per ulteriori informazioni, consulta la pagina Utilizzo del NIC virtuale di Google.SEV_CAPABLE
. Utilizza questa opzione se stai creando una Confidential VM sulla piattaforma CPU AMD Secure Encrypted Virtualization (SEV). Per ulteriori informazioni, consulta Creare una nuova istanza Confidential VM.SUSPEND_RESUME_COMPATIBLE
. Sostieni la sospensione e riprendi su una VM. Per ulteriori informazioni, vedi Compatibilità del sistema operativo.
LOCATION
: (facoltativo) regione o multiregione in cui archiviare l'immagineAd esempio, specifica
us
per archiviare l'immagine nell'area geograficaus
ous-central1
per archiviarla nell'area geograficaus-central1
. Se non effettui una selezione, Compute Engine archivia l'immagine nella località a più regioni più vicina alla posizione di origine dell'immagine.
API
Usa il metodo images().insert
con il flag guestOsFeatures
per creare una nuova immagine personalizzata da un'immagine personalizzata esistente.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/images { "name": "IMAGE_NAME", "sourceImage": "(projects/IMAGE_PROJECT)/global/images/SOURCE_IMAGE", ("storageLocations": "LOCATION",) "guestOsFeatures": [ { "type": "FEATURES" } ] }
Sostituisci quanto segue:
PROJECT_ID
: l'ID del progetto in cui creare la nuova immagineIMAGE_NAME
: un nome per la nuova immagineIMAGE_PROJECT
: facoltativo: il progetto contenente l'immagine di origineUtilizza questo parametro per copiare un'immagine da un altro progetto.
SOURCE_IMAGE
: l'immagine su cui basare la nuova immagine.LOCATION
: (facoltativo) una o più regioni in cui archiviare l'immagineAd esempio, specifica
us
per archiviare l'immagine nella località con più regionius
oppureus-central1
per archiviarla nell'area geograficaus-central1
. Se non effettui una selezione, Compute Engine archivia l'immagine nella località a più regioni più vicina alla posizione di origine della tua immagine.FEATURES
: tag del sistema operativo guest per abilitare le funzionalità per le VM che crei dalle immaginiPer aggiungere più valori, utilizza le virgole per separare i valori. Imposta uno o più dei seguenti valori:
VIRTIO_SCSI_MULTIQUEUE
. Utilizza sui dispositivi SSD locali come alternativa a NVMe. Per ulteriori informazioni sulle immagini che supportano SCSI, vedi Scegliere un'interfaccia.Per le immagini Linux, puoi abilitare SCSI a più code sui dispositivi SSD locali su immagini con kernel 3.17 o versioni successive. Per le immagini Windows, puoi abilitare SCSI a più code sui dispositivi SSD locali su immagini con driver di Compute Engine Windows versione 1.2.
WINDOWS
. Tagga le immagini di avvio personalizzate di Windows Server come immagini Windows.MULTI_IP_SUBNET
. Configura le interfacce con una netmask diversa da/32
. Per ulteriori informazioni sulle interfacce di rete multiple e su come funzionano, consulta Panoramica ed esempi di più interfacce di rete.UEFI_COMPATIBLE
. Avvia con firmware UEFI e le seguenti funzionalità di VM schermate:- Avvio protetto: disabilitato per impostazione predefinita
- Virtual Trusted Platform Module (vTPM): attivato per impostazione predefinita
- Monitoraggio dell'integrità: abilitato per impostazione predefinita
GVNIC
. Supporta larghezze di banda di rete fino a velocità da 50 Gbps a 100 Gbps. Per ulteriori informazioni, consulta la pagina Utilizzo del NIC virtuale di Google.SEV_CAPABLE
. Utilizza questa opzione se stai creando una Confidential VM sulla piattaforma CPU AMD Secure Encrypted Virtualization (SEV). Per ulteriori informazioni, consulta Creare una nuova istanza Confidential VM.SUSPEND_RESUME_COMPATIBLE
. Sostieni la sospensione e riprendi su una VM. Per ulteriori informazioni, vedi Compatibilità del sistema operativo.
Considerazioni per le immagini di leva
Google offre la serie di macchine Tau T2A, che viene eseguita sulla piattaforma CPU Ampere Altra. Puoi avviare una VM con la serie di macchine T2A, quindi utilizzare la VM di origine per creare un'immagine Arm. La procedura di creazione di un'immagine personalizzata per il braccio è identica a quella per la creazione di un'immagine x86.
Per aiutare gli utenti a distinguere tra immagini Arm e x86, un campo architecture
verrà impostato su ARM64
. I valori possibili per questo campo sono:
ARCHITECTURE_UNSPECIFIED
X86_64
ARM64
Gli utenti possono quindi filtrare questo campo per trovare immagini x86 o basate su armi.
Passaggi successivi
- Condividi la tua immagine privata con altri progetti.
- Scopri come importare dischi, immagini e istanze VM.
- Scopri come esportare un'immagine in Cloud Storage.
- Scopri come avviare una VM da un'immagine personalizzata.
- Scopri come creare immagini di base personalizzate utilizzando Jenkins e Packer.
- Scopri come impostare la versione dell'immagine in una famiglia di immagini.
- Scopri come ritirare un'immagine personalizzata.
- Scopri come eliminare un'immagine personalizzata.