Utiliser des instantanés de disque persistant

Créez des instantanés pour sauvegarder régulièrement les données de vos disques persistants zonaux ou régionaux.

Vous pouvez créer des instantanés à partir de disques, même lorsqu'ils sont associés à des instances en cours d'exécution. Les instantanés sont des ressources globales. Vous pouvez donc les utiliser pour restaurer des données sur un nouveau disque ou une nouvelle instance du même projet. Vous pouvez également partager des instantanés entre plusieurs projets.

Avant de commencer

Créer des instantanés

Pour préparer la création d'instantanés de disques persistants, procédez comme suit :

Créer un instantané de disque persistant zonal

Console

  1. Accédez à la page Créer un instantané dans Google Cloud Console.
    Accéder à la page Créer un instantané
  2. Saisissez un nom d'instantané.
  3. Saisissez éventuellement une description de l'instantané.
  4. Sélectionnez le disque source dans le menu déroulant.
  5. Déterminez l'emplacement de stockage de l'instantané. Vous pouvez utiliser l'emplacement de stockage par défaut ou un emplacement de stockage personnalisé.

    1. Sous Emplacement, indiquez si vous souhaitez stocker l'instantané dans un emplacement multirégional ou régional.
    2. Sélectionnez l'emplacement régional ou multirégional que vous souhaitez utiliser. Pour utiliser celui qui est le plus proche de votre disque source, sélectionnez Basé sur l'emplacement du disque source (valeur par défaut).
  6. Cliquez sur Créer pour créer l'instantané.

gcloud

Créez votre instantané dans l'emplacement de stockage par défaut ou dans un emplacement de stockage sélectionné. Vous devez saisir le nom de l'instantané. Le nom doit comporter entre 1 et 63 caractères, et être conforme à la norme RFC 1035.

  • Pour créer un instantané d'un disque persistant zonal dans l'emplacement de stockage par défaut, exécutez la commande gcloud compute disks snapshot :

    gcloud compute disks snapshot DISK_NAME

    Remplacez DISK_NAME par le nom du disque persistant zonal à partir duquel vous souhaitez créer un instantané.

  • Sinon, pour créer un instantané dans un emplacement de stockage personnalisé, utilisez l'indicateur --storage-location pour spécifier où stocker l'instantané :

    gcloud compute disks snapshot DISK_NAME \
        --snapshot-names=SNAPSHOT_NAME \
        --storage-location STORAGE_LOCATION
    

    où :

L'outil de ligne de commande gcloud attend que l'opération renvoie un état READY ou FAILED, ou atteigne le délai maximal avant expiration. Il renvoie alors les informations les plus récentes sur l'instantané.

API

Créez votre instantané dans l'emplacement de stockage par défaut ou dans un emplacement de stockage sélectionné. Vous devez saisir le nom de l'instantané dans le champ name. Le nom doit comporter entre 1 et 63 caractères, et être conforme à la norme RFC 1035.

  • Pour créer un instantané dans l'emplacement de stockage par défaut, envoyez une requête POST à la méthode disks.createSnapshot :

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/disks/DISK_NAME/createSnapshot
    
    {
      "name": SNAPSHOT_NAME
    }
    

    où :

    • PROJECT_ID est l'ID de votre projet.
    • ZONE est la zone dans laquelle se trouvent l'instance et le disque.
    • DISK_NAME est le nom du disque persistant zonal à partir duquel vous souhaitez créer un instantané.
    • SNAPSHOT_NAME est le nom de votre instantané.
  • Sinon, pour créer un instantané dans un emplacement de stockage personnalisé, envoyez une requête POST à la méthode disks.createSnapshot et spécifiez l'emplacement de stockage :

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/disks/DISK_NAME/createSnapshot
    
    {
      "name": SNAPSHOT_NAME
      "storageLocations": STORAGE_LOCATION
    }
    

    où :

    • PROJECT_ID est l'ID de votre projet.
    • ZONE est la zone dans laquelle se trouvent l'instance et le disque.
    • DISK_NAME est le nom du disque persistant zonal à partir duquel vous souhaitez créer un instantané.
    • SNAPSHOT_NAME est le nom de votre instantané.
    • STORAGE_LOCATION est l'emplacement multirégional Cloud Storage ou l'emplacement régional Cloud Storage dans lequel vous souhaitez stocker l'instantané. Vous ne pouvez spécifier qu'un seul emplacement de stockage.

Créer un instantané d'un disque persistant régional

Une fois que vous avez préparé le disque, vous pouvez créer un instantané. Lors de la création d'un instantané d'un disque persistant régional, vous devez indiquer la région dans laquelle se trouve le disque.

Console

  1. Accédez à la page Créer un instantané dans Google Cloud Console.
    Accéder à la page Créer un instantané
  2. Saisissez un nom d'instantané.
  3. Saisissez éventuellement une description de l'instantané.
  4. Sous Disque source, sélectionnez un disque existant à partir duquel vous souhaitez créer un instantané.
  5. Si vous le souhaitez, vous pouvez spécifier un emplacement de stockage personnalisé :

    1. Sous Emplacement, indiquez si vous souhaitez stocker l'instantané dans un emplacement multirégional ou régional.
    2. Sélectionnez l'emplacement régional ou multirégional que vous souhaitez utiliser. Pour utiliser celui qui est le plus proche de votre disque source, sélectionnez Basé sur l'emplacement du disque source.
  6. Cliquez sur Créer pour créer l'instantané.

gcloud

Créez votre instantané dans l'emplacement de stockage par défaut ou dans un emplacement de stockage sélectionné.

  • Pour créer un instantané d'un disque persistant régional dans l'emplacement de stockage par défaut, exécutez la commande gcloud compute disks snapshot :

    gcloud compute disks snapshot DISK_NAME \
        --region=REGION
    

    Remplacez l'élément suivant :

    • DISK_NAME : nom du disque persistant régional à partir duquel vous souhaitez créer un instantané.
    • REGION : la région où se trouve le disque persistant régional.
  • Si vous le souhaitez, vous pouvez spécifier un emplacement de stockage personnalisé :

    gcloud compute disks snapshot DISK_NAME --region
        REGION --storage-location STORAGE_LOCATION
    

    où :

    • DISK_NAME est le nom du disque persistant régional à partir duquel vous souhaitez créer un instantané.
    • REGION est la région où se trouve le disque persistant régional.
    • STORAGE_LOCATION est l'emplacement multirégional Cloud Storage ou l'emplacement régional Cloud Storage dans lequel vous souhaitez stocker l'instantané. Vous ne pouvez spécifier qu'un seul emplacement de stockage.

    L'outil de ligne de commande gcloud attend que l'opération renvoie un état READY ou FAILED, ou atteigne le délai maximal avant expiration. Il renvoie alors les informations les plus récentes sur l'instantané.

API

  • Pour créer un instantané dans l'emplacement de stockage par défaut, envoyez une requête POST à la méthode regionDisk.createSnapshot :

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/disks/DISK_NAME/createSnapshot
    {
     "name": SNAPSHOT_NAME
    }
    

    où :

    • PROJECT_ID est l'ID de votre projet.
    • REGION est la région où se trouve le disque persistant régional.
    • DISK_NAME est le nom du disque à partir duquel vous souhaitez créer un instantané.
    • SNAPSHOT_NAME est le nom de votre instantané.
  • Sinon, pour créer un instantané dans un emplacement de stockage personnalisé, envoyez une requête POST à la méthode regionDisk.createSnapshot et spécifiez l'emplacement de stockage :

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/VAR/disks/DISK_NAME/createSnapshot
    {
     "name": SNAPSHOT_NAME
     "storageLocations": STORAGE_LOCATION
    }
    

    où :

    • PROJECT_ID est l'ID de votre projet.
    • REGION est la région où se trouve le disque persistant régional.
    • DISK_NAME est le nom du disque persistant régional à partir duquel vous souhaitez créer un instantané.
    • SNAPSHOT_NAME est le nom de votre instantané.
    • STORAGE_LOCATION est l'emplacement multirégional Cloud Storage ou l'emplacement régional Cloud Storage dans lequel vous souhaitez stocker l'instantané. Vous ne pouvez spécifier qu'un seul emplacement de stockage.

Partager des instantanés entre plusieurs projets

Pour déplacer des données du disque entre les projets, partagez un instantané du disque avec les utilisateurs d'autres projets. Par exemple, pour déplacer les données du disque disk-1 dans project-a vers un nouveau disque disk-2 dans project-b, procédez comme suit : Dans cet exemple, disk-1 se trouve dans la zone us-west2-a et instance-1 se trouve dans la zone us-west2-b.

gcloud

  1. Créez un instantané de disk-1 :

    gcloud compute disks snapshot disk-1 --project project-a --snapshot-names snapshot-1
    
  2. Créez un disque dans project-b basé sur l'instantané comme suit :

    gcloud compute disks create disk-2  --project project-b --source-snapshot projects/project-a/global/snapshots/snapshot-1
    
  3. Associez le nouveau disque à l'instance instance-1 dans project-b.

    gcloud compute instances attach-disk instance-1 --project project-b --disk disk-2
    
  4. Montez le disque. Reportez-vous aux étapes 5 à 7 de la section Formater et installer un disque persistant.

API

  1. Créez un instantané de disk-1 en envoyant une requête POST à la méthode disks.createSnapshot.

    POST https://compute.googleapis.com/compute/v1/projects/project-a/zones/us-west2-a/disks/disk-1/createSnapshot
    
    {
    "name": "snapshot-1"
    }
    
  2. Créez un disque disk-2 dans project-b basé sur l'instantané. Envoyez une requête POST pour créer un disque persistant zonal à l'aide de la méthode disks.insert.

    POST https://compute.googleapis.com/compute/v1/projects/project-b/zones/us-west2-b/disks
    
    {
    "name": "disk-2",
    "type": "zones/us-west2-b/diskTypes/DISK_TYPE"
    "sourceSnapshot": "projects/project-a/global/snapshots/snapshot-1"
    }
    

    Remplacez DISK_TYPE par l'URL complète ou partielle du type de disque persistant.

    Par exemple, https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/diskTypes/pd-ssd.

  3. Associez le nouveau disque à l'instance instance-1 dans project-b. Le disque doit se trouver dans la même zone que l'instance. Envoyez une requête POST à la méthode instances.attachDisk et incluez l'URL du disque persistant zonal que vous venez de créer.

    POST https://compute.googleapis.com/compute/v1/projects/project-b/zones/us-west2-b/instances/instance-1/attachDisk
    
    {
    "source": "/compute/v1/projects/project-b/zones/us-west2-b/disks/disk-2"
    }
    
  4. Montez le disque. Reportez-vous aux étapes 5 à 7 de la section Formater et installer un disque persistant.

Pour obtenir la liste des instantanés disponibles, consultez la page Répertorier les instantanés.

Restaurer des instantanés

Pour restaurer le contenu d'un instantané sur un nouveau disque, vous disposez des options suivantes :

  • Créer un disque persistant à partir d'un instantané : créez un disque et sélectionnez l'instantané comme source.

  • Créer une instance à partir d'un instantané : lorsque vous créez une instance, vous pouvez utiliser des instantanés pour créer des disques de démarrage et des disques de données pour cette instance. En cas de panne, vous pouvez rapidement récupérer vos données en restaurant un ou plusieurs instantanés sur les nouveaux disques persistants sur une nouvelle instance. Pour en savoir plus, consultez la page Créer une instance à partir d'instantanés.

Créer un disque persistant à partir d'un instantané

Le nouveau disque persistant doit avoir la même taille que le disque source d'origine pour l'instantané. Si vous créez un disque persistant d'une taille supérieure au disque source d'origine pour l'instantané, vous devez redimensionner le système de fichiers de ce disque persistant pour inclure l'espace disque supplémentaire.

Vous pouvez créer un disque persistant zonal à partir d'un instantané au maximum une fois toutes les dix minutes. Ainsi, si vous souhaitez effectuer une série de requêtes d'instantanés sur vos disques, vous ne pouvez pas émettre plus de six requêtes en 60 minutes. Cette limite ne s'applique pas à la création de disques persistants régionaux à partir d'un instantané. Pour en savoir plus, consultez la section sur les limites de fréquence des instantanés.

Selon le système d'exploitation et le type de système de fichiers, vous devrez peut-être utiliser un autre outil de redimensionnement des systèmes de fichiers. Pour en savoir plus, consultez la documentation de votre système d'exploitation.

Console

  1. Dans Google Cloud Console, accédez à la page Instantanés.

    Accéder à la section "Instantanés"

  2. Recherchez le nom de l'instantané que vous souhaitez restaurer.

  3. Accédez à la page Disques.

    Accéder à la page Disques

  4. Cliquez sur Créer un disque.

  5. Spécifiez les paramètres de configuration suivants :

    • Le nom du disque.
    • Le type de disque.
    • Si vous le souhaitez, vous pouvez également remplacer la région et la zone par défaut. Vous pouvez sélectionner n'importe quelle région et zone, quel que soit l'emplacement de stockage de l'instantané source.
  6. Sous Type de source, cliquez sur Instantané.

  7. Sélectionnez le nom de l'instantané à restaurer.

  8. Sélectionnez la taille du nouveau disque en Go. Ce nombre doit être supérieur ou égal au disque source d'origine de l'instantané.

  9. Cliquez sur Créer pour créer le disque.

gcloud

  1. Exécutez la commande gcloud compute snapshots list pour rechercher le nom de l'instantané à restaurer :

    gcloud compute snapshots list
    
  2. Exécutez la commande gcloud compute snapshots describe pour connaître la taille de l'instantané à restaurer :

    gcloud compute snapshots describe SNAPSHOT_NAME
    

    Remplacez SNAPSHOT_NAME par le nom de l'instantané à restaurer.

  3. Exécutez la commande gcloud compute disks create pour créer un disque persistant régional ou zonal à partir de votre instantané. Si vous avez besoin d'un disque persistant SSD pour obtenir un débit ou un taux d'IOPS plus élevés, ajoutez l'option --type et spécifiez pd-ssd.

    gcloud compute disks create DISK_NAME \
        --size=DISK_SIZE \
        --source-snapshot=SNAPSHOT_NAME \
        --type=DISK_TYPE
    

    Remplacez l'élément suivant :

    • DISK_NAME : le nom du nouveau disque.
    • DISK_SIZE : taille du nouveau disque en Go. Ce nombre doit être supérieur ou égal au disque source d'origine de l'instantané.
    • SNAPSHOT_NAME : nom de l'instantané qui va être restauré.
    • DISK_TYPE : URL complète ou partielle du type du disque persistant. Exemple : https://www.googleapis.com/compute/v1/projects/PROJECT_ID /zones/ZONE/diskTypes/pd-ssd.

API

  1. Envoyez une requête GET à snapshots.list pour afficher la liste des instantanés de votre projet.

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/snapshots
    

    Remplacez PROJECT_ID par l'ID du projet.

  2. Envoyez une requête POST pour créer un disque persistant zonal à l'aide de la méthode disks.insert. Incluez les propriétés name, sizeGb et type. Pour restaurer un disque à l'aide d'un instantané, vous devez inclure la propriété sourceSnapshot.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/disks
    
    {
     "name": "DISK_NAME",
     "sizeGb": "DISK_SIZE",
     "type": "zones/ZONE/diskTypes/DISK_TYPE"
     "sourceSnapshot": "SNAPSHOT_NAME"
    }
    

    Remplacez l'élément suivant :

    • PROJECT_ID : ID de votre projet.
    • ZONE : la zone où se trouvent l'instance et le nouveau disque.
    • DISK_NAME : le nom du nouveau disque.
    • DISK_SIZE : la taille du nouveau disque en Go. Ce nombre doit être supérieur ou égal au disque source d'origine de l'instantané.
    • DISK_TYPE : URL complète ou partielle du type du disque persistant. Par exemple : https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ ZONE/diskTypes/pd-ssd
    • SNAPSHOT_NAME est l'instantané source du disque que vous restaurez.

Vous pouvez éventuellement associer le nouveau disque à une instance existante.

Console

  1. Accédez à la page Instances de VM.

    Accéder à la page Instances de VM

  2. Cliquez sur le nom de l'instance sur laquelle vous souhaitez restaurer le disque non amorçable.
  3. Cliquez sur Modifier en haut de la page des détails de l'instance.
  4. Sous Disques supplémentaires, cliquez sur Associer un disque existant.
  5. Sélectionnez le nom du nouveau disque créé à partir de votre instantané.
  6. Cliquez sur OK pour associer le disque.
  7. En bas de la page des détails de l'instance, cliquez sur Enregistrer pour appliquer vos modifications à l'instance.

gcloud

  1. Exécutez la commande gcloud compute instances attach-disk pour associer le disque persistant à une instance :

    gcloud compute instances attach-disk INSTANCE_NAME \
        --disk DISK_NAME
    

    où :

    • INSTANCE_NAME est le nom de l'instance.
    • DISK_NAME est le nom du disque créé à partir de l'instantané.

API

  1. Envoyez une requête POST à la méthode instances.attachDisk et incluez l'URL du disque persistant zonal que vous venez de créer à partir de votre instantané.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/attachDisk
    
    {
     "source": "/compute/v1/projects/PROJECT_ID/zones/ZONE/disks/DISK_NAME"
    }
    

    où :

    • PROJECT_ID est l'ID de votre projet.
    • ZONE est la zone où se trouvent l'instance et le nouveau disque.
    • INSTANCE_NAME est le nom de l'instance à laquelle vous ajoutez le disque persistant.
    • DISK_NAME est le nom du nouveau disque.

Après avoir créé et associé un disque à une instance, vous devez installer le disque pour que le système d'exploitation puisse utiliser l'espace de stockage disponible.

Supprimer un instantané

Compute Engine utilise des instantanés incrémentiels qui ne contiennent que les données modifiées depuis l'instantané précédent. Les instantanés ultérieurs peuvent nécessiter des informations stockées dans un instantané précédent. Par conséquent, notez que la suppression d'un instantané ne supprime pas nécessairement toutes les données qu'il contient. Pour en savoir plus sur la suppression des instantanés, consultez la page Suppression d'instantanés.

Pour supprimer un instantané, procédez comme suit :

Console

  1. Accédez à la page Instantanés dans Google Cloud Console.

    Accéder à la page Instantanés

  2. Sélectionnez un ou plusieurs instantanés que vous souhaitez supprimer.
  3. En haut de la page Instantanés, cliquez sur Supprimer.

gcloud

Pour supprimer un instantané, utilisez la commande gcloud compute snapshots delete :

gcloud compute snapshots delete SNAPSHOT_NAME

SNAPSHOT_NAME est le nom de l'instantané qui va être supprimé.

API

Envoyez une requête DELETE à la méthode compute.snapshots.delete pour supprimer des instantanés.

DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/snapshots/SNAPSHOT_NAME

où :

  • PROJECT_ID est le nom de votre projet.
  • SNAPSHOT_NAME est le nom de l'instantané à supprimer.

Supprimer plusieurs instantanés en fonction d'un filtre

Compute Engine utilise des instantanés incrémentiels qui ne contiennent que les données modifiées depuis l'instantané précédent. Étant donné que les instantanés suivants peuvent nécessiter des informations stockées dans un instantané précédent, la suppression d'un instantané ne supprime pas nécessairement toutes les données qu'il contient. Pour en savoir plus sur la suppression des instantanés, consultez la page Suppression d'instantanés.

Les sections suivantes expliquent comment supprimer un certain nombre d'instantanés en fonction d'un filtre donné. Pour en savoir plus sur les filtres de l'outil gcloud, consultez la page Filtres thématiques de l'outil gcloud.

Pour supprimer les instantanés, utilisez une combinaison de la commande gcloud compute snapshots list avec un filtre donné, et de la commande gcloud compute snapshots delete avec xargs:

gcloud compute snapshots list --filter="EXPRESSION" --uri |
   xargs gcloud compute snapshots delete

Remplacez EXPRESSION par un filtre de sujet gcloud.

Par exemple, --filter="creationTimestamp>'2021-01-01'" supprime tous les instantanés créés après 2021-01-01.

Répertorier les instantanés

gcloud

Pour afficher la liste des instantanés disponibles pour un projet particulier, utilisez la commande gcloud compute snapshots list.

gcloud compute snapshots list --project PROJECT_ID

PROJECT_ID est l'ID du projet.

API

Pour afficher la liste des instantanés disponibles pour un projet particulier, envoyez une requête GET à la méthode snapshots.list :

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/snapshots

PROJECT_ID est l'ID du projet.

Afficher des informations sur un instantané

Pour répertorier des informations sur un instantané particulier, par exemple l'heure de sa création, sa taille et son disque source, exécutez la commande gcloud compute snapshots describe :

gcloud compute snapshots describe SNAPSHOT_NAME

SNAPSHOT_NAME est le nom de l'instantané.

Étape suivante