Gérer les défaillances d'un disque Persistent Disk régional


Le disque Persistent Disk régional permet une réplication synchrone des données entre deux zones d'une même région. Vous pouvez utiliser un disque Persistent Disk régional 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 votre volume de disque Persistent Disk régional et explique comment les gérer.

Avant de commencer

  • Passez en revue les principes de base de la réplication et du basculement zonaux des disques persistants régionaux. Pour en savoir plus, consultez la page À propos des disques persistants régionaux.
  • 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

    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

Scénarios d'échec

Avec les disques persistants régionaux, 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 machine virtuelle (VM) lorsque 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 la réplication du disque passe à 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 précédemment écrites depuis que l'appareil 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 dégradé. Pour minimiser les pertes de données et/ou de disponibilité en cas de défaillance d'un disque en état dégradé, nous vous recommandons de sauvegarder régulièrement vos disques persistants régionaux en utilisant des instantanés standard. Vous pouvez récupérer un disque en restaurant l'instantané.

Défaillances zonales

Un volume de disque Persistent Disk 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 tombe en panne et devient indisponible. Les défaillances zonales peuvent se produire dans l'une des zones 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 un disque Persistent Disk régional, 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

  • L'instance répliquée de la zone secondaire reste opérationnelle et dispose des données de disque les plus récentes.
  • L'instance répliquée de la zone principale n'est pas opérationnelle et n'a pas forcément accès à toutes les données du disque.
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

  • L'instance répliquée de la zone principale reste opérationnelle et dispose des données de disque les plus récentes.
  • L'instance répliquée de la zone secondaire n'est pas opérationnelle et n'a pas forcément accès à toutes les données du disque.
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

  • Les deux instances répliquées zonales ne sont pas disponibles et ne peuvent pas diffuser le trafic. Le disque devient indisponible.
  • Si l'indisponibilité de zone ou la défaillance de l'instance répliquée sont temporaires, aucune donnée n'est perdue.
  • Si l'indisponibilité de la zone ou la défaillance de l'instance répliquée est permanente, toutes les données écrites sur l'instance répliquée opérationnelle alors que le disque était dégradé sont définitivement perdues.
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 volumes de disque Persistent Disk régionaux à 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

  • Les deux instances répliquées zonales ne peuvent pas diffuser de trafic. Le disque devient indisponible.
  • Si l'indisponibilité zonale ou la défaillance de l'instance répliquée sont temporaires, le disque reprend des opérations une fois que l'instance répliquée principale est à nouveau disponible.
  • Si l'indisponibilité de la zone ou de l'instance répliquée est permanente, votre disque devient inutilisable.

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

  • Les deux instances répliquées zonales ne peuvent pas diffuser de trafic. Le disque devient indisponible.
  • Si l'indisponibilité zonale ou l'échec de l'instance répliquée sont temporaires, le disque reprend des opérations une fois que l'instance répliquée principale est à nouveau disponible.
  • Si l'indisponibilité zonale ou l'échec de l'instance répliquée sont permanents, votre disque devient inutilisable.

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 Persistent Disk régional sur une instance de VM de la même zone.

Catégorie de défaillance (probabilité) Types de défaillances Action
Défaillance de l'application (élevée)
  • Applications qui ne répondent pas
  • Échec en raison d'actions d'administration d'application (par exemple, une mise à niveau)
  • Erreur humaine (par exemple, mauvaise configuration de paramètres tels que le certificat SSL ou les LCA)
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)
  • Défaillance matérielle ou d'infrastructure
  • VM qui ne répond pas en raison de conflits dans le processeur ou d'une interruption du réseau intermédiaire
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 votre disque persistant régional à l'aide de force-attach

En cas de défaillance de la zone principale, vous pouvez basculer votre volume Persistent Disk régional vers une VM 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 la VM, car la VM est inaccessible. L'association forcée vous permet d'associer un volume Persistent Disk régional à une VM, même si ce volume est associé à une autre VM. Une fois l'association forcée effective, Compute Engine empêche la VM d'origine d'écrire sur le volume Persistent Disk régional. L'opération d'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 VM, procédez comme suit :

Console

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

    Accéder à la page Instances de VM

  2. Sélectionnez votre projet.

  3. Cliquez sur le nom de la VM que vous souhaitez modifier.

  4. Sur la page des détails, cliquez sur Modifier.

  5. Dans la section Disques supplémentaires, cliquez sur Associer un disque supplémentaire.

  6. Sélectionnez le volume Persistent Disk régional dans la liste déroulante.

  7. Pour forcer l'association du disque, cochez la case Forcer l'association du disque.

  8. Cliquez sur OK, puis sur Enregistrer.

Vous pouvez effectuer les mêmes étapes pour forcer l'association (force-attach) d'un disque sur la VM 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 VM. 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 : le nom de la nouvelle instance de VM dans la région
  • DISK_NAME : le nom du disque

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 VM peut utiliser ce disque pour continuer les opérations de lecture et d'écriture.

REST

Envoyez une requête POST à la méthode compute.instances.attachDisk et incluez l'URL du volume de disque persistant que vous venez de créer. Le paramètre de requête forceAttach=true est requis pour associer le disque à la nouvelle instance de VM même si celui-ci est toujours présent dans l'instance de VM 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 : l'emplacement de votre instance de VM.
  • VM_NAME : le nom de l'instance de VM à laquelle vous ajoutez le nouveau volume Persistent Disk.
  • REGION : la région où se trouve le volume Persistent Disk régional.
  • DISK_NAME : le nom du nouveau disque

Après avoir associé le disque source, installez les systèmes de fichiers sur les disques si nécessaire. L'instance de VM peut utiliser le disque source pour poursuivre des opérations de lecture et d'écriture.

Utiliser le point de contrôle de récupération des instances répliquées pour récupérer des volumes Persistent Disk régionaux dégradés

Un point de contrôle de récupération de l'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 entièrement répliqué. 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 aux VM dans l'une des zones. Votre volume de disque persistant régional 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. Consultez la page Procédure de migration et de récupération de données de disque pour connaître la procédure détaillée.

Rôles requis

Pour obtenir les autorisations nécessaires pour migrer des données Persistent Disk régionales à 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 Persistent Disk régionales à 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 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 Persistent Disk régionales à 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 Persistent Disk régionales à 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 sur le projet
    • compute.disks.createSnapshot sur le disque
  • Pour créer un disque Persistent Disk régional à partir de l'instantané standard : compute.disks.create sur le projet dans lequel vous souhaitez créer le disque
  • Pour migrer des VM vers le nouveau disque, procédez comme suit :
    • compute.instances.attachDisk sur l'instance de VM
    • compute.disks.use permission sur le disque que vous venez de créer

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

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 volume Persistent Disk régional à l'aide du point de contrôle de récupération de l'instance répliquée, procédez comme suit :

  1. Créez un instantané standard du volume Persistent Disk régional affecté à 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 uniquement à l'aide de la Google Cloud CLI ou de 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éthode snapshots.insert. Excluez le paramètre sourceDisk et incluez à la place le paramètre sourceDiskForRecoveryCheckpoint 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ètre storageLocations 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.
    

  2. Créez un volume Persistent Disk régional à 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 déplaçant les données vers le nouveau disque. Pour obtenir la procédure détaillée, consultez la page Créer une VM avec des disques de démarrage Persistent Disk régionaux.

  3. 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 d'une zone ou d'une région à une autre.

Après avoir récupéré et migré vos données de disque et de VM vers le volume Persistent Disk régional 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.

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 volume Persistent Disk régional environ 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 :

  • Horodatage 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 de Persistent Disk régionales pour la métrique replica_state. Vérifiez les données de métrique replica_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 cet horodatage.
  • Horodatage de l'opération d'écriture la plus récente : vous pouvez obtenir ces informations à l'aide des données Cloud Monitoring de Persistent Disk pour la métrique write_ops_count. Vérifiez les données de métriques write_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))

Étapes suivantes