Il metodo consigliato per importare le immagini del disco di avvio in Compute Engine dai tuoi data center fisici, dalle macchine virtuali (VM) sulla tua workstation locale o dalle VM in esecuzione su un'altra piattaforma cloud è utilizzare lo strumento di importazione dei dischi virtuali, che automatizza tutti i passaggi di questa guida.
Se preferisci non utilizzare lo strumento automatizzato, puoi seguire le istruzioni manuali passo passo riportate in questa guida.
Questo processo di importazione delle immagini può importare un solo disco alla volta e questa guida si concentra su come importare le immagini del disco di avvio.
Importa i dischi di avvio esistenti solo se non riesci a creare o eseguire la migrazione delle tue app per l'esecuzione sulle immagini pubbliche di Compute Engine. Le immagini pubbliche sono già configurate per essere eseguite nell'ambiente Compute Engine, quindi puoi eseguire app su queste immagini senza doverti preoccupare delle configurazioni del bootloader e del sistema operativo. Tuttavia, potresti dover importare le tue immagini del disco di avvio nei seguenti scenari:
- Le tue app richiedono un sistema operativo non fornito come immagine pubblica.
- Hai già un insieme di immagini di base che utilizzi per creare VM in un'altra piattaforma cloud.
- Il lavoro necessario per eseguire la migrazione del codice dell'app a una delle immagini pubbliche è maggiore di quello necessario per completare il processo di importazione dell'immagine del disco di avvio.
In alternativa, puoi ricevere assistenza per la migrazione delle tue VM utilizzando i servizi dei partner. Per saperne di più, consulta la pagina Migrazione delle VM a Compute Engine.
Panoramica
Per importare un'immagine del disco di avvio in Compute Engine, utilizza la seguente procedura:
- Pianifica il percorso di importazione. Prima di caricare l'immagine del disco di avvio, devi identificare dove la preparerai e come ti connetterai a questa immagine dopo l'avvio nell'ambiente Compute Engine.
- Prepara il disco di avvio in modo che possa essere avviato nell'ambiente Compute Engine e in modo da potervi accedere dopo l'avvio.
- Crea e comprimi il file immagine del disco di avvio.
- Carica il file immagine in Cloud Storage e importa l'immagine in Compute Engine come nuova immagine personalizzata.
- Utilizza l'immagine importata per creare un'istanza VM e assicurati che venga avviata correttamente.
- Se l'immagine non viene avviata correttamente, puoi risolvere il problema collegando l'immagine disco di avvio a un'altra istanza e riconfigurandola.
- Ottimizza l'immagine e installa l'ambiente guest in modo che l'immagine del sistema operativo importata possa comunicare con il server di metadati e utilizzare funzionalità aggiuntive di Compute Engine.
Requisiti
Requisiti per il disco di avvio
Per importare i dischi di avvio in Compute Engine, questi devono soddisfare i seguenti requisiti:
- Ti consigliamo di installare tutti gli aggiornamenti disponibili nella VM di origine.
- Se hai creato un kernel del sistema operativo personalizzato, questo deve soddisfare i requisiti di configurazione dell'hardware e del kernel. La maggior parte delle distribuzioni Linux standard soddisfa già questi requisiti, quindi questo requisito è solo per gli utenti avanzati che creano i propri sistemi operativi personalizzati da eseguire su Compute Engine.
- Il disco di avvio non deve essere più grande di 2048 GB (2 TB).
- Il disco di avvio che importi deve avere una tabella delle partizioni MBR funzionale o una configurazione ibrida di una tabella delle partizioni GPT con un bootloader MBR.
- La partizione primaria sul disco di avvio può essere in qualsiasi formato, a condizione che venga avviata correttamente dal bootloader MBR.
- Il bootloader sul disco di avvio non deve avere argomenti della riga di comando del kernel
quiet
,rhgb
osplashimage=
. Compute Engine non supporta le schermate iniziali all'avvio. Puoi rimuovere questi valori dalla configurazione GRUB durante il passaggio di configurazione del bootloader. - Il sistema operativo sul disco di avvio deve supportare ACPI.
Requisiti per il file immagine
Il file immagine che importi deve soddisfare i seguenti requisiti:
- Esegui un controllo di coerenza sull'immagine del disco utilizzando il comando
qemu-img check
sul disco. - Per esportare il disco virtuale, utilizza la funzione di esportazione del software di gestione delle VM. Non copiare il file VMDK dal file system del gestore VM.
- Il file immagine deve essere di un'immagine supportata.
- Il nome file dell'immagine disco deve essere
disk.raw
. - Le dimensioni del file immagine RAW devono essere un multiplo di 1 GB. Ad esempio, il file deve essere di 10 GB o 11 GB, ma non di 10,5 GB.
- Il file compresso deve essere un file
.tar.gz
che utilizza la compressione gzip e l'opzione--format=oldgnu
per l'utilitàtar
(manuale).
Requisiti per il progetto
Quando crei un'istanza VM da un'immagine importata, l'istanza deve essere in grado di accedere al repository di pacchetti esterno per il sistema operativo configurato sul disco di avvio.
È possibile accedere a questo repository direttamente dal fornitore del sistema operativo o tramite una connessione di rete all'infrastruttura on-premise che ospita questi repository.
Per configurare l'accesso al repository esterno, completa uno dei seguenti passaggi nel tuo progetto:
- Configura un indirizzo IP esterno statico per la tua VM per connetterti alla tua rete on-premise locale o ad altre reti esterne.
- Configura un host bastion, una VPN o l'inoltro TCP IAP che può essere utilizzato per connettersi alla tua rete on-premise locale o ad altre reti esterne.
Limitazioni
Per importare dischi utilizzando reti che non consentono indirizzi IP esterni, devi soddisfare requisiti di networking aggiuntivi. Per saperne di più, consulta Importazione di dischi utilizzando reti che non consentono indirizzi IP esterni.
Costi di importazione delle immagini
Prima di iniziare, comprendi i costi della procedura di importazione. Non sono previsti costi per il trasferimento di dati di rete in entrata per caricare il file immagine del disco di avvio su Cloud Storage e non sono previsti costi per importare l'immagine come immagine personalizzata di Compute Engine. Tuttavia, ci sono costi per alcuni passaggi specifici della procedura di importazione:
- Il costo per archiviare temporaneamente i file immagine compressi in un bucket standard Cloud Storage. Devi utilizzare un bucket Cloud Storage temporaneo per archiviare i file prima di poterli importare come immagini Compute Engine personalizzate. Puoi rimuovere il bucket dopo aver completato il processo di importazione.
- Il costo per l'archiviazione di immagini personalizzate dopo averle importate in Compute Engine.
- Il potenziale costo per i trasferimenti di dati in uscita sul tuo data center esistente, sul tuo provider di rete o sul tuo attuale servizio cloud. I file immagine possono essere molto grandi anche dopo la compressione, quindi la copia di questi file in Compute Engine potrebbe comportare costi significativi per il trasferimento dei dati in uscita su alcune piattaforme.
- Il costo dei dischi permanenti e delle istanze VM di Compute Engine, in cui puoi configurare l'immagine dopo averla importata in Compute Engine.
Pianificare e preparare il percorso di importazione
Il metodo di importazione del disco dipende dalla configurazione attuale del sistema che vuoi spostare su Compute Engine. Hai bisogno di un sistema in cui creare e comprimere il file immagine del disco di avvio, nonché di un sistema in cui caricare il file immagine in Cloud Storage. Considera i seguenti elementi quando pianifichi il percorso di importazione:
- Il percorso di importazione dell'immagine richiede di configurare il disco di avvio in un ambiente del sistema operativo funzionante. Questo processo può impedire l'avvio del disco di avvio al di fuori di un ambiente Compute Engine. È tua responsabilità assicurarti di non perdere dati sui dischi o interrompere le tue app aziendali funzionali durante l'importazione del sistema in Compute Engine.
- Identifica la configurazione di accesso al sistema esistente e pianifica come
vuoi accedere al sistema dopo averlo importato in Compute Engine.
- Se il tuo sistema dispone di configurazioni di accesso utente o SSH esistenti, puoi configurare solo il bootloader e poi configurare l'immagine in modo che venga eseguita in modo ottimale su Compute Engine. Puoi accedere all'istanza tramite la configurazione SSH esistente o tramite un accesso utente diretto nella console seriale interattiva.
- Se il tuo sistema non dispone di configurazioni di accesso utente o SSH esistenti, devi configurare il disco di avvio in modo da potervi accedere dopo l'avvio su Compute Engine.
- La durata del processo di importazione può richiedere diverse ore o giorni, a seconda delle dimensioni del disco di avvio e della velocità della connessione di rete.
- Il sistema in cui crei e comprimi l'immagine del disco di avvio deve disporre di spazio di archiviazione sufficiente per creare i file immagine su un dispositivo di archiviazione diverso dal disco di avvio stesso. In genere, i file immagine e
tar.gz
utilizzano uno spazio 2-3 volte superiore a quello del disco di avvio. - Comprendi la struttura del file system del sistema esistente che vuoi
importare.
- Se i file del sistema operativo e dell'app sono distribuiti su più dischi, importa ciascuno di questi dischi singolarmente e utilizza ogni immagine per creare un disco permanente univoco per la tua istanza VM di Compute Engine.
- Se i tuoi sistemi hanno volumi di avvio in una configurazione RAID in cui più dischi fungono da singolo volume logico, crea una singola immagine dell'intero array anziché creare un'immagine per ogni disco dell'array. I dischi permanenti di Compute Engine eliminano la necessità di configurazioni RAID.
- Se il sistema cripta i contenuti del disco di avvio con un Trusted Platform Module o con la crittografia a livello di software, decripta il disco di avvio prima di creare il file immagine del disco di avvio. Google non può leggere le tue immagini se sono criptate. Criptiamo le tue immagini dopo il caricamento e ti consentiamo di fornire le tue chiavi di crittografia per i dischi permanenti e i bucket Cloud Storage.
Dopo aver identificato o creato un sistema in cui puoi completare il processo di importazione, connettiti a quel sistema e configura il bootloader.
Prepara l'immagine del disco di avvio
Su un sistema in esecuzione, prepara l'immagine del disco di avvio in modo che possa funzionare in un ambiente Compute Engine.
- Configura il bootloader sul disco di avvio in modo che l'immagine possa essere avviata su Compute Engine.
- Configura l'accesso SSH o l'accesso utente sul disco di avvio in modo da potervi accedere dopo averlo importato in Compute Engine e avviato come istanza VM.
Questa procedura può rendere il sistema non avviabile al di fuori di Compute Engine, quindi la best practice è completare questo passaggio su un sistema isolato utilizzando una copia del disco di avvio che vuoi importare.
Configura il bootloader
Configura il bootloader sul sistema in modo che possa avviarsi su Compute Engine.
Connettiti al terminale del sistema con il disco di avvio che prevedi di importare.
Modifica il file di configurazione GRUB. Di solito questo file si trova in
/etc/default/grub
, ma in alcune distribuzioni precedenti potrebbe trovarsi in una directory non standard.Apporta le seguenti modifiche al file di configurazione GRUB:
- Rimuovi qualsiasi riga che contenga
splashimage=
. Compute Engine non supporta le schermate iniziali all'avvio. - Rimuovi gli argomenti della riga di comando del kernel
rhgb
equiet
. - Aggiungi
console=ttyS0,38400n8d
agli argomenti della riga di comando del kernel, in modo che l'istanza possa interagire con la console seriale.
- Rimuovi qualsiasi riga che contenga
Rigenera il file
grub.cfg
. Utilizza uno dei seguenti comandi, a seconda della tua distribuzione.- Debian e Ubuntu:
sudo update-grub
- RHEL, CentOS, SUSE, openSUSE:
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
- Debian e Ubuntu:
Modifica il file
/etc/fstab
e rimuovi i riferimenti a tutti i dischi e le partizioni diversi dal disco di avvio stesso e dalle partizioni su quel disco di avvio. Le voci non valide in/etc/fstab
possono interrompere la procedura di avvio del sistema.
Dopo aver configurato il bootloader, crea e comprimi il file immagine del disco.
Configura l'accesso SSH o l'accesso utente sull'immagine
Dopo che l'immagine è in esecuzione in Compute Engine come istanza VM, devi avere un modo per accedere a questa istanza. Puoi connetterti all'istanza utilizzando una configurazione SSH esistente oppure puoi accedere utilizzando un nome utente e una password connettendoti alla console seriale.
Completa la configurazione dell'accesso SSH o utente prima di creare e comprimere il file immagine disco.
Crea e comprimi il file immagine disco
Crea e comprimi il file immagine del disco di avvio per il sistema che vuoi importare in Compute Engine. La procedura per creare e comprimere il file immagine varia a seconda della piattaforma su cui operano i tuoi sistemi.
Generica
In quasi tutti i sistemi, puoi utilizzare questa procedura per creare un file immagine RAW che puoi importare in Compute Engine. Puoi completare questa procedura sul sistema in esecuzione che stai importando oppure puoi collegare il disco di avvio come disco secondario su un altro sistema e creare l'immagine del disco di avvio dal disco arrestato. Assicurati di avere spazio di archiviazione disponibile sufficiente per contenere temporaneamente i file immagine disco. Questo esempio prende un'immagine da un sistema in esecuzione.
Connettiti al terminale del sistema che contiene il disco di avvio che intendi importare.
Utilizza il comando
lsblk
per identificare il disco di avvio di origine da cui vuoi creare un'immagine e la posizione in cui hai spazio sufficiente per scrivere i file immagine. Per questo esempio,/dev/sda
è il disco di avvio di origine e/dev/sdb
è un disco secondario di grandi dimensioni montato nella directory/tmp
. Anche se /dev/sda è in esecuzione, puoi comunque creare un'immagine. È consigliabile eseguire questa operazione su un sistema inattivo che non stia elaborando attivamente dati o eseguendo app.lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 100G 0 disk ├─sda1 8:1 0 96G 0 part / ├─sda2 8:2 0 1K 0 part └─sda3 8:5 0 4G 0 part [SWAP] sdb 8:16 0 500G 0 disk /tmp sr0 11:0 1 1024M 0 rom
Crea il file immagine dal disco di avvio.
sudo dd if=/dev/sda of=/tmp/disk.raw bs=4M conv=sparse
Passa alla directory in cui hai scritto il file
disk.raw
.cd /tmp
Comprimi il disco non elaborato in formato
tar.gz
. Questo passaggio comprime il file immagine in modo da poterlo caricare più rapidamente su Cloud Storage. Su OSX, installagtar
e utilizzalo per questo passaggio anzichétar
.tar --format=oldgnu -Sczf /tmp/compressed-image.tar.gz disk.raw
VirtualBox
Se hai preparato il sistema in un ambiente VirtualBox, puoi utilizzare lo
strumento VBoxManage
per convertire un'immagine disco .vdi
o .qcow2
nel
formato disk.raw
.
Arresta la macchina guest VirtualBox che vuoi importare, sostituendo GUEST_NAME con il nome della tua macchina guest. Puoi arrestare la macchina guest con l'interfaccia VirtualBox o utilizzando l'utilità VBoxManage.
VBoxManage controlvm GUEST_NAME acpipowerbutton
Converti l'immagine guest in formato RAW utilizzando l'utilità VBoxManage, sostituendo GUEST_NAME con il percorso dell'immagine guest. Questa immagine ospite può essere fornita come file
vdi
oqcow2
:VBoxManage clonemedium GUEST_NAME ~/disk.raw --format RAW
Comprimi il disco non elaborato in formato
tar.gz
. Questo passaggio comprime il file immagine in modo da poterlo caricare più rapidamente su Cloud Storage. Su OSX, installagtar
e utilizzalo per questo passaggio anzichétar
.sudo tar --format=oldgnu -Sczf /tmp/compressed-image.tar.gz disk.raw
Il file immagine è compresso e pronto per essere caricato su Cloud Storage.
Importa l'immagine nell'elenco delle immagini personalizzate
Carica il file su Cloud Storage e importa l'immagine nell'elenco delle immagini personalizzate. Se vuoi, puoi criptare l'immagine durante il passaggio di importazione dell'immagine.
Importa l'immagine con la console o gli strumenti Google Cloud CLI:
Console
Copia il file compressed-image.tar.gz
nella workstation locale e
utilizza la console Google Cloud per
creare un bucket e caricare il file.
- Nella console Google Cloud , vai alla pagina del browser Cloud Storage.
- Nella parte superiore della pagina, fai clic su Crea bucket.
- Specifica un nome univoco per il bucket, la classe di archiviazione Standard e una posizione in cui vuoi archiviare i file immagine.
- Fai clic su Crea per creare il bucket. La pagina del browser passa al nuovo bucket.
- Nella parte superiore della pagina, fai clic su Carica file.
- Nella finestra di dialogo dei file, seleziona il file
compressed-image.tar.gz
che hai scaricato dal sistema. I file vengono caricati dalla tua workstation locale. Questo passaggio può richiedere diverse ore, a seconda delle dimensioni del file immagine compresso e della velocità della connessione di rete.
Dopo aver caricato l'immagine in Cloud Storage, importa il file immagine nell'elenco delle immagini personalizzate.
- Nella console Google Cloud vai alla pagina Immagini.
- Nella parte superiore della pagina, fai clic su Crea immagine.
- Nel campo Nome, specifica un nome univoco per l'immagine.
- (Facoltativo) Specifica una famiglia di immagini per la nuova immagine o configura impostazioni di crittografia specifiche per l'immagine.
- Fai clic sul menu Origine e seleziona File Cloud Storage.
Inserisci il percorso del file
compressed-image.tar.gz
che hai caricato su Cloud Storage.BUCKET_NAME/compressed-image.tar.gz
Fai clic su Crea per importare l'immagine. La procedura può richiedere diversi minuti a seconda delle dimensioni dell'immagine del disco di avvio.
L'immagine ora è inclusa nella pagina Immagini. Puoi creare una VM utilizzando questa immagine importata. Se si verifica un errore di avvio, verifica e assicurati di aver configurato correttamente il bootloader.
gcloud e gcloud storage
Utilizza gcloud CLI per caricare il file immagine del disco di avvio compresso. Puoi completare questa procedura sul sistema in cui hai creato l'immagine del disco di avvio oppure puoi copiare il file su un altro sistema e completare lì la procedura di caricamento.
Installa e inizializza gcloud CLI sul sistema da cui prevedi di caricare
compressed-image.tar.gz
.Utilizza gcloud CLI per creare un nuovo bucket Cloud Storage.
gcloud storage buckets create gs://BUCKET_NAME
Carica il file
compressed-image.tar.gz
nel nuovo bucket.gcloud storage cp compressed-image.tar.gz gs://BUCKET_NAME
Importa il file immagine come nuova immagine personalizzata.
gcloud compute images create IMAGE_NAME --source-uri gs://BUCKET_NAME/compressed-image.tar.gz
Sostituisci quanto segue:
- IMAGE_NAME: il nome dell'immagine che hai importato.
- BUCKET_NAME: il nome del bucket in cui è archiviata l'immagine importata.
L'immagine è ora inclusa nell'elenco delle immagini personalizzate. Puoi creare una VM utilizzando questa immagine importata. Se si verifica un errore di avvio, verifica e assicurati di aver configurato correttamente il bootloader.
gcloud compute images list --no-standard-images
NAME PROJECT FAMILY DEPRECATED STATUS [IMAGE_NAME] [PROJECT_ID] READY
Testa l'immagine importata per assicurarti che funzioni
Verifica che l'immagine importata funzioni come previsto. Crea una VM con un disco di avvio che utilizza l'immagine importata.
Console
Nella console Google Cloud , vai alla pagina Crea un'istanza.
Nella sezione Disco di avvio, fai clic su Cambia e poi segui questi passaggi:
- Seleziona la scheda Immagini personalizzate.
- Per selezionare il progetto dell'immagine, fai clic su Seleziona un progetto, quindi procedi nel seguente modo:
- Seleziona il progetto che contiene l'immagine.
- Fai clic su Apri.
- Nell'elenco Immagine, fai clic sull'immagine che hai importato.
- Seleziona il tipo e le dimensioni del disco di avvio.
- Per confermare le opzioni del disco di avvio, fai clic su Seleziona.
Fai clic su Crea.
gcloud
gcloud compute instances create VM_NAME --zone ZONE --image IMAGE_NAME
Sostituisci quanto segue:
- VM_NAME: un nome univoco per la VM.
- ZONE: la zona in cui hai creato il disco autonomo.
- IMAGE_NAME: il nome dell'immagine che hai importato.
Dopo aver creato la VM, verifica che sia stata avviata correttamente. Controlla l'output della porta seriale:
Console
- Nella console Google Cloud , vai alla pagina Istanze VM.
- Nell'elenco delle VM, fai clic sul nome della VM che hai creato dall'immagine importata. Viene visualizzata la pagina dei dettagli della VM.
- Nella sezione Log, fai clic sulla porta seriale appropriata per espandere e visualizzare l'output della porta seriale per questa VM.
Se la VM si è arrestata a Booting from Hard Disk 0...
, devi
risolvere i problemi
dall'interno dell'ambiente Compute Engine oppure puoi
riconfigurare il disco di avvio sul sistema originale e ripetere l'importazione.
gcloud
gcloud compute instances get-serial-port-output VM_NAME
Se la VM si è arrestata a Booting from Hard Disk 0...
, devi
risolvere i problemi
dall'interno dell'ambiente Compute Engine oppure puoi
riconfigurare il disco di avvio sul sistema originale e ripetere l'importazione.
Puoi anche testare la VM connettendoti. Connettiti alla VM tramite una delle seguenti opzioni:
- SSH: se la VM aveva una configurazione SSH funzionante, puoi connetterti alla VM utilizzando SSH e la tua chiave privata. Puoi trovare l'indirizzo IP dell'istanza VM nella pagina Istanze VM.
- Console seriale: se devi accedere direttamente alla VM senza SSH, puoi attivare la console seriale e accedere con un nome utente e una password.
Passaggi successivi
- Configura il disco in modo che l'immagine possa sfruttare le funzionalità dell'ambiente Compute Engine.
- Quando l'immagine è pronta per la produzione, crea una versione finale di quell'immagine personalizzata e includila in una famiglia di immagini in modo da poter gestire le versioni aggiornate dell'immagine personalizzata.
- Alcune importazioni potrebbero non riuscire a causa di problemi con il disco di avvio. Per saperne di più, consulta la sezione Risoluzione dei problemi relativi ai dischi di avvio.