Importa manualmente i dischi di avvio

Il modo 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 passo passo manuali in questa guida.

Questo processo di importazione di immagini può importare un solo disco alla volta. Questa guida si concentra su come importare le immagini del disco di avvio.

Importa i dischi di avvio esistenti solo se non sei in grado di creare o eseguire la migrazione delle tue app da eseguire sopra le immagini pubbliche di Compute Engine. Le immagini pubbliche sono già configurate per l'esecuzione nell'ambiente Compute Engine, quindi puoi eseguire app su queste immagini senza preoccuparti delle configurazioni del bootloader e del sistema operativo. Tuttavia, potresti dover importare le tue immagini disco di avvio nei seguenti scenari:

  • Le tue app richiedono un sistema operativo che non viene fornito come immagine pubblica.
  • Hai già un set 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 in una delle immagini pubbliche è maggiore di quello richiesto per completare il processo di importazione dell'immagine disco di avvio.

In alternativa, puoi ricevere assistenza per la migrazione delle VM utilizzando i servizi dei partner. Per ulteriori informazioni, consulta Migrazione delle VM in Compute Engine.

Panoramica

Per importare un'immagine disco di avvio in Compute Engine, utilizza la seguente procedura:

  1. Pianifica il percorso di importazione. Devi identificare dove preparerai l'immagine del disco di avvio prima di caricarla e come ti connetterai all'immagine dopo l'avvio nell'ambiente Compute Engine.
  2. Prepara il disco di avvio in modo che possa avviarsi all'interno dell'ambiente Compute Engine e sia possibile accedervi dopo l'avvio.
  3. Crea e comprimi il file immagine del disco di avvio.
  4. Carica il file immagine in Cloud Storage e importa l'immagine in Compute Engine come nuova immagine personalizzata.
  5. Utilizza l'immagine importata per creare un'istanza VM e assicurarti che si avvii correttamente.
  6. Se l'immagine non si avvia correttamente, puoi risolvere il problema collegando l'immagine disco di avvio a un'altra istanza e riconfigurandola.
  7. Ottimizza l'immagine e installa l'ambiente ospite 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 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, deve soddisfare i requisiti di configurazione hardware e del kernel. La maggior parte delle distribuzioni Linux standard soddisfa già questi requisiti, perciò solo per gli utenti avanzati che creano 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 di partizione MBR funzionale o una configurazione ibrida di una tabella di partizione GPT con un bootloader MBR.
  • La partizione principale sul disco di avvio può essere in qualsiasi formato, purché si avvii correttamente dal bootloader MBR.
  • Il bootloader sul disco di avvio non deve avere argomenti della riga di comando del kernel quiet, rhgb o splashimage=. 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 della coerenza dell'immagine 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 di VM Manager.
  • Il file immagine deve essere un'immagine supportata.
  • Il nome file dell'immagine disco deve essere disk.raw.
  • Il file immagine RAW deve avere una dimensione con un incremento 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:

Limitazioni

Per importare dischi utilizzando reti che non consentono indirizzi IP esterni, devi soddisfare ulteriori requisiti di networking. Per ulteriori informazioni, consulta Importazione di dischi utilizzando reti che non consentono indirizzi IP esterni.

Costi di importazione delle immagini

Prima di iniziare, valuta i costi del processo di importazione. Non sono previsti costi per il trasferimento di dati di rete in entrata per caricare il file immagine del disco di avvio in Cloud Storage e per importare l'immagine come immagine personalizzata di Compute Engine. Tuttavia, sono previsti costi per alcuni passaggi specifici del processo di importazione:

  • Il costo per archiviare temporaneamente i file immagine compressi in un bucket standard di Cloud Storage. Devi utilizzare un bucket Cloud Storage temporaneo per conservare 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 aver completato l'importazione in Compute Engine.
  • Il costo potenziale dei trasferimenti di dati in uscita sul tuo data center esistente, sul tuo provider di rete o sul tuo servizio cloud attuale. I file immagine possono essere molto grandi anche dopo essere stati compressi, quindi la copia di questi file su Compute Engine può comportare costi significativi per il trasferimento di dati in uscita su alcune piattaforme.
  • Il costo per i dischi permanenti e le istanze VM di Compute Engine in cui puoi configurare l'immagine dopo averla importata in Compute Engine.

Pianifica e prepara il percorso di importazione

Il metodo per importare il disco dipende dalla configurazione attuale del sistema che vuoi spostare in Compute Engine. Hai bisogno di un sistema in cui è possibile creare e comprimere il file immagine del disco di avvio, nonché un sistema in cui caricare il file immagine in Cloud Storage. Quando pianifichi il percorso di importazione, considera i seguenti elementi:

  • Il percorso di importazione dell'immagine richiede la configurazione del disco di avvio in un ambiente di sistema operativo funzionante. Questo processo può impedire l'avvio del disco di avvio da nessuna parte al di fuori dell'ambiente Compute Engine. È tua responsabilità assicurarti di non perdere dati sui tuoi dischi o di non interrompere le funzionalità delle tue app aziendali 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 nel sistema sono già presenti configurazioni di accesso utente o SSH, puoi configurare solo il bootloader e configurare in un secondo momento 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 sistema non dispone di credenziali di accesso utente o di configurazioni SSH, devi configurare il disco di avvio in modo da potervi accedere dopo l'avvio in Compute Engine.
  • La durata del processo di importazione può richiedere diverse ore o diversi 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 avere spazio di archiviazione sufficiente per creare i file immagine su un dispositivo di archiviazione diverso dal disco di avvio. In genere, lo spazio dei file immagine e tar.gz è due o tre volte maggiore rispetto al disco di avvio.
  • Scopri la struttura del file system per il sistema esistente che vuoi importare.
    • Se il sistema operativo e i file dell'app sono distribuiti su più dischi, importa ognuno di questi dischi singolarmente e utilizza ciascuna 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 agiscono come un unico volume logico, crea un'unica immagine dall'intero array anziché creare un'immagine per ogni disco nell'array. I dischi permanenti di Compute Engine eliminano la necessità di configurazioni RAID.
  • Se il tuo 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 immagini se sono criptate. Le immagini vengono criptate dopo averle caricate 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 al sistema e configura il bootloader.

Prepara l'immagine disco di avvio

Su un sistema in esecuzione, prepara l'immagine 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 l'importazione in Compute Engine e l'avvio come istanza VM.

Questo processo 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 da importare.

Configura il bootloader

Configura il bootloader sul sistema in modo che possa essere avviato su Compute Engine.

  1. Collegati al terminale sul sistema con il disco di avvio che intendi importare.

  2. Modifica il file di configurazione GRUB. Di solito questo file si trova all'indirizzo /etc/default/grub, ma in alcune distribuzioni precedenti potrebbe trovarsi in una directory non standard.

  3. Apporta le seguenti modifiche al file di configurazione GRUB:

    • Rimuovi tutte le righe con splashimage=. Compute Engine non supporta le schermate iniziali all'avvio.
    • Rimuovi gli argomenti della riga di comando del kernel rhgb e quiet.
    • Aggiungi console=ttyS0,38400n8d agli argomenti della riga di comando del kernel, in modo che l'istanza possa interagire con la console seriale.
  4. Rigenera il file grub.cfg. Usa uno dei seguenti comandi, a seconda della distribuzione.

    • Debian e Ubuntu: sudo update-grub
    • RHEL, CentOS, SUSE, openSUSE: sudo grub2-mkconfig -o /boot/grub2/grub.cfg
  5. Modifica il file /etc/fstab e rimuovi i riferimenti a tutti i dischi e le partizioni, tranne il disco di avvio stesso e le partizioni su quel disco. Le voci non valide in /etc/fstab possono causare l'arresto del processo di avvio del sistema.

Dopo aver configurato il bootloader, crea e comprimi il file immagine disco.

Configura l'accesso SSH o di accesso utente all'immagine

Quando l'immagine è in esecuzione in Compute Engine come istanza VM, devi avere un modo per accedervi. Puoi connetterti all'istanza utilizzando una configurazione SSH esistente oppure puoi accedere con nome utente e password connettendoti alla console seriale.

Completa la configurazione dell'accesso utente o SSH prima di creare e comprimere il file immagine del 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. Il processo di creazione e compressione del file immagine varia a seconda della piattaforma su cui operano i sistemi.

Generico

Su quasi tutti i sistemi, puoi utilizzare questo processo per creare un file immagine RAW da importare in Compute Engine. Puoi completare questo processo sul sistema in esecuzione che stai importando oppure puoi collegare il tuo disco di avvio come disco secondario su un altro sistema e creare l'immagine disco di avvio dal disco arrestato. Assicurati di avere spazio di archiviazione sufficiente per contenere temporaneamente i file immagine disco. Questo esempio prende un'immagine da un sistema in esecuzione.

  1. Connettiti al terminale sul sistema che contiene il disco di avvio che prevedi di importare.

  2. Utilizza il comando lsblk per identificare il disco di avvio di origine da cui vuoi creare un'immagine e il percorso in cui disponi di 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 da lì. È meglio farlo su un sistema silenzioso che non elabora attivamente i dati o non esegua 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
    
  3. Crea il file immagine dal disco di avvio.

    sudo dd if=/dev/sda of=/tmp/disk.raw bs=4M conv=sparse
    
  4. Passa alla directory in cui hai scritto il file disk.raw.

    cd /tmp
    
  5. Comprimi il disco non elaborato nel formato tar.gz. Questo passaggio comprime il file immagine in modo da poterlo caricare più rapidamente su Cloud Storage. Su OSX, installa gtar e utilizzalo per questo passaggio anziché tar.

    tar --format=oldgnu -Sczf /tmp/compressed-image.tar.gz disk.raw
    

AWS EC2

Per ulteriori informazioni sull'importazione di immagini Amazon Machine Images (AMI) e dischi virtuali da Amazon Web Services (AWS) in Compute Engine, consulta Importare immagini da AWS.

VirtualBox

Se hai preparato il sistema in un ambiente VirtualBox, puoi utilizzare lo strumento VBoxManage per convertire un'immagine disco .vdi o .qcow2 in formato disk.raw.

  1. Arresta la macchina guest VirtualBox che vuoi importare, sostituendo GUEST_NAME con il nome della macchina guest. Puoi arrestare la macchina guest con l'interfaccia VirtualBox o utilizzando l'utilità VBoxManage.

    VBoxManage controlvm GUEST_NAME acpipowerbutton
  2. Converti l'immagine guest in formato RAW utilizzando l'utilità VBoxManage, sostituendo GUEST_NAME con il percorso dell'immagine ospite. Questa immagine ospite può essere fornita come file vdi o qcow2:

    VBoxManage clonemedium GUEST_NAME ~/disk.raw --format RAW
  3. Comprimi il disco non elaborato nel formato tar.gz. Questo passaggio comprime il file immagine in modo da poterlo caricare più rapidamente su Cloud Storage. Su OSX, installa gtar e utilizzalo per questo passaggio anziché tar.

    sudo tar --format=oldgnu -Sczf /tmp/compressed-image.tar.gz disk.raw
    

Il file immagine è compresso ed è pronto per essere caricato su Cloud Storage.

Importa l'immagine nell'elenco di immagini personalizzate

Carica il file in Cloud Storage e importa l'immagine nell'elenco di immagini personalizzate. Se vuoi, puoi criptare l'immagine durante il passaggio di importazione dell'immagine.

Importa l'immagine con la console o con gli strumenti Google Cloud CLI:

Console

Copia il file compressed-image.tar.gz sulla workstation locale e utilizza la console Google Cloud per creare un bucket e caricare il file.

  1. Nella console Google Cloud, vai alla pagina del browser di Cloud Storage.

    Vai al browser

  2. Nella parte superiore della pagina, fai clic su Crea bucket.
  3. Specifica un nome univoco per il bucket, la classe di archiviazione Standard e una località in cui archiviare i file immagine.
  4. Fai clic su Crea per creare il bucket. La pagina del browser passa al nuovo bucket.
  5. Nella parte superiore della pagina, fai clic su Carica file.
  6. Nella finestra di dialogo del file, seleziona il file compressed-image.tar.gz che hai scaricato dal sistema. Il file viene caricato dalla workstation locale. Questo passaggio può richiedere diverse ore, a seconda delle dimensioni del file immagine compressa e della velocità della connessione di rete.

Dopo aver caricato l'immagine in Cloud Storage, importa il file nell'elenco di immagini personalizzate.

  1. Nella console Google Cloud, vai alla pagina Immagini.

    Vai a Google Immagini

  2. Nella parte superiore della pagina, fai clic su Crea immagine.
  3. Nel campo Nome, specifica un nome univoco per l'immagine.
  4. Facoltativamente, specifica una famiglia di immagini per la nuova immagine o configura impostazioni di crittografia specifiche per l'immagine.
  5. Fai clic sul menu Origine e seleziona File Cloud Storage.
  6. Inserisci il percorso del file compressed-image.tar.gz che hai caricato in Cloud Storage.

    BUCKET_NAME/compressed-image.tar.gz
  7. Fai clic su Crea per importare l'immagine. Il processo può richiedere diversi minuti a seconda delle dimensioni dell'immagine disco di avvio.

L'immagine è ora inclusa nella pagina Immagini. Puoi creare una VM utilizzando questa immagine importata. In caso di errore di avvio, verifica di aver configurato correttamente il bootloader.

gcloud e gsutil

Utilizza lo strumento gsutil e gcloud CLI per caricare il file immagine del disco di avvio compresso. Puoi completare questo processo sul sistema in cui hai creato l'immagine disco di avvio oppure puoi copiare il file in un altro sistema e completare da lì il processo di caricamento.

  1. Installa e inizializza gcloud CLI sul sistema da cui prevedi di caricare compressed-image.tar.gz.

  2. Utilizza lo strumento gsutil per creare un nuovo bucket Cloud Storage.

    gsutil mb gs://BUCKET_NAME
  3. Carica il file compressed-image.tar.gz nel nuovo bucket.

    gsutil cp compressed-image.tar.gz gs://BUCKET_NAME
  4. 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. In caso di errore di avvio, verifica 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. Creare una VM con un disco di avvio che usa l'immagine importata.

Console

  1. Nella console Google Cloud, vai alla pagina Crea un'istanza.

    Vai a Crea un'istanza

  2. Nella sezione Disco di avvio, fai clic su Cambia, quindi segui questi passaggi:

    1. Seleziona la scheda Immagini personalizzate.
    2. Per selezionare il progetto immagine, fai clic su Seleziona un progetto, quindi:
      1. Seleziona il progetto che contiene l'immagine.
      2. Fai clic su Apri.
    3. Nell'elenco Immagine, fai clic sull'immagine importata.
    4. Seleziona il tipo e le dimensioni del disco di avvio.
    5. Per confermare le opzioni del disco di avvio, fai clic su Seleziona.
  3. 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 tua 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 si sia avviata correttamente. Controlla l'output della porta seriale:

Console

  1. Nella console Google Cloud, vai alla pagina Istanze VM.

    Vai a Istanze

  2. Nell'elenco delle VM, fai clic sul nome della VM che hai creato dall'immagine importata. Si apre la pagina dei dettagli della VM.
  3. 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 alle ore Booting from Hard Disk 0..., devi troubleshoot dall'ambiente Compute Engine oppure puoi riconfigurare il disco di avvio sul sistema originale e ripetere il processo di importazione.

gcloud

gcloud compute instances get-serial-port-output VM_NAME

Se la VM si è arrestata alle ore Booting from Hard Disk 0..., devi troubleshoot dall'ambiente Compute Engine oppure puoi riconfigurare il disco di avvio sul sistema originale e ripetere il processo di importazione.

Puoi anche testare la VM connettendoti. Connettiti alla VM tramite una delle seguenti opzioni:

  • SSH: se la VM aveva una configurazione SSH funzionale, puoi connetterti alla VM tramite SSH e la tua chiave privata. Puoi trovare l'indirizzo IP dell'istanza VM nella pagina Istanze VM.
  • Console seriale: se devi accedere alla VM direttamente senza SSH, puoi abilitare la console seriale e accedere con un nome utente e una password.

Passaggi successivi