Se la tua VM Linux è inaccessibile per qualsiasi motivo, puoi provare a ripristinare la VM seguendo questa procedura.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per recuperare una VM, chiedi all'amministratore di concederti i seguenti ruoli IAM sul progetto:
-
Amministratore istanze Compute (v1) (
roles/compute.instanceAdmin.v1
) -
VM che utilizzano un account di servizio:
Utente account di servizio (
roles/iam.serviceAccountUser
)
Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso.
Questi ruoli predefiniti contengono le autorizzazioni necessarie per salvare una VM. Per visualizzare le autorizzazioni esatte necessarie, espandi la sezione Autorizzazioni richieste:
Autorizzazioni obbligatorie
Per salvare una VM sono necessarie le seguenti autorizzazioni:
-
compute.instances.create
sul progetto -
compute.disks.create
sul progetto -
compute.instances.get
sul progetto -
compute.disks.createSnapshot
su dischi -
compute.instances.attachDisk
su nuova VM -
compute.disks.use
su disco -
compute.instances.start
su VM nuova e inaccessibile -
compute.instances.stop
su VM nuova e inaccessibile
Potresti anche essere in grado di ottenere queste autorizzazioni con i ruoli personalizzati o altri ruoli predefiniti.
Salvataggio di una VM
Se non riesci a connetterti alla VM o se il disco di avvio è pieno, devi creare una VM temporanea per recuperare la VM inaccessibile.
- (Facoltativo) Arresta la VM inaccessibile.
- Crea uno snapshot dal disco di avvio della VM inaccessibile.
- Crea una VM temporanea utilizzando l'immagine pubblica più vicina al sistema operativo della VM inaccessibile.
- Controlla se puoi connetterti alla VM temporanea tramite SSH.
Aggiungi un altro disco alla VM temporanea seguendo questi passaggi:
Nella console Google Cloud, vai alla pagina Istanze VM.
Fai clic sul nome della VM temporanea che hai creato.
Fai clic su
Modifica.In Dischi aggiuntivi, fai clic su
Aggiungi nuovo disco, quindi:- Aggiungi il nome del disco, ad esempio my-recovery-disk
- Per Tipo di origine, seleziona la scheda Istantanea.
- Nel menu a discesa Snapshot di origine, seleziona lo snapshot della VM di origine che hai creato in precedenza in questi passaggi.
- Fai clic su Fine.
Fai clic su Salva.
Connettiti alla VM temporanea tramite SSH.
Esegui questo comando:
ls -l /dev/disk/by-id/google-*
L'output sarà simile al seguente:
/dev/disk/by-id/google-my-vm -> ../../sda /dev/disk/by-id/google-my-vm-part1 -> ../../sda1 /dev/disk/by-id/google-my-vm-part14 -> ../../sda14 /dev/disk/by-id/google-my-vm-part15 -> ../../sda15 /dev/disk/by-id/google-my-recovery-disk -> ../../sdb /dev/disk/by-id/google-my-recovery-disk-part1 -> ../../sdb1 /dev/disk/by-id/google-my-recovery-disk-part2 -> ../../sdb2 /dev/disk/by-id/google-my-recovery-disk-part5 -> ../../sdb5
Utilizza i link simbolici (
/dev/disk/by-id/google-my-recovery-disk-partN
) per individuare il dispositivo sottostante e le partizioni per il disco appena aggiunto, ad esempio/dev/sdb1
.Il collegamento simbolico per il disco è google-DISK_NAME o, se hai specificato un nome dispositivo personalizzato per il disco, google-DEVICE_NAME. Prendi nota del nome del dispositivo a cui punta il nuovo collegamento simbolico del disco.
Crea un punto di montaggio in
/mnt/newdisk
:sudo mkdir /mnt/newdisk
Monta la partizione del disco aggiuntiva nel punto di montaggio
/mnt/newdisk
:sudo mount -o discard,defaults DISK_NAME /mnt/newdisk
Sostituisci DISK_NAME con il nome del dispositivo che hai annotato in precedenza in questi passaggi, ad esempio
/dev/sdb1
.Se viene visualizzato l'errore
Filesystem has duplicate UUID XXXXXX - can't mount
,mount: /mnt/newdisk: wrong fs type, bad option
obad superblock on /dev/sdb
, utilizza il seguente comando:sudo mount -o nouuid DISK_NAME /mnt/newdisk
Il file system della VM inaccessibile è ora montato in
/mnt/newdisk
. Puoi esplorare il file system, modificare i file di configurazione, risolvere i problemi o recuperare i dati.
Ripristina le modifiche e riavvia la VM inaccessibile
Dopo aver risolto il problema o aver recuperato i dati, devi ripristinare la VM effettiva. Segui questi passaggi per ripristinare la VM originale:
Smonta il disco aggiuntivo montato in
/mnt/newdisk
nella VM temporanea:cd ~ sudo umount /mnt/newdisk
Nella console Google Cloud, vai alla pagina Istanze VM.
Seleziona la VM temporanea che hai creato.
Fai clic su
Modifica.In Dischi aggiuntivi, fai clic su
per il disco creato nei passaggi precedenti per scollegare il disco aggiuntivo dalla VM temporanea.Fai clic su Salva.
Vai alla pagina Istanze VM nella console Google Cloud.
Se la VM non accessibile è ancora in esecuzione, arresta la VM.
Fai clic sul nome della VM appena arrestata, quindi fai clic su
Modifica.In Disco di avvio, fai clic su
Scollega disco di libro per scollegare il disco di avvio in uscita dalla VM inaccessibile.Quindi, fai clic su Rescue a VM in questa pagina.
CONFIGURA DISCO DI AVVIO per collegare il disco che hai creato e corretto in precedenza in- Nella sezione Disco di avvio, fai clic sulla scheda Dischi esistenti.
- Nell'elenco a discesa, seleziona il disco creato nella sezione precedente, ad esempio
my-recovery-disk
. - Fai clic su Seleziona e poi su Salva.
Ora dovresti essere in grado di connetterti alla VM tramite SSH.