Ajouter ou redimensionner des disques persistants régionaux

Cette page explique comment ajouter et gérer des ressources de stockage de type disque persistant régional. Lorsque vous redimensionnez ce type de disque, vous pouvez augmenter sa taille, mais pas la réduire.

Les disques persistants régionaux, qui présentent des qualités similaires aux disques persistants zonaux, se distinguent de ces derniers par plusieurs caractéristiques :

  • Ils ne peuvent pas servir de disques de démarrage.
  • Ils permettent de forcer l'association à une autre instance de machine virtuelle (VM) en cas de défaillance d'une zone.
  • Vous pouvez créer un disque persistant régional à partir d'un instantané, mais pas d'une image.
  • Il existe des différences de performances, qui sont décrites dans le document Options de stockage.

Les disques persistants régionaux permettent une réplication synchrone des données entre deux zones d'une même région. Dans le cas peu probable d'une défaillance de zone, votre charge de travail peut basculer vers une autre VM de la même zone ou d'une zone secondaire. Vous pouvez également forcer l'association du disque persistant régional à cette instance. Le processus d'association est estimé à moins d'une minute.

Pour éviter toute perte de données accidentelle, nous vous recommandons de sauvegarder vos disques persistants régionaux à l'aide d'instantanés.

Les disques persistants régionaux sont une option à envisager lors de la conception de systèmes robustes et pour les services de bases de données avec état tels que MySQL et Postgres, qui requièrent une haute disponibilité.

Pour comparer les ressources et leurs performances, consultez la section Options de stockage de la documentation Compute Engine.

Avant de commencer

Limites

Les disques persistants régionaux présentent les limites suivantes :

Ajouter un disque persistant régional à une instance

Créez un disque persistant régional standard ou SSD, puis associez-le à une instance. Si vous ne disposez d'aucune instance, vous devez d'abord créer et démarrer une instance. Il convient de créer votre instance dans la même région que vos disques.

Console

Vous devez d'abord créer le disque persistant régional, puis l'associer à une instance existante. Vous ne pouvez pas créer de disques persistants régionaux en tant que disques de démarrage, car il est impossible de forcer l'association de ce type de disque lors d'un basculement.

Créez un disque persistant régional.

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

    Accéder à la page "Disques"

  2. Sélectionnez votre projet.

  3. Cliquez sur Créer un disque.

  4. Spécifiez le paramètre Nom pour le disque.

  5. Sélectionnez le paramètre Type pour le disque.

  6. Cochez la case Répliquer ce disque dans la région.

  7. Sélectionnez la région.

    Notez la région, car vous devrez sélectionner la même région lors de la création de l'instance.

  8. Sélectionnez deux zones de cette région, puis cliquez sur OK.

    Vous devez sélectionner deux zones. Assurez-vous d'en noter les noms, car vous devrez associer le disque à votre instance dans l'une de ces zones.

  9. Sélectionnez le paramètre Type de source.

  10. Sélectionnez le paramètre Chiffrement.

  11. Cliquez sur Créer pour finaliser la création du disque.

Après avoir créé le disque persistant régional, associez-le à votre instance.

Lors de l'association d'un disque à une instance existante, vous pouvez recevoir un message d'erreur si le disque est déjà associé à une autre instance. Vous devrez peut-être forcer l'association du disque à l'instance en cochant la case Forcer l'association après avoir cliqué sur Associer un disque existant.

Après avoir associé un disque à une instance, vous devez formater et installer le disque pour que le système d'exploitation puisse utiliser l'espace de stockage disponible.

gcloud

Créez et associez un disque persistant régional à l'aide de l'outil de ligne de commande gcloud :

  1. Pour créer un disque persistant régional, utilisez la commande compute disks create. Si vous avez besoin d'un disque persistant SSD régional pour obtenir un débit ou un taux d'IOPS plus important, incluez l'option --type et spécifiez pd-ssd.

    gcloud compute disks create DISK_NAME \
        --size DISK_SIZE \
        --type DISK_TYPE \
        --region REGION \
        --replica-zones ZONE1,ZONE2
    

    Remplacez les éléments suivants :

    • DISK_NAME : le nom du nouveau disque.
    • DISK_SIZE : la taille du nouveau disque, en Go.
    • DISK_TYPE : le type de disque persistant (pd-standard ou pd-ssd).
    • REGION : la région où se trouvera le disque régional. Exemple : europe-west1.
    • ZONE1 et ZONE2 : les zones de la région où se trouvent les instances dupliquées des deux disques.
      Vous devez sélectionner deux zones. Exemple : europe-west1-a,europe-west1-b.
  2. Après avoir créé le disque, associez-le à une instance en cours d'exécution ou arrêtée. Exécutez la commande compute instances attach-disk en ajoutant l'option --disk.

    gcloud compute instances attach-disk INSTANCE_NAME \
        --disk DISK_NAME
    

    Remplacez les éléments suivants :

    • INSTANCE_NAME : le nom de l'instance à laquelle vous ajoutez les nouveaux disques persistants régionaux.
    • DISK_NAME : le nom du nouveau disque que vous associez à l'instance.

    Après avoir créé et associé un disque à une instance, vous devez formater et installer le disque pour que le système d'exploitation puisse utiliser l'espace de stockage disponible.

API

  1. Dans l'API, envoyez une requête POST pour créer un disque persistant régional. Dans le corps de la requête compute.regionDisks.insert, initialisez un nouveau disque avec les propriétés name et replicaZones. Pour créer un disque vierge, ne spécifiez aucune source d'image ou d'instantané.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION
    
    {
     "name": "DISK_NAME",
     "replicaZones": [
       "projects/PROJECT_ID/zones/ZONE1",
       "projects/PROJECT_ID/zones/ZONE2"
       ],
     }
    

    Remplacez les éléments suivants :

    • PROJECT_ID : l'ID de votre projet.
    • DISK_NAME : le nom du nouveau disque.
    • [ZONE1 et ZONE2 : les zones où se trouvent les instances dupliquées du nouveau disque.
  2. Dans l'API, envoyez une requête POST à la méthode compute.instances.attachDisk en incluant l'URL du disque persistant que vous venez de créer :

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/attachDisk
    
    {
     "source": "/projects/PROJECT_ID/regions/REGION/disks/DISK_NAME"
    }
    

    Remplacez les éléments suivants :

    • PROJECT_ID : l'ID de votre projet.
    • ZONE : l'emplacement de votre instance.
    • INSTANCE_NAME : le nom de l'instance à laquelle vous ajoutez le disque persistant.
    • DISK_NAME : le nom du nouveau disque.

Après avoir créé et associé un disque à une instance, vous devez formater et installer le disque pour que le système d'exploitation puisse utiliser l'espace de stockage disponible.

Accéder à un disque persistant régional lors d'une défaillance de zone

Dans le cas peu probable d'une panne de zone, votre disque persistant régional peut être basculé vers une instance de VM dans une autre zone en utilisant l'option --force-attach avec la commande attach-disk.

Si la zone dans laquelle votre instance de VM est exécutée devient indisponible, il se peut qu'il ne soit pas possible de dissocier un disque de l'instance, puisque celle-ci est inaccessible. L'association forcée vous permet d'associer à une instance de VM un disque persistant régional qui est actuellement associé à une autre instance.

Une fois l'association forcée effective, Compute Engine empêche la VM d'origine d'écrire sur le disque. Le recours à l'association de force vous permet d'accéder à nouveau à vos données et de récupérer votre service de manière sécurisée.

Une opération d'écriture n'est exécutée sur une VM que si les données sont conservées de façon durable dans les deux instances dupliquées. Si l'une des instances dupliquées n'est pas disponible, Compute Engine n'écrit que sur celle qui est saine. Lorsque Compute Engine détermine que l'instance dupliquée défaillante est de nouveau opérationnelle, elle est synchronisée de manière transparente avec l'instance dupliquée saine, et le mode de fonctionnement synchrone est rétabli. Cette opération est transparente pour les machines virtuelles.

Dans de très rares cas, si les deux instances dupliquées deviennent indisponibles en même temps ou si l'instance dupliquée saine devient indisponible alors qu'une autre est en cours de synchronisation, le disque correspondant devient indisponible.

Vous avez également la possibilité d'arrêter manuellement l'instance après avoir effectué l'étape d'association forcée.

Défaillance au sein d'une zone

Une autre option consiste à forcer l'association du disque persistant régional à une instance de VM dans la même zone. Utilisez cette option de basculement au sein d'une zone pour gérer les interruptions provoquées par une configuration inappropriée de la VM, une mise à niveau incorrecte du système d'exploitation ou d'autres modes de dysfonctionnement.

Console

Créez une instance de VM de secours et forcez l'association d'un disque à une instance.

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

    Accéder à la page "Instances de VM"

  2. Sélectionnez votre projet.

  3. Cliquez sur Créer.

  4. Indiquez un Nom pour votre instance.

  5. Sélectionnez la région où se trouve le disque persistant régional.

  6. Sélectionnez la zone secondaire de l'instance de VM d'origine où votre disque a été associé. Vos disques sont répertoriés sur la page Disques.

  7. Cliquez sur Gestion, disques, réseau, clés SSH.

  8. Cliquez sur Disques.

  9. Dans la section Disques supplémentaires, cliquez sur Associer un disque existant.

  10. Sélectionnez le disque persistant régional dans la liste.

  11. Cochez la case pour forcer l'association du disque.

  12. Cliquez sur OK.

  13. Cliquez sur Créer pour finaliser la création de cette instance. La nouvelle instance de VM s'affiche sur la page "Instances de VM". Répétez les mêmes étapes pour forcer l'association d'un disque à l'instance d'origine une fois que la zone défaillante a été rétablie.

gcloud

Dans l'outil gcloud, exécutez la commande instances attach-disk pour associer le disque source à une instance de VM. Spécifiez l'option --disk-scope et définissez-la sur regional.

gcloud compute instances attach-disk INSTANCE_NAME  \
    --disk DISK_NAME --disk-scope regional \
    --force-attach

Remplacez les éléments suivants :

  • INSTANCE_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 du disque, vous pouvez, si nécessaire, y installer les systèmes de fichiers. L'instance peut utiliser ce disque pour continuer les opérations de lecture et d'écriture.

API

Envoyez une requête POST à la méthode compute.instances.attachDisk et incluez l'URL du 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 principale.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/attachDisk?forceAttach=true

{
 "source": "projects/PROJECT_ID/regions/REGION/disks/DISK_NAME"
}

Remplacez les éléments suivants :

  • PROJECT_ID : l'ID de votre projet.
  • ZONE : l'emplacement de votre instance.
  • INSTANCE_NAME : le nom de l'instance à laquelle vous ajoutez le disque persistant.
  • REGION : la région où se trouve le disque persistant 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 peut utiliser le disque source pour poursuivre des opérations de lecture et d'écriture.

Redimensionner un disque persistant régional

Si des instances dotées de disques persistants régionaux requièrent davantage d'espace de stockage, d'IOPS ou de débit, vous pouvez redimensionner les disques. Si vous devez séparer vos données en les stockant sur des volumes uniques, créez plusieurs disques secondaires pour l'instance. Vous pouvez redimensionner les disques à tout moment, qu'ils soient ou non associés à une instance en cours d'exécution.

La commande de redimensionnement d'un disque persistant régional est identique à celle employée pour un disque persistant standard. Toutefois, elle utilise un indicateur supplémentaire pour la région.

Console

Pour redimensionner un disque persistant régional, procédez comme suit :

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

    Accéder à la page "Disques"

  2. Sélectionnez le disque que vous souhaitez redimensionner.

  3. Cliquez sur Modifier en haut de la page.

  4. Saisissez la taille du disque, exprimée en Go.

    Vous pouvez augmenter la taille du disque, mais pas la réduire.

  5. Cliquez sur Enregistrer.

  6. Après avoir redimensionné le disque, vous devez redimensionner le système de fichiers pour que le système d'exploitation puisse accéder à l'espace supplémentaire.

    La nouvelle taille de disque s'affiche dans la liste des disques.

gcloud

Dans l'outil gcloud, exécutez la commande compute disks resize. Spécifiez l'option --size avec la taille de disque souhaitée en Go et l'option --region avec la région dans laquelle se trouve le disque.

gcloud compute disks resize DISK_NAME \
    --region REGION  \
    --size DISK_SIZE

Remplacez les éléments suivants :

  • DISK_NAME : le nom du disque que vous redimensionnez.
  • REGION : la région où se trouve le disque.
  • DISK_SIZE : la nouvelle taille du disque, en Go.

Après avoir redimensionné le disque, vous devez redimensionner le système de fichiers pour que le système d'exploitation puisse accéder à l'espace supplémentaire.

API

Dans l'API, envoyez une requête POST à la méthode compute.regionDisks.resize. Dans le corps de la requête, spécifiez le paramètre sizeGb et définissez-le sur la taille de disque souhaitée, en Go.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/disks/DISK_NAME/resize

{
 "sizeGb": "DISK_SIZE"
}

Remplacez les éléments suivants :

  • PROJECT_ID : l'ID de votre projet.
  • REGION : la région où se trouve le disque.
  • DISK_NAME : le nom du disque que vous redimensionnez.
  • DISK_SIZE : la nouvelle taille du disque, en Go.

Après avoir redimensionné le disque, vous devez redimensionner le système de fichiers pour que le système d'exploitation puisse accéder à l'espace supplémentaire.

Partager un disque persistant régional entre plusieurs instances

Vous pouvez associer un disque persistant non amorçable à plusieurs instances de machines virtuelles en mode lecture seule, ce qui vous permet de partager des données statiques entre plusieurs instances. Le partage de données statiques entre plusieurs instances à partir d'un seul disque persistant est plus économique que de répliquer vos données sur des disques dédiés à chaque instance.

Si vous associez un disque persistant à plusieurs instances, toutes ces instances doivent définir une association au disque persistant en mode lecture seule. Il est impossible d'associer le disque persistant à plusieurs instances en mode lecture/écriture. Si vous devez partager un espace de stockage dynamique entre plusieurs instances, choisissez l'une des options suivantes :

Si vous avez un disque persistant avec des données que vous souhaitez partager entre plusieurs instances, dissociez-le des instances en mode lecture/écriture et associez-le à une ou plusieurs instances en mode lecture seule.

Console

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

    Accéder à la page "Instances"

  2. Cliquez sur le nom de l'instance à laquelle vous souhaitez associer le disque. La page des détails de l'instance s'affiche.

  3. Cliquez sur Modifier en haut de la page des détails de l'instance.

  4. Dans la section Disques supplémentaires, cliquez sur Associer un disque existant.

  5. Sélectionnez le disque persistant régional dans la liste.

  6. Dans la section Mode, sélectionnez Lecture seule.

  7. Cliquez sur OK.

  8. En bas de la page des détails de l'instance, cliquez sur Enregistrer pour appliquer vos modifications à l'instance.

  9. Connectez-vous à l'instance et installez le disque.

  10. Répétez cette opération pour ajouter le disque à d'autres instances en mode lecture seule.

gcloud

Dans l'outil gcloud, utilisez la commande compute instances attach-disk et spécifiez l'option --mode avec l'argument ro.

gcloud beta compute instances attach-disk INSTANCE_NAME --disk DISK_NAME \
    --disk-scope regional --mode ro

Remplacez les éléments suivants :

  • INSTANCE_NAME : le nom de l'instance à laquelle vous souhaitez associer le disque persistant.
  • DISK_NAME : le nom du disque que vous souhaitez associer.

Après avoir associé le disque, connectez-vous à l'instance et installez le disque.

Répétez cette commande pour chaque instance sur laquelle vous souhaitez ajouter ce disque en mode lecture seule.

API

Dans l'API, envoyez une requête POST à la méthode compute.instances.attachDisk. Dans le corps de la requête, définissez le paramètre mode en tant que READ_ONLY.

POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/attachDisk

{
 "source": "regions/REGION/disks/DISK_NAME",
 "mode": "READ_ONLY"
}

Remplacez les éléments suivants :

  • PROJECT_ID : l'ID de votre projet.
  • ZONE : la zone de l'instance.
  • INSTANCE_NAME : le nom de l'instance à laquelle vous souhaitez associer le disque persistant.
  • REGION : la région où se trouve le disque.
  • DISK_NAME : le nom du disque que vous associez.

Après avoir associé le disque, connectez-vous à l'instance et installez le disque.

Répétez cette requête pour chaque instance sur laquelle vous souhaitez ajouter ce disque en mode lecture seule.

Migrer un disque persistant de zones vers un disque persistant régional

Pour convertir un disque persistant de zones en disque persistant régional, commencez par créer un instantané du disque existant. Ensuite, créez un disque persistant régional à partir de l'instantané.

gcloud

Dans l'outil gcloud, exécutez la commande compute disks snapshot en spécifiant les options --zone et --snapshot-names.

gcloud compute disks snapshot DISK_NAME \
    --zone ZONE \
    --snapshot-names SNAPSHOT_DISK_NAME

Remplacez les éléments suivants :

  • DISK_NAME : le nom du disque à partir duquel vous souhaitez créer un instantané.
  • ZONE : l'emplacement de votre disque zonal.
  • SNAPSHOT_DISK_NAME : le nom de l'instantané du disque que vous venez de créer.

Créez un disque régional à partir d'un instantané du disque zonal à l'aide de compute disks create. Spécifiez le nom du disque, ainsi que les options --region, --replica-zones et --source-snapshot.

gcloud compute disks create DISK_NAME \
    --region REGION \
    --replica-zones ZONE1,ZONE2 \
    --source-snapshot SNAPSHOT_DISK_NAME

Remplacez les éléments suivants :

  • DISK_NAME : le nom du nouveau disque.
  • REGION : la région où se trouve le disque.
  • ZONE1 et ZONE2 : les zones où se trouvent les instances dupliquées des nouveaux disques persistants régionaux.
  • SNAPSHOT_DISK_NAME : le nom de l'instantané source.

Vous pouvez utiliser la même méthode pour migrer des disques régionaux vers des disques zonaux.

API

Dans l'API, envoyez une requête POST à la méthode compute.disk.createSnapshot pour créer un instantané d'un disque. Dans le corps de la requête, spécifiez la zone où se trouve le disque, le nom du disque (disk) à partir duquel vous créez un instantané, puis saisissez createSnapshot.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/disks/DISK_NAME/createSnapshot

Remplacez les éléments suivants :

  • PROJECT_ID : l'ID de votre projet.
  • ZONE : la zone où se trouve le disque.
  • DISK_NAME : le nom du disque dont vous créez un instantané.

Dans l'API, envoyez une requête POST pour créer un disque persistant régional. Dans le corps de la requête compute.regionDisks.insert, initialisez un nouveau disque, puis spécifiez son nom ainsi que les propriétés de zones des instances dupliquées. Comme il s'agit d'un disque de données, n'incluez pas la propriété sourceImage, qui crée un disque vierge :

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

{
 "name": "DISK_NAME",
 "sourceSnapshot": "global/snapshots/SNAPSHOT_NAME",
 "replicaZones": [
 "projects/PROJECT_ID/zones/ZONE1",
 "projects/PROJECT_ID/zones/ZONE2"
 ],
}

Remplacez les éléments suivants :

  • PROJECT_ID : l'ID de votre projet.
  • REGION : la région où se trouve le disque.
  • DISK_NAME : le nom du nouveau disque.
  • SNAPSHOT_NAME : l'instantané à restaurer.
  • ZONE1 et ZONE2 : les zones où se trouvent les instances dupliquées des nouveaux disques persistants régionaux.

Étapes suivantes