Bonnes pratiques pour les instantanés de disque Compute Engine


Vous pouvez créer des instantanés de disque Persistent Disk et Google Cloud Hyperdisk à tout moment, mais l'opération sera plus rapide et plus fiable si vous appliquez les bonnes pratiques suivantes.

Points à noter concernant la sécurité

Pour éviter toute élévation de privilèges inattendue, veillez à n'accorder que les autorisations IAM liées aux instantanés aux comptes principaux auxquels vous faites confiance pour lire et restaurer les données d'instantanés ou instantanés immédiats (Preview). Les autorisations suivantes permettent aux utilisateurs de lire et de restaurer des données à partir d'instantanés ou d'instantanés immédiats (Preview):

  • compute.snapshots.useReadOnly
  • compute.instantSnapshots.useReadOnly

Tout compte principal disposant de l'une des autorisations précédentes peut restaurer les données des instantanés ou instantanés immédiats de votre projet dans un projet qu'il contrôle, y compris un projet situé dans une autre organisation. Par exemple, si un acteur malintentionné obtient un rôle IAM lié aux instantanés dans votre projet, il peut restaurer l'instantané dans son projet personnel et accéder aux données qui y sont contenues.

Pour savoir comment vérifier les autorisations d'un compte principal, consultez la section Déterminer quels comptes principaux disposent de certains rôles ou autorisations.

Préparer des instantanés cohérents

Si vous créez un instantané de votre disque Persistent Disk ou Hyperdisk alors que votre application est en cours d'exécution, il est possible que l'instantané ne capture pas les écritures en attente qui sont en transit de la mémoire vers le disque. En raison de ces incohérences, il est possible que l'instantané ne reflète pas l'état exact de votre application au moment de sa capture. Dans ce scénario, l'instantané est considéré comme cohérent avec les plantages, car il enregistre l'état de l'application comme si la machine avait planté au moment de l'instantané.

Vous pouvez également choisir de suspendre l'application avant la capture de l'instantané, afin que toutes les transactions d'application soient terminées et que le système puisse vider toutes les écritures en attente de la mémoire vers le disque. Dans ce scénario, l'instantané est considéré comme cohérent avec l'application.

Créer des instantanés cohérents avec les plantages

Lorsque vous capturez un instantané d'un disque Persistent Disk ou Hyperdisk, aucune action supplémentaire n'est requise de votre part pour rendre votre instantané cohérent avec les plantages. En particulier, vous n'avez pas besoin de suspendre votre charge de travail.

Si votre charge de travail ne peut pas tolérer une mise en pause temporaire, procédez comme suit pour créer des instantanés cohérents avec les plantages :

  1. Capturez un instantané tandis que les applications sont en cours d'exécution, en partant du principe qu'il y aura certaines incohérences au niveau des données de l'application.
  2. Vérifiez que vous pouvez restaurer votre charge de travail dans un état d'application acceptable à partir de l'instantané.
  3. Selon le résultat de l'étape précédente, conservez ou supprimez l'instantané.

Les instantanés cohérents avec les plantages nécessiteront probablement une relecture des journaux du système de fichiers et des journaux au niveau de l'application avant toute utilisation. Ainsi, la qualité de votre instantané dépend de la capacité de l'application à se remettre rapidement en état de diffuser à partir d'un état cohérent avec les plantages.

Créer des instantanés cohérents avec les applications

  • Utilisateurs Windows Server : pour les disques associés à des instances Windows Server, utilisez des instantanés VSS.
  • Utilisateurs Linux : pour obtenir une cohérence d'application pour les instantanés de disques associés à des instances Linux, créez des scripts shell pré- et post-instantané pour préparer votre système à la cohérence des applications. Créez ensuite un instantané avec l'option guest-flush activée. Cette opération exécute les scripts pré- et post- avant et après la capture de l'instantané. Pour obtenir des instructions, consultez la page Créer des instantanés d'application cohérents Linux.

Créer manuellement des instantanés cohérents avec les applications

Dans certains scénarios, vous pouvez être amené à mettre en pause manuellement vos applications pour obtenir des instantanés cohérents avec les applications.

Par exemple, utilisez cette option si vos applications doivent rester cohérentes entre plusieurs volumes de disques persistants ou Hyperdisk. Dans ce cas, vous devez geler tous les systèmes de fichiers sur chaque disque et effectuer tous les instantanés pour ces disques avant de pouvoir réactiver vos applications.

Vous n'avez pas besoin d'arrêter vos VM. La mise en pause de l'application peut, par exemple, geler et désinstaller votre système de fichiers. Une fois que vous avez manuellement mis en pause vos applications, attendez que la ressource d'instantané passe à l'état UPLOADING pour réactiver vos charges de travail.

Lorsque vous demandez un instantané, vous pouvez vérifier l'état de l'opération en appelant la méthode globalOperations.get. Le tableau suivant montre la relation entre l'état de l'opération de capture d'instantané et l'état de la ressource d'instantané.

État de l'opération État de la ressource d'instantané
PENDING Il n'existe pas encore de ressource d'instantané.
RUNNING CREATING ou UPLOADING

CREATING : la création de l'instantané n'est pas encore terminée.
UPLOADING : l'instantané a bien été créé, mais il n'est pas encore enregistré dans Cloud Storage.
DONE FAILED ou READY.

Limites de fréquence des instantanés

La fréquence de prise d'un instantané d'un disque est limitée.

Créer des instantanés à partir d'un disque Persistent Disk ou Hyperdisk

Vous pouvez créer un instantané de vos disques au maximum toutes les 10 minutes. Ainsi, si vous souhaitez émettre une salve de requêtes pour créer des instantanés de vos disques, vous ne pourrez pas émettre plus de six requêtes en 60 minutes.

Si la limite est dépassée, l'opération échoue et renvoie l'erreur suivante :

"code": "RESOURCE_OPERATION_RATE_EXCEEDED",
"message": "Operation rate exceeded for resource 'projects/project-id/zones/zone-id/disks/disk-name'.
Too frequent operations from the source resource."

Cette limite s'applique aux opérations suivantes :

Cette limite ne s'applique pas aux opérations suivantes :

Il est recommandé de créer un instantané du disque une fois par heure. Évitez de créer des instantanés plus souvent. Pour ce faire, la méthode la plus simple consiste à configurer une programmation d'instantanés.

Créer des disques zonaux à partir d'instantanés

Vous pouvez créer un disque Persistent Disk ou Hyperdisk zonal à partir d'un instantané par zone cible donné, au maximum une fois toutes les dix minutes. La zone cible fait référence à l'emplacement de stockage du disque créé à partir de l'instantané. Vous pourrez peut-être créer des disques à partir d'un instantané à une cadence plus élevée, si vous n'en avez pas créé à partir de l'instantané au cours de la dernière heure. Google Cloud n'apporte cependant aucune garantie sur ce point.

Notez que plusieurs instantanés des mêmes disques sont considérés comme des instantanés distincts, dans le contexte de cette limite de fréquence.

Si cette limite est dépassée, l'opération échoue et renvoie l'erreur suivante :

"code": "RESOURCE_OPERATION_RATE_EXCEEDED",
"message": "Operation rate exceeded for resource 'projects/project-id/global/snapshots/snapshot-name'. Too frequent operations from the source resource."

Cette limite s'applique aux opérations suivantes :

Cette limite ne s'applique pas aux opérations suivantes :

  • Créer des disques persistants régionaux à partir d'un instantané.
  • Créer des disques persistants zonaux ou régionaux en utilisant une image comme source

Pour créer plusieurs disques à partir d'un instantané, utilisez l'instantané pour créer une image, puis créez vos disques à partir de l'image:

  1. Créez une image à partir de l'instantané.
  2. Créez des disques à partir de l'image.

Pour les disques non amorçables, suivez les instructions pour créer des disques persistants à partir de l'image, puis procédez comme suit :

  • Dans la console Google Cloud, sélectionnez Image comme Type de source du disque.
  • Avec gcloud CLI, utilisez l'option image.
  • Si vous utilisez REST, utilisez le paramètre sourceImage.

Utiliser des instantanés existants comme référence pour les instantanés suivants

Le système utilise automatiquement les instantanés existant déjà sur un disque (Persistant Disk ou Hyperdisk) comme référence pour tous les instantanés ultérieurs que vous créez à partir de ce même disque.

  • Créez un instantané à partir d'un disque avant de supprimer l'instantané précédent de ce même disque. Le système crée le nouvel instantané plus rapidement s'il peut utiliser l'instantané précédent et se limiter à lire les données nouvelles ou modifiées du disque.
  • Attendez la fin de l'exécution des nouveaux instantanés avant de créer les instantanés suivants à partir du même disque. Si vous exécutez deux instantanés simultanément sur le même disque, ils démarrent tous deux à partir de la même référence, et l'effort est redondant. Si vous attendez la fin du nouvel instantané, tous les instantanés suivants s'exécutent plus rapidement, car ils ne doivent obtenir que les données modifiées depuis la fin du dernier instantané.

Programmer des instantanés pendant les heures creuses

Si vous planifiez des instantanés réguliers pour vos disques (Persistent Disk ou Hyperdisk), vous pouvez réduire le temps nécessaire pour finaliser chaque instantané en les créant pendant les heures creuses, si possible.

  • Planifiez des instantanés automatisés pendant les jours ouvrables dans la zone où se trouve votre disque. La création d'instantanés atteint généralement un pic en fin de journée.
  • Programmez des instantanés automatisés tôt le matin plutôt qu'à minuit dans la zone où se trouve votre disque. La création d'instantanés atteint généralement un pic à minuit.

Organiser vos données sur des disques distincts

Si vous créez un instantané à partir d'un disque (Persistent Disk ou Hyperdisk), toutes les données stockées sur le disque seront incluses dans l'instantané. De plus grandes quantités de données créent de plus grands instantanés, qui coûtent plus cher et sont plus longs à créer. Pour créer un instantané contenant exclusivement les données dont vous avez besoin, organisez vos données sur des disques distincts.

  • Stockez les données critiques sur un disque secondaire ou un disque de données plutôt que sur votre disque de démarrage. Cela vous permet de créer un instantané de vos disques de démarrage seulement en cas de nécessité ou selon une programmation moins fréquente.
  • Si vous créez des instantanés de vos disques de démarrage, stockez les partitions d'échange, les fichiers de page, les fichiers de cache et les journaux non critiques sur un disque distinct. Ces fichiers et partitions changent fréquemment, et le processus de création d'instantanés est susceptible de les identifier en tant que données modifiées à inclure dans un instantané incrémentiel.
  • Réduisez le nombre d'instantanés à créer en conservant les données similaires sur un même disque. Veillez à garder votre système d'exploitation et vos données volatiles séparés des données que vous souhaitez capturer dans vos instantanés. En revanche, il n'est pas nécessaire de répartir vos données critiques sur plusieurs disques, comme vous le feriez dans le cas d'une machine physique. Un disque volumineux peut atteindre les mêmes performances que plusieurs petits disques totalisant la même capacité.

Activer l'option discard ou exécuter fstrim sur votre disque

Sur les instances Linux, si vous n'avez pas formaté et installé vos disques (Persistent Disk ou Hyperdisk) avec l'option "discard", exécutez la commande fstrim sur l'instance avant de créer un instantané. La commande supprime les blocs dont le système de fichiers n'a plus besoin pour que le système puisse créer l'instantané plus rapidement et en réduire la taille. Pour savoir comment configurer l'option "discard" sur vos disques, consultez la page Formater et installer un disque non amorçable sur une VM Linux.

Créer une image d'un instantané fréquemment utilisé

Si vous utilisez régulièrement un instantané dans la même zone pour créer un disque (Persistent Disk ou Hyperdisk), économisez les coûts de réseau en utilisant l'instantané une fois et en créant une image de cet instantané. Stockez cette image et utilisez-la pour créer votre disque et démarrer une instance de VM. Pour obtenir des instructions, consultez la section Créer une image personnalisée.

Il est recommandé de créer un instantané du disque une fois par heure. Évitez de créer des instantanés plus souvent. Pour ce faire, la méthode la plus simple consiste à configurer une programmation d'instantanés.

Bonnes pratiques complémentaires

  • Utilisez des systèmes de fichiers journalisés comme ext4 pour réduire le risque de mise en cache des données sans qu'elles soient réellement écrites sur le disque persistant.
  • Créez un instantané de vos données en utilisant une programmation régulière afin de minimiser la perte de données due à une défaillance inattendue.

Étapes suivantes