Les disques Persistent Disk régionaux et Hyperdisk Balanced à haute disponibilité sont des options de stockage qui permettent la réplication synchrone des données entre deux zones d'une même région. Vous pouvez utiliser un disque Persistent Disk régional ou Hyperdisk Balanced à haute disponibilité comme élément de base lorsque vous mettez en œuvre des services à haute disponibilité dans Compute Engine.
Ce document décrit les différents scénarios pouvant perturber le fonctionnement de vos disques répliqués de manière synchrone et explique comment les gérer.
Avant de commencer
- Passez en revue les principes de base concernant les disques répliqués de manière synchrone et le basculement. Pour en savoir plus, consultez la page À propos de la réplication synchrone des disques.
-
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 :
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- 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.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
-
Rôles requis
Pour obtenir les autorisations nécessaires pour migrer des données de disque répliquées de manière synchrone à l'aide d'un point de contrôle de récupération d'instance répliquée, demandez à votre administrateur de vous accorder les rôles IAM suivants :
-
Pour migrer des données de disque répliquées de manière synchrone à l'aide d'un point de contrôle de récupération d'instance répliquée :
Administrateur d'instances Compute (v1) (
roles/compute.instanceAdmin.v1
) sur le projet -
Pour afficher les métriques de disque répliqué (l'une des rôles suivants) :
-
Lecteur Monitoring (
roles/monitoring.viewer
) sur le projet -
Éditeur Monitoring (
roles/monitoring.editor
) sur le projet
-
Lecteur Monitoring (
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 migrer des données de disques répliqués de manière synchrone à l'aide d'un point de contrôle de récupération d'instance répliquée. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :
Autorisations requises
Les autorisations suivantes sont requises pour migrer des données de disque répliquées de manière synchrone à l'aide d'un point de contrôle de récupération d'instance répliquée :
-
Pour créer un instantané standard à partir du point de contrôle de récupération de l'instance répliquée, procédez comme suit :
compute.snapshots.create
compute.disks.createSnapshot
-
Pour créer un disque répliqué de manière synchrone à partir de l'instantané standard :
compute.disks.create
-
Pour migrer des VM vers le nouveau disque, procédez comme suit :
-
compute.instances.attachDisk
-
compute.disks.use permission
-
Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.
Scénarios d'échec
Avec les disques répliqués de manière synchrone, lorsque l'appareil est entièrement répliqué, les données sont automatiquement répliquées sur deux zones d'une région. Une opération d'écriture est exécutée sur une instance de calcul si les données sont conservées de façon durable dans les deux instances répliquées.
Si la réplication sur une zone échoue ou est très lente pendant un certain temps, l'état de réplication du disque devient dégradé. Dans ce mode, une opération d'écriture est confirmée une fois que les données ont été conservées de façon durable dans une instance répliquée.
Si Compute Engine détecte que la réplication peut être réactivée, les données écrites sur une instance répliquée après que l'autre instance répliquée est passé à l'état dégradé sont synchronisées dans les deux zones, et le disque revient à un état entièrement répliqué. Cette transition est entièrement automatisée.
Les valeurs RPO et RTO ne sont pas définies lorsqu'un appareil est dans un état dégradé. Pour minimiser les pertes de données et de disponibilité en cas de défaillance d'un disque en état dégradé, nous vous recommandons de sauvegarder régulièrement vos disques répliqués de manière synchrone en utilisant des instantanés standard. Vous pouvez récupérer un disque en restaurant l'instantané.
Défaillances zonales
Un disque répliqué, ou disque régional, est répliqué de manière synchrone sur les instances répliquées des zones principale et secondaire. Les défaillances zonales se produisent lorsqu'une instance répliquée zonale devient indisponible. Les défaillances zonales peuvent se produire dans la zone principale ou secondaire pour l'une des raisons suivantes :
- Il y a une indisponibilité de zone.
- L'instance répliquée présente un ralentissement excessif des opérations d'écriture.
Le tableau suivant fournit les différents scénarios de défaillance zonale que vous pouvez rencontrer pour les disques répliqués de manière synchrone, ainsi que l'action recommandée pour chaque scénario. Dans chacun de ces scénarios, nous partons du principe que votre instance répliquée zonale principale est opérationnelle et synchronisée pendant l'état initial.
État initial du disque | Échec dans | Nouvel état du disque | Conséquences de l'échec | Mesure à prendre |
---|---|---|---|---|
Instance répliquée principale : synchronisée Instance répliquée secondaire : synchronisée État du disque : entièrement répliqué Disque associé dans : zone principale |
Zone principale |
Instance répliquée principale : non synchronisée ou indisponible Instance répliquée secondaire : synchronisée État du disque : dégradé Disque associé dans : zone principale |
|
Basculez le disque en forçant l'association à une VM dans la zone secondaire opérationnelle. |
Instance répliquée principale : synchronisée Instance répliquée secondaire : synchronisée État du disque : entièrement répliqué Disque associé dans : zone principale |
Zone secondaire |
Instance répliquée principale : synchronisée Instance répliquée secondaire : désynchronisée ou indisponible État du disque : dégradé Disque associé dans : zone principale |
|
Aucune action de votre part n'est requise. Compute Engine synchronise l'instance répliquée défaillante dans la zone secondaire lorsqu'elle est à nouveau disponible. |
Instance répliquée principale : synchronisée Instance répliquée secondaire : non synchronisée et indisponible État du disque : dégradé Disque associé dans : zone principale |
Zone principale |
Instance répliquée principale : synchronisée, mais indisponible Instance répliquée secondaire : non synchronisée État du disque : non disponible Disque associé dans : zone principale |
|
Nous vous recommandons d'utiliser un instantané standard existant et de créer un disque pour récupérer vos données. Il est recommandé de sauvegarder régulièrement les disques répliqués à l'aide d'instantanés standards. |
Instance répliquée principale : synchronisée Instance répliquée secondaire : en récupération mais disponible État du disque : en récupération Disque associé dans : zone principale |
Zone principale |
Instance répliquée principale : non disponible Instance répliquée secondaire : en récupération mais disponible État du disque : non disponible Disque associé dans : zone principale |
|
|
Instance répliquée principale : synchronisée Instance répliquée secondaire : non synchronisée, mais disponible État du disque : dégradé Disque associé dans : zone principale |
Zone principale |
Instance répliquée principale : non disponible Instance répliquée secondaire : non synchronisée, mais disponible État du disque : non disponible Disque associé dans : zone principale |
|
|
Défaillances des applications et des VM
En cas de pannes causées par une mauvaise configuration de la VM, un échec de mise à niveau du système d'exploitation ou d'autres défaillances d'applications, vous pouvez forcer l'association (force-attach
) de votre disque répliqué sur une instance de calcul située dans la même zone que l'instance répliquée opérationnelle.
Catégorie de défaillance (probabilité) | Types de défaillances | Action |
---|---|---|
Défaillance de l'application (élevée) |
|
Le plan de contrôle des applications peut déclencher le basculement en fonction des seuils de vérification de l'état. |
Défaillance de la VM (moyenne) |
|
Les VM sont généralement autoréparées. Le plan de contrôle des applications peut déclencher le basculement en fonction des seuils de vérification de l'état. |
Corruption de l'application (faible à moyenne) |
Corruption des données d'application (par exemple, en raison de bugs au niveau de l'application ou d'un échec de mise à niveau du système d'exploitation) |
Reprise de l'application :
|
Faire basculer un disque répliqué à l'aide de force-attach
En cas de défaillance de la zone principale, vous pouvez basculer votre volumePersistent Disk régional ou Hyperdisk Balanced à haute disponibilité (preview) vers une instance de calcul d'une autre zone en effectuant une opération d'association forcée.
En cas de défaillance dans la zone principale, vous ne pourrez peut-être pas dissocier le disque de l'instance, car elle est inaccessible. L'association forcée vous permet d'associer un volumePersistent Disk régional ou Hyperdisk Balanced à haute disponibilité à une instance de calcul, même si ce volume est associé à une autre instance.
Une fois l'association forcée effective, Compute Engine empêche l'instance d'origine d'écrire sur le disque répliqué. L'utilisation de l'association forcée vous permet d'accéder à nouveau à vos données et de récupérer votre service de manière sécurisée. Vous avez également la possibilité d'arrêter manuellement l'instance de VM après avoir effectué l'opération d'association forcée.
Pour forcer l'association d'un disque existant à une instance de calcul, sélectionnez l'une des tâches suivantes :
Console
Accédez à la page Instances de VM.
Sélectionnez votre projet.
Cliquez sur le nom de l'instance que vous souhaitez modifier.
Sur la page des détails, cliquez sur Modifier.
Dans la section Disques supplémentaires, cliquez sur Associer un disque supplémentaire.
Sélectionnez le disque répliqué régional dans la liste déroulante.
Pour forcer l'association du disque, cochez la case Forcer l'association du disque.
Cliquez sur OK, puis sur Enregistrer.
Vous pouvez effectuer les mêmes étapes pour forcer l'association (force-attach
) d'un disque sur l'instance de calcul d'origine une fois l'échec résolu.
gcloud
Dans gcloud CLI, exécutez la commande instances attach-disk
pour associer le disque d'instance répliquée à une instance de calcul. Spécifiez l'option --disk-scope
et définissez-la sur regional
.
gcloud compute instances attach-disk VM_NAME \
--disk DISK_NAME --disk-scope regional \
--force-attach
Remplacez les éléments suivants :
VM_NAME
: nom de la nouvelle instance de calcul dans la région.DISK_NAME
: nom du disque répliqué.
Après avoir forcé l'association (force-attach
) du disque, vous pouvez, si nécessaire, y installer les systèmes de fichiers. L'instance de calcul peut utiliser ce disque pour continuer les opérations de lecture et d'écriture sur le disque.
REST
Envoyez une requête POST
à la méthode compute.instances.attachDisk
et incluez l'URL du disque répliqué que vous venez de créer.
Le paramètre de requête forceAttach=true
est requis pour associer le disque à la nouvelle instance de calcul si le disque est toujours associé à l'instance de calcul principale.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/attachDisk?forceAttach=true
{
"source": "projects/PROJECT_ID/regions/REGION/disks/DISK_NAME"
}
Remplacez les éléments suivants :
PROJECT_ID
: ID de votre projet.ZONE
: emplacement de votre instance de calcul.VM_NAME
: nom de l'instance de calcul à laquelle vous ajoutez le disque répliqué.REGION
: région où se trouve le disque répliqué.DISK_NAME
: nom du disque répliqué.
Après avoir associé le disque répliqué, installez les systèmes de fichiers sur les disques si nécessaire. L'instance de calcul peut utiliser le disque répliqué pour continuer des opérations de lecture et d'écriture sur le disque.
Basculer un disque de démarrage vers une instance secondaire
Un seul disque de démarrage peut être associé à une instance de calcul. Lorsque vous effectuez le basculement sur un disque de démarrage répliqué, utilisez l'une des méthodes suivantes, selon que l'instance de calcul secondaire existe déjà ou non :
Si vous ne disposez pas d'une VM de secours active, créez une instance dans la zone secondaire. Lorsque vous créez la deuxième instance, utilisez le disque répliqué pour le disque de démarrage, comme décrit dans la section Créer une VM avec un disque de démarrage répliqué.
Si vous disposez d'une VM de secours dans la zone secondaire, remplacez le disque de démarrage de la VM de secours par le disque de démarrage répliqué, comme décrit dans la section Associer un disque de démarrage répliqué à une VM.
Utiliser le point de contrôle de récupération d'instance répliquée pour récupérer les disques répliqués
Un point de contrôle de récupération d'instance répliquée représente le moment le plus récent cohérent avec les plantages dans le temps d'un volume Persistent Disk régional ou Hyperdisk Balanced à haute disponibilité (preview). Compute Engine vous permet de créer des instantanés standards à partir du point de contrôle de récupération des instances répliquées pour les disques dégradés.
Dans de rares cas, lorsque votre disque est dégradé, l'instance répliquée zonale synchronisée avec les dernières données de disque peut également échouer avant que l'instance répliquée non synchronisée ne la rattrape. Vous ne pouvez pas forcer l'association du disque sur les instances de calcul dans l'une des zones. Votre disque répliqué devient indisponible et vous devez transférer les données vers un nouveau disque. Dans de tels scénarios, si vous ne disposez d'aucun instantané standard existant pour votre disque, vous pouvez peut-être récupérer vos données de disque à partir de l'instance répliquée incomplète à l'aide d'un instantané standard créé à partir du point de contrôle de récupération de l'instance répliquée. Pour connaître la procédure détaillée, consultez la page Procédure de migration et de récupération des données de disque.
Procédure de migration et de récupération des données de disque
Pour récupérer et migrer les données d'un disque répliqué à l'aide du point de contrôle de récupération de l'instance répliquée, procédez comme suit :
Créer un instantané standard du volumePersistent Disk régional ou Hyperdisk Balanced à haute disponibilité (preview) à partir de son point de contrôle de récupération de l'instance répliquée.
Vous pouvez créer l'instantané standard pour un disque à partir de son point de contrôle de récupération d'instance répliquée en n'utilisant que la gcloud CLI ou REST.
gcloud
Pour créer un instantané à l'aide du point de contrôle de récupération, exécutez la commande
gcloud compute snapshots create
. Incluez l'option--source-disk-for-recovery-checkpoint
pour spécifier que vous souhaitez créer l'instantané à l'aide d'un point de contrôle de récupération d'instance répliquée. Excluez les paramètres--source-disk
et--source-disk-region
.gcloud compute snapshots create SNAPSHOT_NAME \ --source-disk-for-recovery-checkpoint=SOURCE_DISK \ --source-disk-for-recovery-checkpoint-region=SOURCE_REGION \ --storage-location=STORAGE_LOCATION \ --snapshot-type=SNAPSHOT_TYPE
Remplacez les éléments suivants :
DESTINATION_PROJECT_ID
: ID du projet dans lequel vous souhaitez créer l'instantané.SNAPSHOT_NAME
: nom de l'instantané.SOURCE_DISK
: nom ou chemin d'accès complet du disque source que vous souhaitez utiliser pour créer l'instantané. Pour spécifier le chemin d'accès complet d'un disque source, utilisez la syntaxe suivante :projects/SOURCE_PROJECT_ID/regions/SOURCE_REGION/disks/SOURCE_DISK_NAME
Si vous spécifiez le chemin d'accès complet au disque source, vous pouvez exclure l'option
--source-disk-for-recovery-checkpoint-region
. Si vous ne spécifiez que le nom du disque, vous devez inclure cette option.Pour créer un instantané à partir du point de contrôle de récupération d'un disque source dans un autre projet, vous devez spécifier le chemin d'accès complet au disque source.
SOURCE_PROJECT_ID
: ID de projet du disque source dont vous souhaitez utiliser le point de contrôle pour créer l'instantané.SOURCE_REGION
: nom du disque source dont vous souhaitez utiliser le point de contrôle pour créer l'instantané.SOURCE_DISK_NAME
: nom du disque source dont vous souhaitez utiliser le point de contrôle pour créer l'instantané.STORAGE_LOCATION
: Facultatif : emplacement multirégional Cloud Storage ou la région Cloud Storage dans laquelle vous souhaitez stocker l'instantané. Vous ne pouvez spécifier qu'un seul emplacement de stockage.
Utilisez l'option--storage-location
uniquement lorsque vous souhaitez remplacer l'emplacement de stockage par défaut prédéfini ou personnalisé configuré dans vos paramètres d'instantanés.SNAPSHOT_TYPE
: type d'instantané, STANDARD ou ARCHIVE. Si aucun type d'instantané n'est spécifié, un instantané STANDARD est créé.
Vous pouvez utiliser un point de contrôle de récupération d'instance répliquée pour créer un instantané uniquement sur des disques dégradés. Si vous créez un instantané à partir d'un point de contrôle de récupération d'instance répliquée lorsque l'appareil est entièrement répliqué, le message d'erreur suivant s'affiche :
The device is fully replicated and should not create snapshots out of a recovery checkpoint. Please create regular snapshots instead.
REST
Pour créer un instantané à l'aide du point de contrôle de récupération, envoyez une requête
POST
à la méthodesnapshots.insert
. Excluez le paramètresourceDisk
et incluez à la place le paramètresourceDiskForRecoveryCheckpoint
pour spécifier que vous souhaitez créer l'instantané à l'aide du point de contrôle.POST https://compute.googleapis.com/compute/v1/projects/DESTINATION_PROJECT_ID/global/snapshots { "name": "SNAPSHOT_NAME", "sourceDiskForRecoveryCheckpoint": "projects/SOURCE_PROJECT_ID/regions/SOURCE_REGION/disks/SOURCE_DISK_NAME", "storageLocations": "STORAGE_LOCATION", "snapshotType": "SNAPSHOT_TYPE" }
Remplacez les éléments suivants :
DESTINATION_PROJECT_ID
: ID du projet dans lequel vous souhaitez créer l'instantané.SNAPSHOT_NAME
: nom de l'instantané.SOURCE_DISK
: nom ou chemin d'accès complet du disque source que vous souhaitez utiliser pour créer l'instantané. Pour spécifier le chemin d'accès complet d'un disque source, utilisez la syntaxe suivante :projects/SOURCE_PROJECT_ID/regions/SOURCE_REGION/disks/SOURCE_DISK_NAME
Si vous spécifiez le chemin d'accès complet au disque source, vous pouvez exclure l'option
--source-disk-for-recovery-checkpoint-region
. Si vous ne spécifiez que le nom du disque, vous devez inclure cette option.Pour créer un instantané à partir du point de contrôle de récupération d'un disque source dans un autre projet, vous devez spécifier le chemin d'accès complet au disque source.
SOURCE_PROJECT_ID
: ID de projet du disque source dont vous souhaitez utiliser le point de contrôle pour créer l'instantané.SOURCE_REGION
: nom du disque source dont vous souhaitez utiliser le point de contrôle pour créer l'instantané.SOURCE_DISK_NAME
: nom du disque source dont vous souhaitez utiliser le point de contrôle pour créer l'instantané.STORAGE_LOCATION
: Facultatif : emplacement multirégional Cloud Storage ou la région Cloud Storage dans laquelle vous souhaitez stocker l'instantané. Vous ne pouvez spécifier qu'un seul emplacement de stockage.
N'utilisez le paramètrestorageLocations
que si vous souhaitez ignorer l'emplacement de stockage par défaut prédéfini ou personnalisé configuré dans vos paramètres d'instantanés.SNAPSHOT_TYPE
: type d'instantané, STANDARD ou ARCHIVE. Si aucun type d'instantané n'est spécifié, un instantané STANDARD est créé.
Vous pouvez utiliser un point de contrôle de récupération d'instance répliquée pour créer un instantané uniquement sur des disques dégradés. Si vous créez un instantané à partir d'un point de contrôle de récupération d'instance répliquée lorsque l'appareil est entièrement répliqué, le message d'erreur suivant s'affiche :
The device is fully replicated and should not create snapshots out of a recovery checkpoint. Please create regular snapshots instead.
Créez un nouveau volume Persistent Disk régional ou Hyperdisk Balanced à haute disponibilité à l'aide de cet instantané. Lorsque vous créez le disque, vous récupérez toutes les données du point de contrôle de récupération le plus récent en restaurant les données vers le nouveau disque à partir de l'instantané. Pour connaître la procédure détaillée, consultez la page Créer une VM avec un disque de démarrage répliqué.
Migrez toutes les charges de travail de VM vers le nouveau disque et vérifiez que ces charges de travail de VM s'exécutent correctement. Pour en savoir plus, consultez la page Déplacer une VM entre plusieurs zones ou régions.
Après avoir récupéré et migré vos données de disque et de VM vers le volumePersistent Disk régional ou Hyperdisk Balanced à haute disponibilité que vous venez de créer, vous pouvez reprendre vos opérations.
Déterminer le RPO fourni par le point de contrôle de récupération de l'instance répliquée
Cette section explique comment déterminer le RPO fourni par le dernier point de contrôle de récupération d'une instance répliquée d'un volume Persistent Disk régional Hyperdisk Balanced à haute disponibilité (preview).
Les instances répliquées zonales sont entièrement synchronisées
Compute Engine actualise le point de contrôle de récupération d'instance répliquée de votre volumePersistent Disk régional ouHyperdisk Balanced à haute disponibilité toutes les 10 minutes. Par conséquent, lorsque vos instances répliquées zonales sont entièrement synchronisées, le RPO est d'environ 10 minutes.
Les instances répliquées zonales ne sont pas synchronisées
Vous ne pouvez pas afficher les horodatages de création et d'actualisation exacts d'un point de contrôle de récupération d'instance répliquée. Toutefois, vous pouvez estimer le RPO approximatif fourni par votre dernier point de contrôle à l'aide des données suivantes :
- Code temporel le plus récent de l'état du disque entièrement répliqué : vous pouvez obtenir ces informations en utilisant les données Cloud Monitoring pour la métrique
replica_state
du disque répliqué. Vérifiez les données de métriquereplica_state
de l'instance répliquée non synchronisée afin de déterminer à quel moment l'instance répliquée n'est plus synchronisée. Comme Compute Engine actualise le point de contrôle du disque toutes les 10 minutes, l'actualisation la plus récente du point de contrôle a pu avoir lieu environ 10 minutes avant ce code temporel. - Code temporel de l'opération d'écriture la plus récente : vous pouvez obtenir ces informations à l'aide des données Cloud Monitoring pour la métrique
write_ops_count
du disque répliqué. Vérifiez les données de métriquewrite_ops_count
pour déterminer l'opération d'écriture la plus récente pour le disque.
Une fois que vous avez déterminé ces horodatages, utilisez la formule suivante pour calculer le RPO approximatif fourni par le point de contrôle de récupération d'instance répliquée de votre disque. Si la valeur calculée est inférieure à zéro, le RPO est effectivement nul.
Approximate RPO provided by the latest checkpoint =
(Most recent write operation timestamp - (Most recent timestamp of the fully
replicated disk state - 10 minutes))
Étape suivante
- Découvrez comment surveiller les états des instances répliquées et l'état de la réplication pour les disques répliqués de manière synchrone.
- Apprenez à déterminer l'état exact de la réplication du disque.
- Apprenez à créer un instantané à partir de votre disque.
- Apprenez à créer des services à haute disponibilité à l'aide de disques répliqués de manière synchrone.
- Apprenez à créer des applications Web fiables et évolutives sur Google Cloud.
- Consultez le Guide de planification de reprise après sinistre.