Vous pouvez associer un volume de disque persistant SSD en mode écriture simultanée avec deux instances de machines virtuelles (VM) N2 simultanément au maximum, afin que les deux VM puissent lire et écrire sur le disque. Pour activer le mode écriture simultanée pour les nouveaux volumes Persistent Disk, créez un volume de disque persistant et spécifiez l'option --multi-writer
dans gcloud CLI ou la propriété multiWriter
dans l'API Compute Engine.
Les volumes de 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 stockage distribué et de services à disponibilité élevée similaires. Lorsque vous utilisez des volumes de disques persistants en mode écriture simultanée, utilisez un système logiciel de stockage à évolutivité horizontale capable de coordonner l'accès aux disques persistants sur plusieurs VM. Lustre et IBM Spectrum Scale sont des exemples de ces systèmes de stockage. La plupart des systèmes de fichiers de VM uniques, 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 volumes de disque persistant 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}
Avant de commencer
-
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 :
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
- Disponible uniquement pour les volumes de disque persistant de type SSD.
- Vous pouvez créer un volume de 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
(zonesus-central1-a
etus-central1-c
uniquement)us-east1
(zoneus-east1-d
uniquement)us-west1
(zonesus-west1-b
etus-west1-c
uniquement)
- Les VM installées doivent être du type de machine N2.
- Taille minimale : 10 Go
- Nombre maximal de VM associées: 2
- Les volumes de disque persistant 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 volumes de disques persistants en mode écriture simultanée.
- Vous ne pouvez pas créer d'instantanés ou d'images à partir de volumes de disque persistant 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 volume de disque persistant à écriture simultanée.
- Lors de la création d'une VM à l'aide de Google Cloud CLI, vous ne pouvez pas créer un volume de disque persistant à écriture simultanée à l'aide de l'option
--create-disk
. - 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 cohérence de plantage 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 volumes de 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.
- Connectez vos VM à Cloud Storage
- Connectez vos VM à Filestore
- Créer un serveur de fichiers réseau sur Compute Engine
- Créer un volume de disque persistant avec le mode écriture simultanée activé et l'associer à deux VM maximum.
Dans la console Google Cloud, accédez à la page Instances de VM.
Dans la liste des VM de votre projet, cliquez sur le nom de la VM à laquelle vous souhaitez associer le disque. La page Détails de l'instance de VM s'affiche.
Sur la page "Détails de l'instance", cliquez sur Modifier.
Dans la section Disques supplémentaires, cliquez sur l'une des options suivantes :
- Ajouter un disque pour ajouter un disque en mode lecture seule à la VM.
- Associer un disque existant pour sélectionner un disque existant et l'associer en mode lecture seule à votre VM.
Spécifiez d'autres options pour votre disque.
Cliquez sur Terminé pour appliquer les modifications.
Cliquez sur Enregistrer pour appliquer vos modifications à la VM.
Connectez-vous à la VM et installez le disque.
Répétez cette opération pour ajouter le disque à d'autres VM en mode lecture seule.
INSTANCE_NAME
: nom de la VM à laquelle vous souhaitez associer le volume de disque persistant zonal.DISK_NAME
: le nom du disque que vous souhaitez associer.INSTANCE_NAME
: nom de la VM à laquelle vous souhaitez associer le volume de 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.Utilisez la commande
gcloud beta compute disks create
pour créer un volume de disque persistant zonal. Incluez l'option--multi-writer
pour indiquer que le disque doit être partageable entre les VM en mode écriture simultanée.gcloud beta compute disks create DISK_NAME \ --size DISK_SIZE \ --type pd-ssd \ --multi-writer
Remplacez les éléments suivants :
DISK_NAME
: le nom du nouveau disqueDISK_SIZE
Taille du nouveau disque, en Go. Les tailles acceptées sont comprises entre 1 Go et 65 536 Go pour les volumes de disques persistants SSD, ou entre 200 Go et 65 536 Go pour les volumes de disque persistant standards en écriture simultanée.
Après avoir créé le disque, associez-le à toutes les VM 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 les éléments suivants :
INSTANCE_NAME
: le nom de la VM N2 à laquelle vous ajoutez le nouveau volume de disque persistant zonal.DISK_NAME
: le nom du nouveau disque que vous associez à la VM.
Répétez la commande
gcloud compute instances attach-disk
, mais remplacez INSTANCE_NAME par le nom de votre deuxième VM.Dans l'API, envoyez une requête
POST
pour créer un volume de disque persistant zonal à l'aide de la méthodedisks.insert
. Incluez les propriétésname
,sizeGb
ettype
. 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 valeurTrue
pour indiquer que le disque doit être partageable entre les VM 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 les éléments suivants :
PROJECT_ID
: ID de votre projet.ZONE
: la zone dans laquelle se trouvent l'instance et le disque.DISK_NAME
: le nom du nouveau disqueDISK_SIZE
Taille du nouveau disque, en Go. Les tailles acceptées sont comprises entre 1 Go et 65 536 Go pour les volumes de disques persistants SSD, ou entre 200 Go et 65 536 Go pour les volumes de disque persistant standards en écriture simultanée.
Envoyez une requête
POST
à la méthodecompute.instances.attachDisk
et incluez l'URL du volume de 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": "/compute/v1/projects/PROJECT_ID/zones/ZONE/disks/DISK_NAME" }
Remplacez les éléments suivants :
PROJECT_ID
: ID de votre projet.ZONE
: la zone dans laquelle se trouvent l'instance et le disque.INSTANCE_NAME
: le nom de la VM à laquelle vous ajoutez le nouveau volume de disque persistant.DISK_NAME
: le nom du nouveau disque
Répétez la commande
disks.insert
, mais spécifiez la deuxième VM à la place.- Découvrez comment partager des volumes de disques persistants régionaux entre plusieurs instances de VM.
Java
Pour utiliser les exemples Java de cette page dans un environnement de développement local, installez et initialisez gcloud CLI, puis configurez le service Identifiants par défaut de l'application à l'aide de vos identifiants utilisateur.
Pour en savoir plus, consultez Set up authentication for a local development environment.
Python
Pour utiliser les exemples Python de cette page dans un environnement de développement local, installez et initialisez gcloud CLI, puis configurez le service Identifiants par défaut de l'application à l'aide de vos identifiants utilisateur.
Pour en savoir plus, consultez Set up authentication for a local development environment.
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
Pour en savoir plus, consultez la section S'authentifier pour utiliser REST dans la documentation sur l'authentification Google Cloud.
Restrictions
Bonnes pratiques
Performances
Les volumes Persistent Disk 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–100 000* IOPS par instance en écriture 15 000–100 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 volume de disque persistant zonal entre des instances de VM
Cette section explique les différentes méthodes permettant de partager des volumes de disques persistants zonaux entre plusieurs VM.
Partager un disque en mode lecture seule entre plusieurs VM
Vous pouvez associer un volume de 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 volume de disque persistant est plus économique que de répliquer vos données sur des disques dédiés à chaque VM.
Si vous devez partager un espace de stockage dynamique entre plusieurs VM, vous pouvez procéder selon l'une des méthodes suivantes :
Console
gcloud
Dans gcloud CLI, utilisez la commande
compute instances attach-disk
et spécifiez l'option--mode
avec l'argumentro
.gcloud compute instances attach-disk INSTANCE_NAME \ --disk DISK_NAME \ --mode ro
Remplacez les éléments suivants :
Après avoir associé le disque, connectez-vous à la VM et installez le disque.
Répétez cette commande pour chaque VM sur laquelle vous souhaitez ajouter ce disque en mode lecture seule.
Java
Java
Avant d'essayer cet exemple, suivez les instructions de configuration pour Java décrites dans le Guide de démarrage rapide de Compute Engine à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Java Compute Engine.
Pour vous authentifier auprès de Compute Engine, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Python
Python
Avant d'essayer cet exemple, suivez les instructions de configuration pour Python décrites dans le Guide de démarrage rapide de Compute Engine à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Python Compute Engine.
Pour vous authentifier auprès de Compute Engine, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
REST
Dans l'API, envoyez une requête
POST
à la méthodecompute.instances.attachDisk
. Dans le corps de la requête, définissez le paramètremode
en tant queREAD_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 les éléments suivants :
Après avoir associé le disque, connectez-vous à la VM et installez le disque.
Répétez cette requête pour chaque VM sur laquelle vous souhaitez ajouter ce disque en mode lecture seule.
Partager un volume de disque persistant SSD en mode écriture simultanée entre les VM
Vous pouvez partager un volume de disque persistant SSD en mode écriture simultanée entre des VM 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 volumes de disques persistants à écriture simultanée, procédez comme suit:
gcloud
Créez et associez un volume de disque persistant zonal avec gcloud CLI :
Après avoir créé et associé un nouveau disque à une VM, 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.
REST
Utilisez l'API Compute Engine pour créer et associer un volume de disque persistant SSD aux VM N2 en mode écriture simultanée.
Après avoir créé et associé un nouveau disque à une VM, 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.
Étapes suivantes
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2024/11/22 (UTC).
-