Salva una VM inaccessibile

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:

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.

  1. (Facoltativo) Arresta la VM inaccessibile.
  2. Crea uno snapshot dal disco di avvio della VM inaccessibile.
  3. Crea una VM temporanea utilizzando l'immagine pubblica più vicina al sistema operativo della VM inaccessibile.
  4. Controlla se puoi connetterti alla VM temporanea tramite SSH.
  5. Aggiungi un altro disco alla VM temporanea seguendo questi passaggi:

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

      Vai a Istanze VM

    2. Fai clic sul nome della VM temporanea che hai creato.

    3. Fai clic su Modifica.

    4. In Dischi aggiuntivi, fai clic su Aggiungi nuovo disco, quindi:

      1. Aggiungi il nome del disco, ad esempio my-recovery-disk
      2. Per Tipo di origine, seleziona la scheda Istantanea.
      3. Nel menu a discesa Snapshot di origine, seleziona lo snapshot della VM di origine che hai creato in precedenza in questi passaggi.
      4. Fai clic su Fine.
    5. Fai clic su Salva.

  6. Connettiti alla VM temporanea tramite SSH.

  7. 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.

  8. Crea un punto di montaggio in /mnt/newdisk:

    sudo mkdir /mnt/newdisk

  9. 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 o bad 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:

  1. Smonta il disco aggiuntivo montato in /mnt/newdisk nella VM temporanea:

     cd ~
     sudo umount /mnt/newdisk

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

    Vai a Istanze VM

    1. Seleziona la VM temporanea che hai creato.

    2. Fai clic su Modifica.

    3. In Dischi aggiuntivi, fai clic su per il disco creato nei passaggi precedenti per scollegare il disco aggiuntivo dalla VM temporanea.

    4. Fai clic su Salva.

  3. Vai alla pagina Istanze VM nella console Google Cloud.

    Vai a Istanze VM

    1. Se la VM non accessibile è ancora in esecuzione, arresta la VM.

    2. Fai clic sul nome della VM appena arrestata, quindi fai clic su Modifica.

    3. In Disco di avvio, fai clic su Scollega disco di libro per scollegare il disco di avvio in uscita dalla VM inaccessibile.

    4. Quindi, fai clic su CONFIGURA DISCO DI AVVIO per collegare il disco che hai creato e corretto in precedenza in Rescue a VM in questa pagina.

      1. Nella sezione Disco di avvio, fai clic sulla scheda Dischi esistenti.
      2. Nell'elenco a discesa, seleziona il disco creato nella sezione precedente, ad esempio my-recovery-disk.
      3. Fai clic su Seleziona e poi su Salva.
    5. Avvia la VM.

  4. Ora dovresti essere in grado di connetterti alla VM tramite SSH.