Créer des programmations pour les instantanés de disque


Vous créez une programmation d'instantanés pour sauvegarder régulièrement et automatiquement les disques persistants zonaux et régionaux, ainsi que Google Cloud Hyperdisk. Nous vous recommandons d'utiliser ces programmations d'instantanés pour sauvegarder vos charges de travail Compute Engine.

Si vous souhaitez créer une programmation d'instantanés qui capture l'état des données d'application au moment de la sauvegarde, également appelés cohérents avec les applications, guest-flush ouInstantané VSS, consultezCréer des instantanés de disque cohérents pour les applications Linux ou Créer un instantané de disque d'application cohérent Windows.

Pour en savoir plus sur les propriétés de la programmation d'instantanés, consultez la section Propriétés de la programmation d'instantanés.

Avant de commencer

  • Consultez les limites applicables aux programmations d'instantanés.
  • Si ce n'est pas déjà fait, configurez l'authentification. L'authentification est le processus permettant de valider votre identité pour accéder aux services et aux API Google Cloud. Pour exécuter du code ou des exemples depuis un environnement de développement local, vous pouvez vous authentifier auprès de Compute Engine comme suit :

    Sélectionnez l'onglet correspondant à la façon dont vous prévoyez d'utiliser les exemples de cette page :

    Console

    Lorsque vous utilisez la console Google Cloud pour accéder aux services et aux API Google Cloud, vous n'avez pas besoin de configurer l'authentification.

    gcloud

    1. Installez Google Cloud CLI, puis initialisez-la en exécutant la commande suivante :

      gcloud init
    2. Définissez une région et une zone par défaut.

    REST

    Pour utiliser les exemples d'API REST de cette page dans un environnement de développement local, vous devez utiliser les identifiants que vous fournissez à gcloud CLI.

      Installez Google Cloud CLI, puis initialisez-la en exécutant la commande suivante :

      gcloud init

Rôles et autorisations requis

Pour obtenir les autorisations nécessaires pour créer une programmation d'instantanés, 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 créer une programmation d'instantanés. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :

Autorisations requises

Les autorisations suivantes sont requises pour créer une programmation d'instantanés:

  • Pour créer une programmation d'instantanés : compute.resourcePolicies.create sur le projet ou l'organisation
  • Pour associer une programmation d'instantanés à un disque :
    • compute.disks.addResourcePolicies sur le disque
    • compute.resourcePolicies.use sur la règle de ressource
  • Créer un disque avec une programmation d'instantanés :
    • compute.disks.create sur le projet
    • compute.resourcePolicies.create sur le projet
    • compute.disks.addResourcePolicies sur le disque

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

Présentation de la création de programmations d'instantanés

Lors de la création d'une programmation d'instantanés, vous créez une règle de ressource que vous pouvez appliquer à un ou plusieurs volumes Persistent Disk ou Hyperdisk.

Vous pouvez créer des programmations d'instantanés comme suit :

Utiliser le chiffrement avec des programmations d'instantanés

Si un disque utilise une clé de chiffrement gérée par le client (CMEK), lorsque vous utilisez une programmation d'instantanés pour créer des instantanés de ce disque, tous les instantanés créés sont automatiquement chiffrés avec la même clé.

Vous ne pouvez pas utiliser de programmations d'instantanés avec des disques utilisant une clé de chiffrement fournie par le client (CSEK).

Créer une programmation d'instantanés

Vous pouvez créer une programmation d'instantanés pour vos disques à l'aide de la console Google Cloud, de la Google Cloud CLI ou de REST. Vous devez créer votre programmation d'instantanés dans la région où se trouve votre disque. Par exemple, si votre disque se trouve dans la zone us-west1-a, vous devez créer la programmation d'instantanés dans la région us-west1. Toutefois, vous pouvez choisir de stocker les instantanés générés par la programmation d'instantanés dans un autre emplacement.

Console

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

    Accéder à la page "Instances de VM"
    Les étapes restantes apparaîtront automatiquement dans la console Google Cloud.

  2. Sélectionnez le projet contenant vos instances de VM.
  3. Dans la colonne Nom, cliquez sur le nom de la VM sur laquelle figure le disque persistant pour lequel vous souhaitez créer une programmation d'instantanés.
  4. Dans Stockage, cliquez sur le nom du disque de démarrage ou du disque supplémentaire pour lequel vous souhaitez créer une programmation d'instantanés.
  5. Cliquez sur Modifier. Vous devrez peut-être cliquer sur le menu Autres actions, puis sur Modifier.
  6. Dans Programmation d'instantanés, sélectionnez Créer une programmation.
  7. Dans Nom, saisissez l'un des noms suivants pour la programmation d'instantanés :
    • boot-disk-snapshot-schedule
    • attached-persistent-disk-snapshot-schedule
  8. Dans la section Emplacement, choisissez l'emplacement de stockage de votre instantané. L'emplacement par défaut prédéfini ou personnalisé défini dans les paramètres de votre instantané est automatiquement sélectionné. Vous pouvez éventuellement remplacer les paramètres d'instantané et stocker vos instantanés dans un emplacement de stockage personnalisé en procédant comme suit :

    1. Choisissez le type d'emplacement de stockage souhaité pour votre instantané.

      • Choisissez Multirégional pour une disponibilité plus élevée à un coût plus élevé.
      • Choisissez des instantanés régionaux pour mieux contrôler l'emplacement physique de vos données, à moindre coût.
    2. Dans le champ Sélectionner l'emplacement, sélectionnez la région ou l'emplacement multirégional spécifique 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.

  9. Pour terminer la création de la programmation d'instantanés, cliquez sur Créer.
  10. Pour associer cette programmation d'instantanés au disque persistant, cliquez sur Enregistrer.

gcloud

Pour créer une programmation d'instantanés pour un disque, utilisez la commande gcloud compute resource-policies create snapshot-schedule. Définissez la fréquence de la programmation sur "hourly" (horaire), "daily" (quotidienne) ou "weekly" (hebdomadaire).

gcloud compute resource-policies create snapshot-schedule SCHEDULE_NAME \
    --description "SCHEDULE_DESCRIPTION" \
    --max-retention-days MAX_RETENTION_DAYS \
    --start-time START_TIME \
    --hourly-schedule SNAPSHOT_INTERVAL \
    --daily-schedule \
    --weekly-schedule SNAPSHOT_INTERVAL \
    --weekly-schedule-from-file FILE_NAME \
    --on-source-disk-delete DELETION_OPTION

Remplacez les éléments suivants :

  • SCHEDULE_NAME : nom de la programmation d'instantanés.
  • SCHEDULE_DESCRIPTION : description de la programmation d'instantanés. Utilisez des guillemets autour de votre description.
  • MAX_RETENTION_DAYS : nombre de jours de conservation de l'instantané.

    Par exemple, la valeur 3 signifie que les instantanés sont conservés pendant trois jours avant d'être supprimés. Vous devez utiliser une valeur supérieure ou égale à 1.

  • START_TIME : heure de début dans le fuseau horaire UTC. L'heure ne doit pas inclure de minutes.

    Par exemple :

    • 14h PST doit être spécifiée comme suit : 22:00.
    • Si vous définissez une heure de début ayant la valeur 22:13, une erreur est renvoyée.

    Si vous utilisez l'option --weekly-schedule-from-file et spécifiez une heure de début dans le fichier, vous n'avez pas besoin d'inclure cette option.

  • SNAPSHOT_INTERVAL: intervalle entre la création d'instantanés successifs. Les options de fréquence d'instantanés hourly-schedule, daily-schedule, weekly-schedule et weekly-schedule-from-file s'excluent mutuellement. Vous ne pouvez en utiliser qu'une seule pour la programmation d'instantanés.

    • Définissez une programmation à fréquence quotidienne en incluant l'option --daily-schedule sans aucune valeur.
    • Définissez une programmation à fréquence horaire avec l'option --hourly-schedule définie sur une valeur entière comprise entre 1 et 23. Pour générer des instantanés au même moment chaque jour, choisissez un nombre horaire divisible de manière égale par 24. Par exemple, si vous définissez --hourly-schedule sur 12, un instantané est créé toutes les 12 heures.
    • Définissez une programmation à fréquence hebdomadaire avec l'option --weekly-schedule définie sur le jour de la semaine où vous souhaitez créer l'instantané. Vous devez rédiger en entier le jour de la semaine. Les valeurs ne sont pas sensibles à la casse. Par exemple, pour sauvegarder votre disque tous les vendredis, votre commande inclut --weekly-schedule=friday.
    • Définissez une programmation hebdomadaire avancée, en spécifiant différents jours de la semaine et avec des heures de début différentes, en incluant l'option --weekly-schedule-from-file. Remplacez FILE_NAME par le nom de fichier contenant la programmation d'instantanés à fréquence hebdomadaire. Bien que vous puissiez spécifier différents jours de la semaine et différentes heures de début à l'aide d'un fichier, vous ne pouvez pas spécifier plusieurs programmations à fréquence hebdomadaire directement sur la ligne de commande. Par exemple, votre fichier peut spécifier deux programmations à fréquence hebdomadaire, le lundi et le mercredi, mais vous ne pouvez pas dupliquer ce paramètre sur la ligne de commande:

      [
        {"day": "MONDAY", "startTime": "04:00"},
        {"day": "WEDNESDAY", "startTime": "02:00"}
      ]
      

      Si vous incluez une heure de début dans votre fichier, vous n'avez pas besoin de définir l'option --start-time sur la ligne de commande. La programmation utilise le fuseau horaire UTC standard.

  • DELETION_OPTION : détermine ce qu'il advient de vos instantanés si le disque source est supprimé. Si vous souhaitez conserver tous les instantanés générés, vous pouvez omettre cette option. Sinon, spécifiez apply-retention-policy pour utiliser les paramètres d'une règle de conservation.

Exemples

Tous ces exemples incluent les éléments suivants :

  • La règle de suppression du disque est incluse, l'option --on-source-disk-delete est définie sur la valeur par défaut keep-auto-snapshots, laquelle permet de conserver indéfiniment tous les instantanés générés automatiquement. L'alternative consiste à définir cette option sur apply-retention-policy pour utiliser votre règle de conservation des instantanés.
  • L'emplacement de stockage est défini manuellement sur US. Tous les instantanés générés sont donc stockés dans l'emplacement multirégional des États-Unis.
  • Les libellés env=dev et media=images sont appliqués à tous les instantanés générés.
  • La règle de conservation est définie sur 10 jours.

Programmation à fréquence horaire : dans cet exemple, la programmation d'instantanés commence à 22h UTC (14h PST) et se produit toutes les 4 heures.

  gcloud compute resource-policies create snapshot-schedule SCHEDULE_NAME \
      --description "MY HOURLY SNAPSHOT SCHEDULE" \
      --max-retention-days 10 \
      --start-time 22:00 \
      --hourly-schedule 4 \
      --region us-west1 \
      --on-source-disk-delete keep-auto-snapshots \
      --snapshot-labels env=dev,media=images \
      --storage-location US

Programmation à fréquence quotidienne : dans cet exemple, la programmation d'instantanés commence à 22h UTC (14h PST) et se déroule tous les jours à la même heure. L'option --daily-schedule doit être présente, mais sans valeur associée.

gcloud compute resource-policies create snapshot-schedule SCHEDULE_NAME \
    --description "MY DAILY SNAPSHOT SCHEDULE" \
    --max-retention-days 10 \
    --start-time 22:00 \
    --daily-schedule \
    --region us-west1 \
    --on-source-disk-delete keep-auto-snapshots \
    --snapshot-labels env=dev,media=images \
    --storage-location US

Programmation à fréquence hebdomadaire : dans cet exemple, la programmation d'instantanés commence à 22h UTC (14h PST) et a lieu toutes les semaines les mardis et jeudis.

gcloud compute resource-policies create snapshot-schedule SCHEDULE_NAME \
    --description "MY WEEKLY SNAPSHOT SCHEDULE" \
    --max-retention-days 10 \
    --start-time 22:00 \
    --weekly-schedule tuesday,thursday \
    --region us-west1 \
    --on-source-disk-delete keep-auto-snapshots \
    --snapshot-labels env=dev,media=images \
    --storage-location US

REST

Pour créer une programmation d'instantanés, envoyez une requête POST à resourcePolicies.insert. Vous devez inclure le nom de la programmation d'instantanés et la fréquence d'instantanés.

Vous pouvez également spécifier manuellement un emplacement de stockage d'instantanés et ajouter des libellés de ressources à votre requête.

Par défaut, le paramètre onSourceDiskDelete est défini sur keepAutoSnapshots. Cela signifie que si le disque source est supprimé, l'instantané généré automatiquement pour ce disque est conservé indéfiniment. Vous pouvez également définir l'option sur applyRetentionPolicy pour appliquer votre règle de conservation.

L'exemple suivant définit une programmation d'instantanés à fréquence quotidienne qui commence à 12h UTC (04h00 PST) et se répète chaque jour. L'exemple définit également une règle de conservation de 5 jours. Au bout de ces cinq jours, les instantanés sont automatiquement supprimés.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies

    {
     "name": "SCHEDULE_NAME",
     "description": "SCHEDULE_DESCRIPTION",
     "snapshotSchedulePolicy": {
       "schedule": {
         "dailySchedule": {
           "startTime": "12:00",
           "daysInCycle": "1"
         }
       },
       "retentionPolicy": {
         "maxRetentionDays": "5"
       },
       "snapshotProperties": {
         "guestFlush": "False",
         "labels": {
           "env": "dev",
           "media": "images"
         },
         "storageLocations": "STORAGE_LOCATION"
       }
     }
    }

Remplacez les éléments suivants :

  • PROJECT_ID : nom du projet
  • REGION : emplacement de la règle de ressource de la programmation d'instantanés
  • SCHEDULE_DESCRIPTION : description de la programmation d'instantanés
  • SCHEDULE_NAME : nom de la programmation d'instantanés
  • STORAGE_LOCATION: emplacement de stockage

De même, vous pouvez créer une programmation à fréquence hebdomadaire ou mensuelle. Consultez la méthode resourcePolicies.insert pour en savoir plus sur la définition d'une programmation à fréquence hebdomadaire ou mensuelle.

Par exemple, la requête suivante crée une programmation à fréquence hebdomadaire qui s'exécute le mardi et le jeudi, à 9h et à 2h respectivement.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies

{
   "name": "SCHEDULE_NAME",
   "description": "SCHEDULE_DESCRIPTION",
   "snapshotSchedulePolicy": {
      "schedule": {
        "weeklySchedule": {
          "dayOfWeeks": [
          {
            "day": "Monday",
            "startTime": "9:00"
          },
          {
            "day": "Thursday",
            "startTime": "2:00"
          }
          ]
        }
      },
      "retentionPolicy": {
          "maxRetentionDays": "5"
      },
      "snapshotProperties": {
          "guestFlush": "False",
          "labels": {
               "production": "webserver"
          },
          "storageLocations": "US"
      }
  }
}

Associer une programmation d'instantanés à un disque

Après avoir créé une programmation, associez-la à un disque existant. Utilisez la console, gcloud CLI ou l'API Compute Engine.

Console

Pour associer une programmation d'instantanés à un disque existant, procédez comme suit.

  1. Dans la console Google Cloud, accédez à la page Disques.

    Accéder à la page Disques

  2. Sélectionnez le nom du disque auquel vous souhaitez associer une programmation d'instantanés. La page Gérer le disque s'ouvre.

  3. Sur la page Gérer le disque, cliquez sur Modifier. Vous devrez peut-être d'abord cliquer sur le menu Autres actions.

  4. Utilisez le menu déroulant Programmation des instantanés pour ajouter la programmation au disque, ou créez une programmation.

  5. Si vous avez choisi de créer une programmation, cliquez sur Créer.

  6. Cliquez sur Enregistrer pour terminer la tâche.

gcloud

Pour associer une programmation d'instantanés à un disque, utilisez la commande gcloud disks add-resource-policies.

gcloud compute disks add-resource-policies DISK_NAME \
    --resource-policies SCHEDULE_NAME \
    --zone ZONE

Remplacez les éléments suivants :

  • DISK_NAME : nom du disque existant
  • SCHEDULE_NAME : nom de la programmation d'instantanés
  • ZONE : emplacement de votre disque

REST

Envoyez une requête POST à disks.addResourcePolicies pour associer une programmation d'instantanés à un disque existant.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/disks/DISK_NAME/addResourcePolicies

{
  "resourcePolicies": [
    "regions/REGION/resourcePolicies/SCHEDULE_NAME"
  ]
}

Remplacez les éléments suivants :

  • PROJECT_ID : nom du projet
  • ZONE : zone où se trouve le disque.
  • REGION: région dans laquelle la programmation d'instantanés a été créée
  • DISK_NAME : le nom du disque
  • SCHEDULE_NAME: nom de la programmation d'instantanés que vous appliquez à ce disque.

Créer un disque avec une programmation d'instantanés

Vous pouvez utiliser la console Google Cloud ou gcloud CLI pour créer un disque et une programmation d'instantanés simultanément.

Console

  1. Dans la console Google Cloud, accédez à la page Disques.

    Accéder à la page Disques

  2. Cliquez sur Créer un disque.

  3. Remplissez les champs requis pour créer un disque zonal ou régional.

  4. Créez votre disque dans la même région que celle de votre programmation d'instantanés.

  5. Complétez les champs pour la programmation d'instantanés.

  6. Utilisez le menu déroulant et remplissez les champs pour créer la programmation.

  7. Cliquez sur Créer pour créer la programmation.

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

gcloud

Utilisez la commande gcloud disks create pour créer un disque persistant ou Hyperdisk zonal ou régional et lui associer une programmation d'instantanés.

gcloud compute disks create DISK_NAME \
     --resource-policies SCHEDULE_NAME \
     --zone ZONE

Remplacez les éléments suivants :

  • DISK_NAME : le nom du nouveau disque
  • SCHEDULE_NAME : nom de la programmation d'instantanés
  • ZONE : emplacement où vous créez le disque Ce disque doit se trouver dans une zone située dans la même région que la programmation d'instantanés.

Étapes suivantes