Recuperare una VM inaccessibile


Se la VM Linux non è accessibile per qualsiasi motivo, puoi provare a recuperarla seguendo i passaggi che seguono.

Ruoli obbligatori

Per ottenere le autorizzazioni di cui hai bisogno per recuperare una VM, chiedi all'amministratore di concederti seguenti ruoli IAM sul progetto:

Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.

Questi ruoli predefiniti le autorizzazioni necessarie per recuperare una VM. Per visualizzare le autorizzazioni esatte richieste, espandi la sezione Autorizzazioni richieste:

Autorizzazioni obbligatorie

Per recuperare una VM sono necessarie le seguenti autorizzazioni:

  • compute.instances.create del progetto
  • compute.disks.create nel progetto
  • compute.instances.get nel progetto
  • compute.disks.createSnapshot su dischi
  • compute.instances.attachDisk sulla nuova VM
  • compute.disks.use su disco
  • compute.instances.start su una VM nuova e inaccessibile
  • compute.instances.stop su una VM nuova e inaccessibile

Potresti anche riuscire a ottenere queste autorizzazioni con ruoli personalizzati altri ruoli predefiniti.

Salva una VM

Se non riesci a connetterti alla VM o se il disco di avvio è pieno, devi 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 un'immagine pubblica più simile al sistema operativo della VM inaccessibile.
  4. Verifica di essere in grado di connetterti alla VM temporanea tramite SSH.
  5. Aggiungi un disco aggiuntivo alla VM temporanea seguendo questa procedura:

    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 e poi:

      1. Aggiungi il nome del disco, ad esempio my-recovery-disk
      2. In Tipo di origine, seleziona la scheda Snapshot.
      3. Nel menu a discesa Istantanea di origine, seleziona l'istantanea del 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 utilizzando 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 e le partizioni sottostanti per il disco appena aggiunto, ad esempio /dev/sdb1.

    Il link simbolico per il disco è google-DISK_NAME o, se ha 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 aggiuntivo sul 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 esplora il file system, modifica i file di configurazione, risolvi i problemi o recupera i e i dati di Google Cloud.

Ripristina le modifiche e riavvia la VM inaccessibile

Una volta risolto il problema o recuperati i dati, devi ripristinare la VM effettiva. 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, interrompila.

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

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

    4. Poi, fai clic su CONFIGURA BOOT per collegare il disco che hai creato e riparato in precedenza in Recupero di una 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.