Créer des programmations d'instantanés pour des disques persistants

Restez organisé à l'aide des collections Enregistrez et classez les contenus selon vos préférences.

Ce document décrit comment créer une programmation d'instantanés, afin de sauvegarder régulièrement et automatiquement vos disques persistants zonaux et régionaux. 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é instantané cohérent, vide d'invité ou instantané VSS, consultez Créer un instantané de disque persistant cohérent pour une application Linux ou Créer un instantané de disque persistant Windows.

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 disques persistants. Vous pouvez créer des programmations d'instantanés comme suit :

Une programmation d'instantanés inclut les propriétés suivantes :

  • Nom de la programmation
  • Description de la programmation
  • Fréquence des instantanés (horaire, quotidienne, hebdomadaire)
  • Heure de début des instantanés
  • Région dans laquelle la programmation d'instantanés est disponible
  • Règle de suppression du disque source pour gérer les instantanés générés automatiquement si le disque source est supprimé
  • Règle de conservation permettant de définir la durée de conservation des instantanés générés à partir de la programmation d'instantanés

Avant de commencer

  1. Connectez-vous à votre compte Google Cloud. Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits gratuits pour exécuter, tester et déployer des charges de travail.
  2. Installez Google Cloud CLI.
  3. Pour initialiser gcloudCLI, exécutez la commande suivante :

    gcloud init
  4. Créez ou sélectionnez un projet Google Cloud.

    • Créez un projet Cloud :

      gcloud projects create PROJECT_ID
    • Sélectionnez le projet Cloud que vous avez créé :

      gcloud config set project PROJECT_ID
  5. Assurez-vous que la facturation est activée pour votre projet Cloud. Découvrez comment vérifier si la facturation est activée sur un projet.

  6. Activer l'API Compute Engine :

    gcloud services enable compute.googleapis.com
  7. Installez Google Cloud CLI.
  8. Pour initialiser gcloudCLI, exécutez la commande suivante :

    gcloud init
  9. Créez ou sélectionnez un projet Google Cloud.

    • Créez un projet Cloud :

      gcloud projects create PROJECT_ID
    • Sélectionnez le projet Cloud que vous avez créé :

      gcloud config set project PROJECT_ID
  10. Assurez-vous que la facturation est activée pour votre projet Cloud. Découvrez comment vérifier si la facturation est activée sur un projet.

  11. Activer l'API Compute Engine :

    gcloud services enable compute.googleapis.com

Restrictions

  • Un disque persistant peut être associé à un maximum de 10 programmations d'instantanés à la fois.
  • Vous ne pouvez pas créer d'instantanés d'archive à l'aide d'une programmation d'instantanés.
  • Les programmations d'instantanés en cours d'utilisation sont limitées à 1 000 par région.
  • Les programmations d'instantanés ne s'appliquent qu'au projet dans lequel elles ont été créées. Les programmations d'instantanés ne peuvent pas être utilisées dans d'autres projets ou organisations.
  • Vous devrez peut-être demander une augmentation du quota de ressources via la console si vous avez besoin de ressources supplémentaires dans votre région.
  • Vous ne pouvez pas supprimer une programmation d'instantanés si celle-ci est associée à un disque. Vous devez la dissocier de tous les disques pour pouvoir ensuite la supprimer.
  • Une fois que vous avez créé une programmation d'instantanés, vous pouvez modifier la description, la programmation et les libellés en version preview. Pour mettre à jour d'autres valeurs d'une programmation d'instantanés, vous devez supprimer la programmation d'instantanés et en créer une autre.
  • Pour les disques persistants qui utilisent une clé de chiffrement fournie par le client (CSEK), vous ne pouvez pas créer de programmations d'instantanés.
  • Pour les disques persistants qui utilisent une clé de chiffrement gérée par le client (CMEK), tous les instantanés créés avec une programmation d'instantanés sont automatiquement chiffrés avec la même clé.

Fréquence des programmations d'instantanés

Avant de créer une programmation d'instantanés, sélectionnez l'heure de début et la fréquence d'instantanés souhaitées. L'heure de début correspond au début de la programmation d'instantanés. La fréquence peut être horaire, quotidienne ou hebdomadaire.

Une programmation d'instantanés commence dans un délai d'une heure après l'heure de début indiquée. Par exemple, si l'heure de début programmée est 12h, la création d'instantanés peut commencer à tout moment entre 12h00 et 12h59. La programmation utilise le temps UTC standard.

Les programmations d'instantanés sont affectées par le passage à l'heure d'été. Lors du passage de l'heure d'hiver à l'heure d'été aux États-Unis, et inversement, les heures de début de vos jobs de programmation d'instantanés sont respectivement avancées ou reculées d'une heure, et ce que votre fuseau horaire local soit ou non soumis à l'heure d'été.

  • Définir une programmation à fréquence horaire : pour définir une fréquence horaire pour votre programmation, sélectionnez l'heure de début, puis choisissez un intervalle d'instantanés à l'aide d'un entier compris entre 1 et 23. Un intervalle d'instantanés définit la fréquence à laquelle les instantanés seront créés. Lorsque vous définissez l'intervalle, choisissez un nombre qui divise uniformément 24 (1, 2, 3, 4, 6, 8 ou 12) de sorte à ce que l'instantané démarre tous les jours au même intervalle. Par exemple, en définissant une heure de début à 9h00 avec un intervalle de 6, vous indiquez que la programmation d'instantanés commence entre 9h00 et 10h00 avec un intervalle d'instantanés défini à toutes les 6 heures.

  • Définir une programmation à fréquence quotidienne : définissez la fréquence quotidienne pour que les instantanés soient créés une seule fois par jour. Par exemple, vous pouvez définir une programmation d'instantanés à fréquence quotidienne pour qu'un instantané soit généré chaque jour à 9h.

  • Définir une programmation à fréquence hebdomadaire : définissez la fréquence hebdomadaire pour réaliser des instantanés sur plusieurs jours de la semaine. Par exemple, en appliquant une heure de début à 9h avec une programmation à fréquence hebdomadaire définie sur lundi, jeudi et dimanche, vous indiquez que la programmation d'instantanés doit se produire à 9h le lundi, le jeudi et le dimanche de chaque semaine. Vous pouvez également définir une programmation à fréquence hebdomadaire pour différents jours de la semaine. Par exemple, vous pouvez définir une fréquence hebdomadaire pour chaque lundi à 14h et chaque jeudi à 10h.

Règle de conservation des instantanés

Une règle de conservation des instantanés définit la durée pendant laquelle vous souhaitez conserver vos instantanés.

Si vous choisissez de configurer une règle de conservation des instantanés, vous devez le faire dans le cadre de votre programmation d'instantanés. Si vous utilisez la CLI gcloud ou Google Cloud Console, vous devez toujours définir une règle de conservation lorsque vous créez une programmation d'instantanés. Si vous envoyez une requête directement à l'API, vous pouvez omettre ce champ, auquel cas vos instantanés seront conservés indéfiniment.

Si, lorsque vous envoyez une requête à l'API, vous choisissez de conserver définitivement tous vos instantanés générés automatiquement (option par défaut), n'oubliez pas que des frais de stockage vous seront facturés tant que vous ne les supprimez pas manuellement.

Il est donc recommandé de définir une règle de conservation afin de réduire les coûts de stockage des instantanés à long terme.

  • Vous devez spécifier une règle de conservation des instantanés en nombre de jours avec une conservation minimale d'un jour.
  • La règle de conservation des instantanés ne s'applique qu'aux instantanés automatiques, et non à ceux que vous avez créés manuellement.
  • Vous ne pouvez pas appliquer une règle de conservation de manière rétroactive. Si vous créez une programmation d'instantanés sans règle de conservation, puis que vous passez à une programmation d'instantanés avec une règle de conservation, cette dernière s'appliquera uniquement aux nouveaux instantanés.
  • Quelle que soit la règle de conservation choisie, vous pouvez toujours supprimer manuellement les instantanés générés automatiquement et manuellement.

Règle de suppression du disque source

Lorsque vous créez une programmation d'instantanés, vous pouvez également définir une règle de suppression du disque source. Cette règle contrôle ce qu'il advient de vos instantanés si le disque source est supprimé. Par défaut, si votre disque source est supprimé, les instantanés générés automatiquement à partir de votre programmation d'instantanés sont conservés de manière permanente, à moins que vous ne les supprimiez manuellement, quelle que soit la règle de conservation initiale que vous avez définie, sauf indication contraire de votre part.

Vous pouvez également choisir d'appliquer votre règle de conservation à vos instantanés si le disque source est supprimé. Par exemple, vous pouvez appliquer une règle de conservation qui permet de garder vos instantanés une semaine après la suppression du disque source.

Par exemple, supposons que vous ayez créé une programmation d'instantanés avec une règle de conservation de trois jours, mais que vous choisissiez de ne pas appliquer la règle lors de la suppression du disque source. Une fois la règle appliquée à votre disque persistant, Compute Engine génère automatiquement des instantanés, mais les supprime également automatiquement au bout de trois jours, conformément à la règle de conservation définie. Cependant, si votre disque source est supprimé, la règle de conservation ne s'applique plus et tous les instantanés existants créés par cette programmation sont conservés indéfiniment.

Programmer des instantanés pour les instances Windows

Si vous appliquez une programmation d'instantanés aux disques associés aux instances de VM Windows, utilisez l'option guest-flush pour activer le service VSS afin de générer des copies fictives de vos instantanés. Pour en savoir plus sur les instantanés pour Windows, consultez la section Créer un instantané de disque persistant Windows.

Règles d'emplacement des instantanés et libellés d'instantanés

Comme pour les instantanés générés manuellement, vous pouvez appliquer des libellés de ressources et sélectionner l'emplacement de stockage souhaité pour les instantanés générés automatiquement. Si vous les définissez dans votre programmation d'instantanés, ces propriétés sont appliquées aux instantanés générés automatiquement à partir de cette programmation. Par exemple, si vous définissez l'emplacement d'un instantané sur US dans une programmation, tous les instantanés générés à partir de celle-ci seront stockés aux États-Unis. Consultez les exemples ci-dessous pour en savoir plus sur la définition de ces options.

Nom des instantanés programmés

Les instantanés capturés dans le cadre de votre programmation d'instantanés possèdent des noms générés automatiquement. Les noms des instantanés sont générés selon le modèle suivant :

[disk-name-prefix]-[scope-name]-[timestamp]-[random-chars]
  • disk-name-prefix : nom du disque source. Ce champ peut comporter jusqu'à 20 caractères.
  • scope-name : nom de la zone ou de la région du disque source.
  • timestamp : horodatage UTC de la création au format YYYYMMDDHHMMSS.
  • random-chars : caractères alphanumériques générés de manière aléatoire pour éviter les conflits de noms avec d'autres instantanés.

Créer une programmation d'instantanés

Créez une programmation d'instantanés pour vos disques persistants à l'aide de Google Cloud Console, de Google Cloud CLI ou de l'API Compute Engine. Vous devez créer votre programmation d'instantanés dans la région où se trouve votre disque persistant. Par exemple, si votre disque persistant se trouve dans la zone us-west1-a, votre programmation doit se trouver dans la région us-west1. Pour en savoir plus, consultez la section Sélectionner l'emplacement de stockage d'un instantané.

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.
  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 Emplacement, la valeur par défaut est Multirégional, ce qui augmente la disponibilité pour 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.

  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 les disques persistants, 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]

où :

  • [SCHEDULE_NAME] est le nom de la nouvelle programmation d'instantanés.
  • "[SCHEDULE_DESCRIPTION]" est une description de la programmation d'instantanés. Utilisez des guillemets autour de votre description.
  • [MAX_RETENTION_DAYS] est le nombre de jours de conservation de l'instantané. Par exemple, si vous le définissez sur 3, cela signifie que les instantanés sont conservés pendant trois jours avant d'être supprimés. Vous devez définir une règle de conservation d'un jour au minimum.
  • [START_TIME] est l'heure de début, en temps UTC. L'heure ne doit pas inclure de minutes. Exemple :
    • 14h PST correspond à 22:00.
    • Si vous définissez une heure de début ayant la valeur 22:13, une erreur sera renvoyée.
  • [SNAPSHOT_INTERVAL] définit l'intervalle auquel vous souhaitez que la création d'instantanés ait lieu. Définissez la programmation à fréquence horaire à l'aide d'un entier compris entre 1 et 23. Choisissez un nombre divisible de manière égale par 24. Par exemple, si vous définissez --hourly-schedule sur 12, l'instantané est généré toutes les 12 heures. Pour une programmation à fréquence hebdomadaire, définissez les jours auxquels vous souhaitez que la création d'instantanés ait lieu. Vous devez rédiger en entier les jours de la semaine. Ils ne sont pas sensibles à la casse. Les options de fréquence d'instantanés hourly-schedule, daily-schedule et weekly-schedule s'excluent mutuellement. Vous devez en choisir une seule pour la programmation d'instantanés.

  • [FILE_NAME] est le nom du fichier contenant la programmation d'instantanés à fréquence hebdomadaire, si vous choisissez de fournir la programmation dans ce format. Notez que vous pouvez spécifier des programmations à fréquence hebdomadaire à différents jours et à différentes heures à 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 une programmation d'instantanés les lundis et mercredis : [{"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. La programmation utilise le temps UTC standard.

  • [DELETION_OPTION] détermine ce qu'il advient de vos instantanés si le disque source est supprimé. Gardez la valeur par défaut keep-auto-snapshots en ignorant cette option, ou utilisez la valeur apply-retention-policy pour appliquer une règle de conservation.

Voici des exemples supplémentaires pour configurer une programmation d'instantanés. 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 sur US, afin que tous les instantanés générés soient 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 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 et se déroule tous les jours à la même heure. L'option --daily-schedule doit être présente, mais vous ne devez lui définir aucun argument.

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

API

Dans l'API, envoyez une requête POST à resourcePolicies.insert pour créer une programmation d'instantanés. Au minimum, vous devez inclure le nom de la programmation d'instantanés, l'emplacement régional de stockage des instantanés et la fréquence d'instantanés.

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

Vous pouvez également inclure des options d'emplacement des instantanés et des libellés d'instantanés dans votre requête, pour vous assurer que vos instantanés sont stockés à l'emplacement voulu.

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": ["US"]
   }
 }
}

où :

  • [PROJECT_ID] est le nom du projet.
  • [REGION] est l'emplacement de la règle de ressource de la programmation d'instantanés.
  • [SCHEDULE_DESCRIPTION] est la description de la programmation d'instantanés.
  • [SCHEDULE_NAME] est le nom de la programmation d'instantanés.

De même, vous pouvez créer une programmation à fréquence hebdomadaire ou mensuelle. Consultez la documentation de référence de l'API pour en savoir plus sur la définition d'une programmation 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

Une fois que vous avez créé une programmation, associez-la à un disque existant. Utilisez la console, l'outil gcloud ou la méthode API Compute Engine.

Console

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

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

    Accéder à la page Disques

  2. Cliquez sur le nom du disque auquel vous souhaitez associer une programmation d'instantanés. La page des détails du disque s'ouvre.
  3. En haut de la page des détails du disque, cliquez sur Modifier.
  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]

où :

  • [DISK_NAME] est le nom du disque existant.
  • [SCHEDULE_NAME] est le nom de la programmation d'instantanés.
  • [ZONE] est l'emplacement de votre disque.

API

Dans l'API, 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]"
  ]
}

où :

  • [PROJECT_ID] est le nom du projet.
  • [ZONE] est l'emplacement du disque.
  • [REGION] est l'emplacement de la programmation d'instantanés.
  • [DISK_NAME] est le nom du disque.
  • [SCHEDULE_NAME] est le nom de la programmation d'instantanés dans la région que vous appliquez à ce disque.

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

Dans Google Cloud Console et gcloud uniquement, vous pouvez créer un disque et une programmation d'instantanés simultanément.

Console

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

    Accéder à la page Disques

  2. En haut de la page, 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 zonal ou régional et lui associer une programmation d'instantanés.

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

où :

  • [DISK_NAME] est le nom du nouveau disque.
  • [SCHEDULE_NAME] est le nom de la programmation d'instantanés.
  • [ZONE] est l'emplacement où vous créez le disque, lequel doit se trouver dans une zone de la région de la programmation d'instantanés.

Afficher les programmations d'instantanés

Pour obtenir la liste des programmations d'instantanés, utilisez la console, l'outil gcloud ou la méthode API Compute Engine. La requête présentée ici affiche le nom, la description et la région de toutes les programmations d'instantanés d'un projet.

Console

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

    Accéder à la page Instantanés

  2. Cliquez sur Programmations d'instantanés en haut de la page.
  3. Utilisez le champ de recherche Filtrer les programmations d'instantanés pour examiner une programmation d'instantanés spécifiée.
  4. Cliquez sur une programmation d'instantanés pour afficher ses détails.

gcloud

Pour afficher la liste des programmations d'instantanés, utilisez la commande gcloud resource-policies list.

gcloud compute resource-policies list

Pour consulter la description d'une programmation d'instantanés spécifique, utilisez la commande gcloud resource-policies describe.

gcloud compute resource-policies describe [SCHEDULE_NAME]

[SCHEDULE_NAME] est le nom de la programmation d'instantanés.

API

Envoyez une requête GET à resourcepolicies.aggregatedList pour afficher la liste des programmations d'instantanés figurant dans un projet.

GET https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/aggregated/resourcePolicies

[PROJECT_ID] est le nom du projet.

Afficher une programmation d'instantanés par région

Pour afficher une programmation d'instantanés définie dans une région particulière, utilisez la console, l'outil gcloud ou la méthode API Compute Engine.

Console

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

    Accéder à la page Instantanés

  2. Cliquez sur Programmations d'instantanés en haut de la page.
  3. Utilisez le champ de recherche Filtrer les programmations d'instantanés pour examiner une programmation d'instantanés spécifiée par région.

gcloud

Pour afficher les programmations d'instantanés d'une région spécifique, utilisez la commande gcloud resource-policies list.

gcloud compute resource-policies list [PROJECT_ID] \
    --filter [REGION]

où :

  • [PROJECT_ID] est le nom du projet.
  • [REGION] est l'emplacement de la règle de ressource.

API

Envoyez une requête à resourcePolicies.get pour récupérer la programmation d'instantanés établie dans une région.

GET https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/regions/[REGION]/resourcePolicies/[SCHEDULE_NAME]

où :

  • [PROJECT_ID] est le nom du projet.
  • [REGION] est l'emplacement de la programmation d'instantanés.
  • [SCHEDULE_NAME] est le nom de la programmation d'instantanés que vous souhaitez afficher.

Modifier une programmation d'instantanés

Une fois que vous avez créé une programmation d'instantanés, vous pouvez modifier la description, la fréquence de programmation et les libellés en version preview. Les mises à jour de la programmation d'instantanés prennent effet à la prochaine exécution programmée de la programmation d'instantanés. Tous les instantanés en cours d'exécution se termineront avant l'entrée en vigueur des nouvelles mises à jour.

Pour mettre à jour d'autres valeurs d'une programmation d'instantanés, vous devez supprimer la programmation d'instantanés et en créer une autre.

Mettre à jour une programmation d'instantanés

Vous pouvez utiliser Google Cloud CLI ou l'API Compute Engine pour modifier les propriétés suivantes de votre programmation d'instantanés :

  • Description
  • Programmation des instantanés
  • Libellé ajouté aux instantanés

Si vous souhaitez modifier d'autres propriétés de votre programmation d'instantanés, utilisez la méthode décrite dans la section Modifier une programmation d'instantanés par remplacement.

gcloud

Utilisez la commande gcloud beta compute resource-policies update snapshot-schedule pour mettre à jour la description, la programmation ou les libellés d'une programmation d'instantanés.

gcloud beta compute resource-policies update snapshot-schedule SCHEDULE_NAME \
   --region=REGION \
   --description="DESCRIPTION" \
   --start-time=START_TIME \
   SCHEDULE_FLAG \
   --snapshot-labels="KEY=VALUE"

Remplacez les éléments suivants :

  • SCHEDULE_NAME : nom de la programmation d'instantanés.
  • REGION : région où se trouve votre programmation d'instantanés.
  • DESCRIPTION : description de la programmation d'instantanés. Utilisez des guillemets autour de votre description.
  • START_TIME : heure de début (UTC). L'heure ne doit pas inclure de minutes. Exemple :
    • 14h PST correspond à 22:00.
    • Si vous définissez une heure de début ayant la valeur 22:13, une erreur sera renvoyée.
  • SCHEDULE_FLAG : l'une des options suivantes :

    • --hourly-schedule=HOURLY_INTERVAL : nombre d'heures entre chaque instantané. Le paramètre HOURLY_INTERVAL doit être un nombre entier compris entre 1 et 23 Par exemple, si vous définissez --hourly-schedule sur 12, l'instantané est généré toutes les 12 heures.
    • --daily-schedule : effectue un instantané quotidiennement, à l'heure définie sur START_TIME.
    • --weekly-schedule=WEEKLY_INTERVAL : définit les jours auxquels vous souhaitez que la création d'instantanés ait lieu. Vous devez rédiger en entier les jours de la semaine. Ils ne sont pas sensibles à la casse.

    • --weekly-schedule-from-file=FILE_NAME : spécifie un fichier contenant la programmation d'instantanés à fréquence hebdomadaire. Vous pouvez spécifier des programmations à fréquence hebdomadaire à différents jours et à différentes heures à l'aide d'un fichier. Par exemple, votre fichier peut spécifier une programmation d'instantanés les lundis et mercredis : [{"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. La programmation utilise le temps UTC standard. L'heure ne doit pas inclure de minutes. Exemple :

      • 14h PST correspond à 22:00.
      • Si vous définissez une heure de début ayant la valeur 22:13, une erreur sera renvoyée.

    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 votre programmation d'instantanés.

  • KEY et VALUE : paire clé-valeur pouvant être utilisée pour regrouper des ressources liées ou associées.

Exemples :

Pour remplacer une programmation d'instantanés par une programmation à fréquence quotidienne, procédez comme suit :

gcloud beta compute resource-policies update snapshot-schedule SCHEDULE_NAME \
 --region=REGION --daily-schedule --start-time=START_TIME

Pour remplacer un instantané par une programmation à fréquence horaire, et mettre à jour la description et le libellé de l'instantané, procédez comme suit :

gcloud beta compute resource-policies update snapshot-schedule SCHEDULE_NAME \
 --region=REGION --description="DESCRIPTION" \
 --hourly-schedule=HOURLY_INTERVAL --start-time=START_TIME \
 --snapshot-labels="KEY=VALUE"

API

Mettez à jour la description, la programmation ou les libellés d'une programmation d'instantanés à l'aide de la méthode resourcePolicies.

  • Modifiez la description et le libellé :

    PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/resourcePolicies/SCHEDULE_NAME
    {
        "name": "SCHEDULE_NAME",
        "description": "DESCRIPTION",
        "snapshotProperties": {
              "labels": {"KEY": "VALUE"}
        }
    }
    
  • Définissez la programmation d'instantanés sur une fréquence horaire :

    PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/resourcePolicies/SCHEDULE_NAME
    {
        "name": "SCHEDULE_NAME",
        "snapshotSchedulePolicy": {
            "schedule": {
              "hourlySchedule": {
                  "hoursInCycle": HOURLY_INTERVAL,
                  "startTime": START_TIME
               }
            }
        }
    }
    
  • Définissez la programmation d'instantanés sur une fréquence quotidienne :

    PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/resourcePolicies/SCHEDULE_NAME
    {
        "name": "SCHEDULE_NAME",
        "snapshotSchedulePolicy": {
            "schedule": {
              "dailySchedule": {
                  "daysInCycle": DAILY_INTERVAL,
                  "startTime": START_TIME
               }
            }
        }
    }
    
  • Définissez la programmation d'instantanés sur une fréquence hebdomadaire :

    PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/resourcePolicies/SCHEDULE_NAME
    {
        "name": "SCHEDULE_NAME",
        "snapshotSchedulePolicy": {
            "schedule": {
               "weeklySchedule": {
                  "dayOfWeeks": [
                   {
                      "day": WEEKLY_INTERVAL,
                      "startTime": START_TIME
                   }
                  ]
               }
            }
        }
    }
    

Remplacez les éléments suivants :

  • PROJECT_ID : nom du projet
  • REGION : région où se trouve la programmation d'instantanés.
  • SCHEDULE_NAME : nom de la programmation d'instantanés.
  • DESCRIPTION : description de la programmation d'instantanés. Utilisez des guillemets autour de votre description.
  • KEY et VALUE : paire clé-valeur pouvant être utilisées pour regrouper des ressources liées ou associées.
  • HOURLY_INTERVAL : définit l'intervalle auquel vous souhaitez que la création d'instantanés ait lieu. Définissez la programmation à fréquence horaire à l'aide d'un entier compris entre 1 et 23. Pour que les instantanés soient créés à la même heure chaque jour, choisissez un nombre divisible de manière égale par 24 (1, 2, 3, 4, 6, 8 ou 12). Par exemple, si vous définissez --hourly-schedule sur 12, l'instantané est généré toutes les 12 heures.
  • DAILY_INTERVAL : définit le nombre de jours entre chaque instantané.
  • WEEKLY_INTERVAL : définit une programmation qui s'exécute certains jours de la semaine. Spécifiez un ou plusieurs jours. Les options suivantes sont disponibles : MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY et SUNDAY. Vous devez rédiger en entier les jours de la semaine. Ils ne sont pas sensibles à la casse. Vous pouvez définir jusqu'à 7 intervalles pour dayOfWeeks, un pour chaque jour de la semaine.
  • START_TIME est l'heure de début, en temps UTC. L'heure ne doit pas inclure de minutes. Exemple :
    • 14h PST correspond à 22:00.
    • Si vous définissez une heure de début ayant la valeur 22:13, une erreur sera renvoyée.

Modifier une programmation d'instantanés par remplacement

Après avoir créé une programmation d'instantanés, vous pouvez modifier la description, la fréquence de programmation et les libellés, comme décrit dans la section Mettre à jour une programmation d'instantanés (preview). Pour mettre à jour d'autres valeurs d'une programmation d'instantanés, vous devez supprimer la programmation d'instantanés et en créer une autre.

Si vous remplacez une programmation d'instantanés déjà associée à un disque, vous devez d'abord dissocier la programmation du disque, puis la supprimer. Vous pouvez alors créer une autre programmation et l'associer au disque. Les instantanés générés à partir de la programmation d'instantanés dissociée ne sont pas gérés par la nouvelle règle. Ces instantanés sont conservés indéfiniment jusqu'à ce que vous les supprimiez.

Utilisez la console Google Cloud, Google Cloud CLI ou l'API Compute Engine pour supprimer et remplacer votre programmation d'instantanés.

Console

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

    Accéder à la page Disques

  2. Sélectionnez le disque contenant la programmation que vous souhaitez dissocier.
  3. Cliquez sur Modifier en haut de la page.
  4. Ouvrez le menu déroulant Programmation des instantanés.
  5. Cliquez sur Pas de programmation pour dissocier la programmation du disque.
  6. Vous pouvez alors créer une autre programmation, ou l'échanger lorsque vous modifiez les options du disque.
  7. Cliquez sur Enregistrer pour terminer la tâche.

gcloud

Utilisez la commande disks remove-resource-policies pour dissocier la programmation d'instantanés du disque contenant la programmation que vous souhaitez modifier.

gcloud compute disks remove-resource-policies DISK_NAME \
    --resource-policies SCHEDULE_NAME \
    --region REGION \
    --zone ZONE

où :

  • DISK_NAME est le nom du disque auquel la programmation d'instantanés est associée.
  • SCHEDULE_NAME est le nom de la programmation d'instantanés que vous souhaitez dissocier de ce disque.
  • REGION est l'emplacement de votre programmation d'instantanés.
  • ZONE est la zone où réside votre disque zonal.

Exécutez ensuite la commande disks add-resource-policies pour ajouter la programmation d'instantanés mise à jour sur le disque.

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

où :

  • DISK_NAME est le nom du disque avec la règle de ressource de la programmation d'instantanés.
  • SCHEDULE_NAME est le nom de la programmation d'instantanés que vous souhaitez ajouter à ce disque.
  • ZONE est la zone où se trouve votre disque.

API

Pour dissocier une programmation d'un disque, envoyez une requête POST à disks.removeResourcePolicies.

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

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

où :

  • PROJECT_ID est le nom du projet.
  • ZONE est la zone où se trouve le disque.
  • DISK_NAME est le nom du disque auquel la programmation d'instantanés est associée.
  • REGION est l'emplacement de la programmation d'instantanés.
  • SCHEDULE_NAME est le nom de la programmation d'instantanés que vous supprimez de ce disque.

Dans l'API, 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"
  ]
}

où :

  • PROJECT_ID est le nom du projet.
  • ZONE est l'emplacement du disque.
  • DISK_NAME est le nom du disque.
  • REGION est l'emplacement de la programmation d'instantanés.
  • SCHEDULE_NAME est le nom de la programmation d'instantanés dans la région que vous appliquez à ce disque.

Supprimer une programmation d'instantanés

Si vous supprimez une programmation d'instantanés, tous les instantanés générés automatiquement associés à cette programmation sont conservés de manière permanente. Cependant, une fois la programmation supprimée, elle ne peut plus générer d'instantanés.

La règle de conservation fait partie de votre programmation d'instantanés. Une fois la programmation supprimée, la règle de conservation ne s'applique plus. Les instantanés déjà générés sont conservés jusqu'à ce que vous les supprimiez manuellement.

Pour supprimer une programmation d'instantanés existante, utilisez Google Cloud Console, Google Cloud CLI ou la méthode API Compute Engine. Si la programmation est déjà associée à un disque, dissociez-la d'abord du disque, puis supprimez-la. Vous ne pouvez pas supprimer une programmation d'instantanés associée à un disque.

Console

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

    Accéder à la page Instantanés

  2. Sélectionnez Programmations d'instantanés pour afficher la liste de vos programmations.
  3. Sélectionnez une programmation non associée à un disque.
  4. Cliquez sur Supprimer en haut de la page.

gcloud

Pour supprimer une programmation d'instantanés spécifique, utilisez la commande gcloud resource-policies delete.

gcloud compute resource-policies delete [SCHEDULE_NAME] \
    --region [REGION]

où :

  • [SCHEDULE_NAME] est le nom de la programmation d'instantanés.
  • [REGION] est l'emplacement de la programmation d'instantanés.

API

Envoyez une requête à resourcepolicies.delete pour supprimer une programmation d'instantanés. Si la programmation d'instantanés est déjà associée à un disque spécifique, une erreur sera renvoyée.

DELETE https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/regions/[REGION]/resourcePolicies/[SCHEDULE_NAME]

où :

  • [PROJECT_ID] est le nom du projet.
  • [REGION] est l'emplacement de la programmation d'instantanés.
  • [SCHEDULE_NAME] est le nom de la programmation d'instantanés.

Journalisation et surveillance

Chaque programmation d'instantanés associée à un disque crée de manière continue des événements système, qui sont surveillés et journalisés à tout moment. Les journaux d'audit d'événements système sont toujours activés.

Ces journaux fournissent des informations sur le comportement des instantanés programmés pour chaque disque associé. Vous pouvez afficher vos journaux à partir du menu Cloud Logging de la console.

  1. Dans Google Cloud Console, accédez à la page Explorateur de journaux.

    Accéder à la page "Explorateur de journaux"

  2. Dans la liste déroulante Audited resource (Ressource auditée), placez le curseur sur Disk (Disque) et sélectionnez All disk_id (Tous les ID de disque).

  3. Dans la liste déroulante All logs (Tous les journaux), sélectionnez cloudaudit.googleapis.com/system_event et cliquez sur OK.

  4. Dans la liste déroulante Any log level (Tous les niveaux de journalisation), sélectionnez le type de journal.

Configurer des alertes pour les instantanés programmés

Vous pouvez créer des métriques personnalisées pour déclencher des alertes ou fournir des informations permettant de résoudre des problèmes liés à une programmation d'instantanés.

Par exemple, pour configurer une alerte en cas d'échec d'une programmation d'instantanés, procédez comme suit :

  1. Créez un filtre de journal afin de capturer les événements liés aux programmations d'instantanés.
  2. Créez une métrique basée sur le filtre de journal, qui compte les échecs de programmations d'instantanés.
  3. Créez une règle d'alerte pour envoyer une alerte en cas d'échec d'une programmation d'instantanés.

Créer un filtre de journal

  1. Dans Google Cloud Console, accédez à la page Cloud Logging > Explorateur de journaux.

    Accéder à la page "Explorateur de journaux"

  2. Dans la liste Filtrer par étiquette ou texte recherché, sélectionnez Convertir en filtre avancé.

    Convertir en filtre avancé.

  3. Remplacez le contenu de la zone de texte de filtre par le texte suivant, en remplaçant project-id par votre ID de projet :

    resource.type="gce_disk"
    logName="projects/project-id/logs/cloudaudit.googleapis.com%2Fsystem_event"
    protoPayload.methodName="ScheduledSnapshots"
    severity>"INFO"
    
  4. Cliquez sur Envoyer le filtre.

Créer une métrique

  1. Dans l'explorateur de journaux, en haut de la page, cliquez sur Créer une métrique.

  2. Dans l'Éditeur de métriques, saisissez les éléments suivants :

    • Nom : scheduled_snapshot_failure_count.
    • Description : count of scheduled snapshot failures.
    • Type : Counter
  3. Sous Libellés, cliquez sur Ajouter un élément, puis saisissez les informations suivantes :

    • Nom : status
    • Description : status of scheduled snapshot request
    • Type de libellé : String
    • Nom du champ : protoPayload.response.status
  4. Cliquez sur OK.

  5. Cliquez sur Créer une métrique.

Créer une règle d'alerte

  1. Dans Google Cloud Console, accédez à la page Cloud Logging > Métriques basées sur les journaux.

    Accéder à la page Métriques basées sur les journaux

  2. Sous Métriques définies par l'utilisateur, localisez votre nouvelle métrique nommée user/scheduled_snapshot_failure_count.

  3. Cliquez sur le bouton de menu  Plus figurant sur cette ligne, puis sélectionnez Créer une alerte à partir de la métrique. La page de création d'une condition applicable à une règle d'alerte s'affiche.

    Métrique définie par l'utilisateur.

  4. Dans le panneau Cible, sous Agrégateur, sélectionnez aucun.

  5. Sous Filtre :

    1. Cliquez sur Ajouter un filtre.
    2. Dans la liste, sélectionnez état.
    3. Dans le champ Valeur, saisissez DONE.
    4. Cliquez sur Appliquer.

      Filtre d'alerte sur l'état.

  6. Cliquez sur Afficher les options avancées.

  7. Dans le volet Agrégation avancée, cliquez sur la liste Aligneur et sélectionnez somme.

  8. Dans le panneau Configuration, sélectionnez les valeurs suivantes :

    • Déclenchement de la condition : Any time series violates
    • Condition : is above
    • Seuil : 1
    • Pour : most recent value

      Panneau de configuration.

  9. Cliquez sur Enregistrer.

  10. Sur la page Créer une règle d'alerte, saisissez un nom de règle. Vous pouvez au besoin ajouter des canaux de notification et de la documentation concernant cette règle.

  11. Cliquez sur Enregistrer.

Étape suivante