Sauver une VM inaccessible


Si votre VM Linux est inaccessible pour une raison quelconque, vous pouvez essayer de la sauver en procédant comme suit :

Rôles requis

Pour obtenir les autorisations nécessaires pour sauver une VM, demandez à votre administrateur de vous accorder les rôles IAM suivants sur le projet :

Pour en savoir plus sur l'attribution de rôles, consultez la section Gérer les accès.

Ces rôles prédéfinis contiennent les autorisations requises pour récupérer une VM. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :

Autorisations requises

Les autorisations suivantes sont requises pour récupérer une VM :

  • compute.instances.create sur le projet
  • compute.disks.create sur le projet
  • compute.instances.get sur le projet
  • compute.disks.createSnapshot sur les disques
  • compute.instances.attachDisk sur la nouvelle VM
  • compute.disks.use sur le disque
  • compute.instances.start sur une VM nouvelle et inaccessible
  • compute.instances.stop sur une VM nouvelle et inaccessible

Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.

Sauver une VM

Si vous ne pouvez pas vous connecter à votre VM ou si votre disque de démarrage est saturé, vous devez créer une VM temporaire pour sauver la VM inaccessible.

  1. (Facultatif) Arrêtez la VM inaccessible.
  2. Créez un instantané à partir du disque de démarrage de la VM inaccessible.
  3. Créez une VM temporaire à l'aide d'une image publique la plus proche du système d'exploitation de la VM inaccessible.
  4. Vérifiez si vous êtes en mesure de vous connecter à la VM temporaire à l'aide de SSH.
  5. Ajoutez un disque supplémentaire à la VM temporaire en procédant comme suit :

    1. Dans Google Cloud Console, accédez à la page Instances de VM.

      Accéder à la page "Instances de VM"

    2. Cliquez sur le nom de la VM temporaire que vous avez créée.

    3. Cliquez sur Modifier.

    4. Sous Disques supplémentaires, cliquez sur Ajouter un disque, puis procédez comme suit :

      1. Ajoutez le nom du disque, comme my-recovery-disk.
      2. Pour Type de source, sélectionnez l'onglet Instantané.
      3. Dans le menu déroulant Instantané source, sélectionnez l'instantané de la VM source que vous avez créée précédemment dans ces étapes.
      4. Cliquez sur OK.
    5. Cliquez sur Enregistrer.

  6. Connectez-vous à la VM temporaire en SSH.

  7. exécutez la commande suivante :

    ls -l /dev/disk/by-id/google-*

    Le résultat doit ressembler à ce qui suit :

      /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
    

    Utilisez les liens symboliques (/dev/disk/by-id/google-my-recovery-disk-partN) pour localiser l'appareil et les partitions sous-jacents du disque nouvellement ajouté, par exemple /dev/sdb1.

    Le lien symbolique pour le disque est google-DISK_NAME ou, si vous avez spécifié un nom d'appareil personnalisé pour le disque, google-DEVICE_NAME. Notez le nom de l'appareil ciblé par le nouveau lien symbolique de disque.

  8. Créez un point d'installation à l'emplacement /mnt/newdisk :

    sudo mkdir /mnt/newdisk

  9. Installez la partition de disque supplémentaire sur le point d'installation /mnt/newdisk :

     sudo mount -o discard,defaults DISK_NAME /mnt/newdisk

    Remplacez DISK_NAME par le nom d'appareil que vous avez noté précédemment dans ces étapes, par exemple /dev/sdb1.

    Si vous voyez l'erreur Filesystem has duplicate UUID XXXXXX - can't mount, mount: /mnt/newdisk: wrong fs type, bad option ou bad superblock on /dev/sdb, utilisez la commande suivante :

     sudo mount -o nouuid DISK_NAME /mnt/newdisk

    Le système de fichiers de la VM inaccessible est maintenant associé dans /mnt/newdisk. Vous pouvez parcourir le système de fichiers, modifier des fichiers de configuration, résoudre des problèmes ou récupérer les données.

Annuler les modifications et redémarrer la VM inaccessible

Une fois le problème résolu ou les données récupérées, vous devez rétablir la VM réelle. Pour restaurer la VM d'origine, procédez comme suit :

  1. Désinstallez le disque supplémentaire installé dans /mnt/newdisk dans la VM temporaire :

     cd ~
     sudo umount /mnt/newdisk

  2. Dans Google Cloud Console, accédez à la page Instances de VM.

    Accéder à la page "Instances de VM"

    1. Sélectionnez la VM temporaire que vous avez créée.

    2. Cliquez sur Modifier ().

    3. Sous Disques supplémentaires, cliquez sur pour le disque créé précédemment afin de dissocier le disque supplémentaire de la VM temporaire.

    4. Cliquez sur Enregistrer.

  3. Accédez à la page Instances de VM de la console Google Cloud.

    Accéder à la page "Instances de VM"

    1. Si la VM inaccessible est toujours en cours d'exécution, arrêtez-la.

    2. Cliquez sur le nom de la VM que vous venez d'arrêter, puis sur Modifier.

    3. Sous Disque de démarrage, cliquez sur Dissocier le disque de démarrage pour dissocier le disque de démarrage sortant de la VM inaccessible.

    4. Cliquez ensuite sur CONFIGURER LE DISQUE DE DÉMARRAGE pour associer le disque que vous avez créé et corrigé précédemment dans la section sauver une VM de la présente page.

      1. Dans la section Disque de démarrage, cliquez sur l'onglet Disques existants.
      2. Dans la liste déroulante, sélectionnez le disque que vous avez créé dans la section précédente, par exemple my-recovery-disk.
      3. Cliquez sur Sélectionner, puis sur Enregistrer.
    5. Démarrez la VM.

  4. Vous devriez maintenant pouvoir vous connecter à la VM en SSH.