Partager des disques persistants entre plusieurs VM

Vous pouvez installer un disque persistant SSD en mode écriture simultanée dans deux instances de machines virtuelles (VM) N2 simultanément, afin que les deux VM puissent lire et écrire sur le disque. Pour activer le mode écriture simultanée pour les nouveaux disques persistants, créez un disque persistant et spécifiez l'option --multi-writer dans l'outil gcloud ou la propriété multiWriter dans l'API Compute Engine.

Les disques persistants en mode écriture simultanée offrent une fonctionnalité de stockage de blocs partagé et présentent une base d'infrastructure pour la création d'un système de fichiers réseau distribué (NFS, Distributed Network File) et de services à disponibilité élevée similaires. Cependant, les disques persistants en mode écriture simultanée nécessitent des systèmes de fichiers spécialisés tels que GlusterFS ou GFS2. De nombreux systèmes de fichiers, tels que EXT4, XFS et NTFS, ne sont pas conçus pour être utilisés avec le stockage de blocs partagé. Pour en savoir plus, consultez la section Bonnes pratiques de ce document. Si vous avez besoin d'un stockage de fichiers entièrement géré, vous pouvez installer un partage de fichiers Filestore sur vos VM Compute Engine.

Les disques persistants en mode écriture simultanée sont compatibles avec un sous-ensemble de commandes de réservations persistantes (SCSI PR) SCSI-3. Les applications à haute disponibilité peuvent utiliser ces commandes pour les paramètres de cloisonnement et de basculement E/S.

Les commandes SCSI PR suivantes sont acceptées :

  • IN {REPORT CAPABILITIES, READ FULL STATUS, READ RESERVATION, READ KEYS}
  • OUT {REGISTER, REGISTER AND IGNORE EXISTING KEY, RESERVE, PREEMPT, CLEAR, RELEASE}

Restrictions

  • Disponible uniquement pour les disques persistants de type SSD
  • Vous pouvez créer un disque persistant en mode écriture simultanée dans n'importe quelle zone, mais vous ne pouvez installer ce disque qu'aux VM des emplacements suivants :
    • australia-southeast1
    • europe-west1
    • us-central1 (zones us-central1-a et us-central1-c uniquement)
    • us-east1 (zone us-east1-d uniquement)
    • us-west1 (zones us-west1-b et us-west1-c uniquement)
  • Les VM installées doivent être du type de machine N2.
  • Taille minimale : 10 Go
  • Nombre maximal d'instances installées : 2
  • Les disques persistants en mode écriture simultanée ne sont pas compatibles avec les métriques de disque persistant.
  • Les disques en mode écriture simultanée ne peuvent pas passer en mode lecture seule.
  • Vous ne pouvez pas utiliser des images disque ou des instantanés pour créer des disques persistants en mode écriture simultanée.
  • Vous ne pouvez pas créer d'instantanés ou d'images à partir de disques persistants en mode écriture simultanée.
  • Limites IOPS réduites. Pour en savoir plus, consultez la section Performances des disques.
  • Vous ne pouvez pas redimensionner un disque persistant à écriture simultanée.
  • Lors de la création d'une VM à l'aide de l'outil de ligne de commande gcloud, vous ne pouvez pas créer de disque persistant en mode écriture simultanée à l'aide de l'option --create-disk.

Bonnes pratiques

  • Le cloisonnement E/S à l'aide des commandes de type SCSI PR permet de créer un état tolérant aux plantages des données sur le disque persistant. Certains systèmes de fichiers n'ont pas de tolérance aux plantages et peuvent donc être corrompus si vous utilisez des commandes SCSI PR.
  • De nombreux systèmes de fichiers, tels que EXT4, XFS et NTFS, ne sont pas conçus pour être utilisés avec un stockage de blocs partagé et ne possèdent pas de mécanisme pour synchroniser ou effectuer des opérations provenant de plusieurs instances de VM.
  • Avant d'utiliser des disques persistants en mode écriture simultanée, assurez-vous de bien comprendre votre système de fichiers et comment il peut être utilisé en toute sécurité avec un stockage de blocs partagé et un accès simultané à partir de plusieurs VM.

Performances

Les disques persistants créés en mode écriture simultanée imposent des limites d'IOPS et de débit spécifiques.

Mode écriture simultanée de disques persistants SSD zonaux
Nombre maximal d'IOPS soutenues
IOPS par Go en lecture 30
IOPS par Go en écriture 30
IOPS par instance en lecture 15 000–60 000*
IOPS par instance en écriture 15 000–60 000*
Débit soutenu maximal (Mo/s)
Débit par Go en lecture 0,48
Débit par Go en écriture 0,48
Débit par instance en lecture 240–1 200*
Débit par instance en écriture 240–1 200*
* Les performances d'IOPS et de débit des disques persistants dépendent de facteurs tels que la taille des disques, le nombre de processeurs virtuels de l'instance et la taille des blocs d'E/S.
Associer un disque à écriture simultanée à plusieurs instances de machine virtuelle n'a aucune incidence sur les performances globales ou le coût. En effet, chaque machine se voit attribuer une partie des limites de performance par disque.

Pour savoir comment partager des disques persistants entre plusieurs VM, consultez la page Partager des disques persistants entre des VM.

Partager un disque persistant zonal entre des instances de VM

Partager un disque en mode lecture seule entre plusieurs VM

Vous pouvez associer un disque persistant non amorçable à plusieurs VM en mode lecture seule, ce qui vous permet de partager des données statiques entre plusieurs VM. Le partage de données statiques entre plusieurs VM à 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 devez partager un espace de stockage dynamique entre plusieurs VM, vous pouvez procéder selon l'une des méthodes suivantes :

Console

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

    Accéder à la page "Instances de VM"

  2. Dans la liste des instances de votre projet, cliquez sur le nom de l'instance à laquelle vous souhaitez associer le disque. La page Détails de l'instance de VM s'affiche.

  3. Sur la page "Détails de l'instance", cliquez sur Modifier.

  4. Dans la section Disques supplémentaires, cliquez sur l'une des options suivantes :

    1. Ajouter un disque pour ajouter un disque en mode lecture seule à l'instance.
    2. Associer un disque existant pour sélectionner un disque existant et l'associer en mode lecture seule à votre instance.
  5. Spécifiez d'autres options pour votre disque.

  6. Cliquez sur Terminé pour appliquer les modifications.

  7. Cliquez sur Enregistrer pour appliquer vos modifications à l'instance.

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

  9. 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 compute instances attach-disk INSTANCE_NAME \
  --disk DISK_NAME \
  --mode ro

Remplacez les éléments suivants :

  • INSTANCE_NAME : le nom de l'instance à laquelle vous souhaitez associer le disque persistant zonal.
  • 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/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/attachDisk

{
 "source": "zones/ZONE/disks/DISK_NAME",
 "mode": "READ_ONLY"
}

Remplacez l'élément suivant :

  • INSTANCE_NAME : le nom de l'instance à laquelle vous souhaitez associer le disque persistant zonal.
  • PROJECT_ID : ID de votre projet.
  • ZONE : la zone 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.

Partager un disque persistant SSD en mode écriture simultanée entre les instances de VM

Vous pouvez partager un disque persistant SSD en mode écriture simultanée entre des instances N2 de la même zone. Pour plus d'informations sur le fonctionnement de ce mode, consultez la section Mode écriture simultanée de disques persistants. Pour créer et associer des disques persistants à écriture simultanée, procédez comme suit :

gcloud

Créez et associez un disque persistant zonal avec l'outil gcloud :

  1. Utilisez la commande gcloud beta compute disks create pour créer un disque persistant zonal. Incluez l'option --multi-writer pour indiquer que le disque doit être partageable entre les instances en mode écriture simultanée.

    gcloud beta compute disks create DISK_NAME \
       --size DISK_SIZE \
       --type pd-ssd \
       --multi-writer
    

    Remplacez l'élément suivant :

    • DISK_NAME : le nom du nouveau disque.
    • DISK_SIZE : la taille du nouveau disque, en Go. Les tailles acceptées sont comprises entre 1 Go et 65 536 Go pour les disques persistants SSD, ou entre 200 Go et 65 536 Go pour les disques persistants standards en mode écriture simultanée.
  2. Après avoir créé le disque, associez-le à toutes les instances en cours d'exécution ou arrêtées avec un type de machine N2. Exécutez la commande gcloud compute instances attach-disk :

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

    Remplacez l'élément suivant :

    • INSTANCE_NAME : le nom de l'instance N2 à laquelle vous ajoutez le nouveau disque persistant zonal.
    • DISK_NAME : le nom du nouveau disque que vous associez à l'instance.
  3. Répétez la commande gcloud compute instances attach-disk, mais remplacez INSTANCE_NAME par le nom de votre deuxième instance.

Après avoir créé et associé un nouveau disque à une instance, formatez et installez le disque à l'aide d'un système de fichiers à disque partagé. La plupart des systèmes de fichiers ne peuvent pas utiliser le stockage partagé. Vérifiez que votre système de fichiers est compatible avec ces fonctionnalités avant de l'utiliser avec un disque persistant en écriture simultanée. Vous ne pouvez pas installer le disque sur plusieurs VM en utilisant le processus que vous auriez en principe utilisé pour installer le disque sur une seule VM.

API

Utilisez l'API Compute Engine pour créer et associer un disque persistant SSD aux instances N2 en mode écriture simultanée.

  1. Dans l'API, envoyez une requête POST pour créer un disque persistant zonal à l'aide de la méthode disks.insert. Incluez les propriétés name, sizeGb et type. Pour créer un disque non amorçable vide et non formaté, ne spécifiez pas d'image source ni d'instantané source pour ce disque. Incluez la propriété multiWriter ayant la valeur True pour indiquer que le disque doit être partageable entre les instances en mode écriture simultanée.

    POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/disks
    
    {
    "name": "DISK_NAME",
    "sizeGb": "DISK_SIZE",
    "type": "zones/ZONE/diskTypes/pd-ssd",
    "multiWriter": "True"
    }
    

    Remplacez l'élément suivant :

    • PROJECT_ID : ID de votre projet.
    • ZONE : la zone où se trouvent l'instance et le nouveau disque.
    • DISK_NAME : le nom du nouveau disque.
    • DISK_SIZE : la taille du nouveau disque, en Go. Les tailles acceptées sont comprises entre 1 Go et 65 536 Go pour les disques persistants SSD, ou entre 200 Go et 65 536 Go pour les disques persistants standards en mode écriture simultanée.
  2. Envoyez une requête POST à la méthode compute.instances.attachDisk et incluez l'URL du disque persistant zonal que vous venez de créer :

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

    Remplacez l'élément suivant :

    • PROJECT_ID : ID de votre projet.
    • ZONE : la zone où se trouvent l'instance et le nouveau disque.
    • INSTANCE_NAME : le nom de l'instance à laquelle vous ajoutez le nouveau disque persistant.
    • DISK_NAME : le nom du nouveau disque.
  3. Répétez la commande disks.insert, mais spécifiez la deuxième instance à la place.

Après avoir créé et associé un nouveau disque à une instance, formatez et installez le disque à l'aide d'un système de fichiers à disque partagé. La plupart des systèmes de fichiers ne peuvent pas utiliser le stockage partagé. Vérifiez que votre système de fichiers est compatible avec ces fonctionnalités avant de l'utiliser avec un disque persistant en écriture simultanée.

Étape suivante