Vous pouvez utiliser un disque persistant comme disque de démarrage pour une instance de machine virtuelle (VM) ou comme disque de données que vous associez à une VM. Lors de la création d'un disque persistant, vous pouvez soit créer un disque persistant vide, soit créer un disque à partir d'une source afin que le nouveau disque contienne les données de cette source.
Source de données
Vous pouvez créer des disques persistants à partir des sources de données suivantes :
Disques existants : clonez un disque persistant existant. Utilisez cette option si vous avez besoin d'une copie pouvant être associée instantanément d'un disque persistant non amorçable existant.
Instantanés : créez un disque non amorçable à partir d'un instantané standard ou d'un instantané immédiat. Utilisez cette option pour restaurer les données d'un disque persistant que vous avez sauvegardé à l'aide d'instantanés.
Images : créez un disque de démarrage à partir d'une image source. Utilisez cette option pour créer un disque de démarrage pour une nouvelle VM ou pour créer un disque de démarrage persistant autonome.
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 :
Sélectionnez l'onglet correspondant à la façon dont vous prévoyez d'utiliser les exemples de cette page :
Console
Lorsque vous utilisez la console Google Cloud pour accéder aux services et aux API Google Cloud, vous n'avez pas besoin de configurer l'authentification.
gcloud
-
Installez Google Cloud CLI, puis initialisez-la en exécutant la commande suivante :
gcloud init
- Définissez une région et une zone par défaut.
Terraform
Pour utiliser les exemples Terraform 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.
- Installez Google Cloud CLI.
-
Pour initialiser gcloudCLI, exécutez la commande suivante :
gcloud init
-
Créez des identifiants d'authentification locaux pour votre compte Google :
gcloud auth application-default login
Pour en savoir plus, consultez les sections sur Configurer l'authentification pour un environnement de développement local.
Go
Pour utiliser les exemples Go 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.
- Installez Google Cloud CLI.
-
Pour initialiser gcloudCLI, exécutez la commande suivante :
gcloud init
-
Créez des identifiants d'authentification locaux pour votre compte Google :
gcloud auth application-default login
Pour en savoir plus, consultez les sections sur Configurer l'authentification pour un environnement de développement local.
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.
- Installez Google Cloud CLI.
-
Pour initialiser gcloudCLI, exécutez la commande suivante :
gcloud init
-
Créez des identifiants d'authentification locaux pour votre compte Google :
gcloud auth application-default login
Pour en savoir plus, consultez les sections sur Configurer l'authentification pour un environnement de développement local.
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.
- Installez Google Cloud CLI.
-
Pour initialiser gcloudCLI, exécutez la commande suivante :
gcloud init
-
Créez des identifiants d'authentification locaux pour votre compte Google :
gcloud auth application-default login
Pour en savoir plus, consultez les sections sur Configurer l'authentification pour un environnement de développement local.
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
-
Créer un clone de disque à partir d'un disque existant
Vous pouvez créer un clone de disque persistant à partir d'un disque persistant existant, même si le disque existant est associé à une instance de VM. Lorsque vous clonez un disque, vous créez un disque contenant toutes les données du disque source. Vous pouvez modifier les propriétés de ce clone, telles que la taille. Vous pouvez également supprimer le disque source sans risque de supprimer le clone.
La possibilité de cloner des disques est utile pour dupliquer des données de production à déboguer sans perturber la production, dupliquer des disques lors du scaling horizontal de vos VM et créer des instances dupliquées pour vérifier la sauvegarde de base de données. Vous pouvez également cloner des disques pour déplacer des données de disque non amorçable vers un nouveau projet. Pour les scénarios dans lesquels la protection des données est requise pour plus de résilience, telle que la sauvegarde et la reprise après sinistre, nous vous recommandons d'utiliser des instantanés standards plutôt que des clones de disque.
Si vous souhaitez capturer l'état d'un disque à différents intervalles, mais que vous n'avez pas besoin d'un nouveau disque pouvant être associé à chaque fois, envisagez d'utiliser des instantanés immédiats.
Bien qu'ils ne soient pas adaptés à la reprise après sinistre, les instantanés immédiats peuvent être moins gourmands en espace de stockage que si vous créez plusieurs clones du même disque. En effet, les instantanés immédiats sont des sauvegardes incrémentielles.
Si vous devez répliquer rapidement un disque, par exemple pour effectuer un débogage rapide, utilisez un clone de disque.
Découvrez d'autres options de sauvegarde de données dans Compute Engine.
Restrictions
- Le type de disque du clone doit être identique à celui du disque source.
- Vous ne pouvez pas créer de clone de disque zonal à partir d'un disque régional.
- Vous ne pouvez pas créer de clone de disque zonal d'un disque zonal existant dans une zone différente.
- La taille du clone doit être au moins égale à la taille du disque source. Si vous créez un clone à l'aide de la console Google Cloud, vous ne pouvez pas spécifier de taille de disque et le clone est de la même taille que le disque source.
- Si vous utilisez une clé de chiffrement fournie par le client ou une clé de chiffrement gérée par le client pour chiffrer le disque source, vous devez utiliser la même clé pour chiffrer le clone. Pour en savoir plus, consultez la section Créer un clone de disque source chiffré.
- Vous pouvez créer au maximum un clone d'un disque source donné ou ses clones toutes les 30 secondes.
- Vous pouvez disposer de 1 000 clones d'un disque source donné ou de ses clones simultanément.
Si vous dépassez cette limite, l'erreur
internalError
s'affiche. Toutefois, si vous créez un clone de disque et que vous le supprimez ultérieurement, le clone de disque supprimé n'est pas inclus dans cette limite. - Une fois un disque cloné, les clones ultérieurs de ce disque ou de ses clones sont comptabilisés dans la limite de 1 000 clones simultanés pour le disque source d'origine et dans la limite de création d'un clone toutes les 30 secondes.
Messages d'erreur
Si vous dépassez les limites de fréquence de clonage, la requête échoue avec l'erreur suivante :
RATE LIMIT: ERROR: (gcloud.compute.disks.create) Could not fetch resource: - Operation rate exceeded for resource RESOURCE. Too frequent operations from the source resource.
Créer un clone de disque
Vous pouvez cloner un disque existant sur un nouveau disque à l'aide de la console Google Cloud, de Google Cloud CLI ou de l'API Compute Engine.Console
Dans la console Google Cloud, accédez à la page Disques.
Dans la liste des disques persistants zonaux, identifiez le disque que vous souhaitez cloner.
Cliquez sur le bouton de menu sous Actions et sélectionnez Cloner le disque.
Dans le panneau Cloner le disque, saisissez le nom du nouveau disque.
Sous Propriétés, vérifiez les autres détails du nouveau disque.
Cliquez sur Enregistrer.
gcloud
Dans gcloud CLI, exécutez la commande disks create
et spécifiez le paramètre --source-disk
. L'exemple suivant clone le disque source sur un nouveau disque dans un projet différent.
gcloud compute disks create projects/TARGET_PROJECT_ID/zones/ZONE/disks/TARGET_DISK_NAME \ --description="cloned disk" \ --source-disk=projects/SOURCE_PROJECT_ID/zones/ZONE/disks/SOURCE_DISK_NAME
Remplacez les éléments suivants :
TARGET_PROJECT_ID
: ID de projet pour le nouveau disque.ZONE
: zone de la source et du nouveau disque.TARGET_DISK_NAME
: nom du nouveau disque.SOURCE_PROJECT_ID
: ID de projet de la VM source.SOURCE_DISK_NAME
: nom du disque source.
Terraform
Pour créer un clone de disque, utilisez la ressource google_compute_disk
.
Pour savoir comment appliquer ou supprimer une configuration Terraform, consultez la page Commandes Terraform de base.
Go
Go
Avant d'essayer cet exemple, suivez les instructions de configuration pour Go 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 Go 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.
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éthode compute.disks.insert
. Dans le corps de la requête, spécifiez les paramètres name
et sourceDisk
. Le clone hérite de toutes les autres propriétés du disque source que vous n'avez pas renseignées. L'exemple suivant clone le disque source sur un nouveau disque dans un projet différent.
POST https://compute.googleapis.com/compute/v1/projects/TARGET_PROJECT_ID/zones/ZONE/disks { "name": "TARGET_DISK_NAME" "sourceDisk": "projects/SOURCE_PROJECT_ID/zones/ZONE/disks/SOURCE_DISK_NAME" }
Remplacez les éléments suivants :
TARGET_PROJECT_ID
: ID de projet pour le nouveau disque.ZONE
: zone de la source et du nouveau disque.TARGET_DISK_NAME
: nom du nouveau disque.SOURCE_PROJECT_ID
: ID de projet de la VM source.SOURCE_DISK_NAME
: nom du disque source.
Créer un clone de disque régional à partir d'un disque zonal
Vous pouvez créer un disque régional en clonant un disque zonal existant. Pour migrer un disque zonal vers un disque régional, nous vous recommandons cette option plutôt que de créer un instantané du disque zonal et de restaurer l'instantané sur un nouveau disque régional.
Restrictions
Pour créer un clone de disque régional à partir d'un disque zonal, l'une des zones dupliquées du clone doit correspondre à la zone du disque source.Le clone de disque régional est utilisable en moyenne dans les trois minutes suivant sa création. Cependant, il faut plusieurs dizaines de minutes au disque pour être entièrement répliqué et atteindre un état dans lequel l'objectif de point de récupération (RPO, Recovery Point Objective) est proche de zéro.
La fréquence à laquelle vous pouvez cloner un espace disque est limitée. Vous pouvez créer au maximum 1 To de disque cloné toutes les 15 minutes, avec une limite de requête d'utilisation intensive de 257 To.
Console
Dans la console Google Cloud, accédez à la page Disques.
Dans la liste des disques persistants zonaux, identifiez le disque que vous souhaitez cloner.
Cliquez sur le bouton de menu sous Actions et sélectionnez Cloner le disque.
Dans le panneau Cloner le disque, saisissez le nom du nouveau disque.
Pour l'emplacement, sélectionnez Régional, puis sélectionnez deux zones d'instances dupliquées comme nouveau disque régional.
Sous Propriétés, vérifiez les autres détails du nouveau disque.
Cliquez sur Enregistrer.
gcloud
Créez un clone de disque régional à partir d'un disque zonal, puis indiquez le disque source ainsi deux zones dupliquées pour le nouveau disque régional en utilisant la commande gcloud
compute disks create
suivante.
L'exemple suivant suppose que les disques source et cible se trouvent dans le même projet.
gcloud compute disks create TARGET_DISK_NAME \ --description="zonal to regional cloned disk" \ --region=REGION_1 \ --source-disk=SOURCE_DISK_NAME \ --source-disk-zone=REGION_1_ZONE_1 \ --replica-zones=REGION_1_ZONE_1,REGION_1_ZONE_2 \ --project=PROJECT_ID
Remplacez les éléments suivants :
TARGET_DISK_NAME
: nom du nouveau disque régional.REGION_1
: région du nouveau disque régional.SOURCE_DISK_NAME
: nom du disque zonal à cloner.REGION_1_ZONE_1
: une des deux zones dupliquées pour le nouveau disque régional.REGION_1_ZONE_2
: autre zone d'instances dupliquées du nouveau disque régional.PROJECT_ID
: ID du projet.
Terraform
Pour créer un clone de disque régional à partir d'un disque zonal, vous pouvez éventuellement créer un instantané du disque zonal, puis cloner l'instantané. Pour ce faire, utilisez les ressources suivantes :
Pour savoir comment appliquer ou supprimer une configuration Terraform, consultez la page Commandes Terraform de base.
Go
Go
Avant d'essayer cet exemple, suivez les instructions de configuration pour Go 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 Go 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.
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
Fournissez le disque source et deux zones dupliquées pour le nouveau disque régional. L'exemple suivant suppose que les disques source et cible se trouvent dans le même projet.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_1/disks { "name": "TARGET_DISK_NAME" "sourceDisk": "projects/PROJECT_ID/zones/REGION_1_ZONE_1/disks/SOURCE_DISK_NAME" "replicaZone": "REGION_1_ZONE_1,REGION_1_ZONE_2" }
Remplacez les éléments suivants :
PROJECT_ID
: ID du projet.REGION_1
: région du nouveau disque régional.TARGET_DISK_NAME
: nom du nouveau disque régional.REGION_1_ZONE_1
: une des deux zones dupliquées pour le nouveau disque régional.SOURCE_DISK_NAME
: nom du disque zonal à cloner.REGION_1_ZONE_2
: autre zone d'instances dupliquées du nouveau disque régional.
Créer un clone de disque source chiffré
Si vous utilisez une clé de chiffrement fournie par le client pour chiffrer votre disque source, vous devez également utiliser la même clé pour chiffrer le clone.Console
Dans la console Google Cloud, accédez à la page Disques.
Dans la liste des disques persistants zonaux, identifiez le disque que vous souhaitez cloner.
Cliquez sur le bouton de menu sous Actions et sélectionnez Cloner le disque.
Dans le panneau Cloner le disque, saisissez le nom du nouveau disque.
Indiquez la clé de chiffrement du disque source sous Déchiffrement et chiffrement.
Sous Propriétés, vérifiez les autres détails du nouveau disque.
Cliquez sur Enregistrer.
gcloud
Fournissez la clé de chiffrement du disque source à l'aide de l'option --csek-key-file
lorsque vous créez le clone de disque. Si vous utilisez une clé encapsulée en RSA, utilisez le composant gcloud beta
:
gcloud beta compute disks create projects/TARGET_PROJECT_ID/zones/ZONE/disks/TARGET_DISK_NAME \ --description="cloned disk" \ --source-disk=projects/SOURCE_PROJECT_ID/zones/ZONE/disks/SOURCE_DISK_NAME \ --csek-key-file example-key-file.json
Remplacez les éléments suivants :
TARGET_PROJECT_ID
: ID de projet pour le nouveau disque.ZONE
: zone de la source et du nouveau disque.TARGET_DISK_NAME
: nom du nouveau disque.SOURCE_PROJECT_ID
: ID de projet de la VM source.SOURCE_DISK_NAME
: nom du disque source.
Go
Go
Avant d'essayer cet exemple, suivez les instructions de configuration pour Go 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 Go 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.
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
Indiquez la clé de chiffrement du disque source à l'aide de la propriété diskEncryptionKey
.
POST https://compute.googleapis.com/compute/beta/projects/TARGET_PROJECT_ID/zones/ZONE/disks { "name": "TARGET_DISK_NAME" "sourceDisk": "projects/SOURCE_PROJECT_ID/zones/ZONE/disks/SOURCE_DISK_NAME" "diskEncryptionKey": { "rsaEncryptedKey": "ieCx/NcW06PcT7Ep1X6LUTc/hLvUDYyzSZPPVCVPTVEohpeHASqC8uw5TzyO9U+Fka9JFHz0mBibXUInrC/jEk014kCK/NPjYgEMOyssZ4ZINPKxlUh2zn1bV+MCaTICrdmuSBTWlUUiFoDD6PYznLwh8ZNdaheCeZ8ewEXgFQ8V+sDroLaN3Xs3MDTXQEMMoNUXMCZEIpg9Vtp9x2oeQ5lAbtt7bYAAHf5l+gJWw3sUfs0/Glw5fpdjT8Uggrr+RMZezGrltJEF293rvTIjWOEB3z5OHyHwQkvdrPDFcTqsLfh+8Hr8g+mf+7zVPEC8nEbqpdl3GPv3A7AwpFp7MA==" }, }
Remplacez les éléments suivants :
TARGET_PROJECT_ID
: ID de projet pour le nouveau disque.ZONE
: zone de la source et du nouveau disque.TARGET_DISK_NAME
: nom du nouveau disque.SOURCE_PROJECT_ID
: ID de projet de la VM source.SOURCE_DISK_NAME
: nom du disque source.
Si vous utilisez une clé de chiffrement gérée par le client pour chiffrer votre disque source, vous devez également utiliser la même clé pour chiffrer le clone.
Console
Compute Engine chiffre automatiquement le clone à l'aide de la clé de chiffrement du disque source.
gcloud
Fournissez la clé du disque source à l'aide de l'option --kms-key
lorsque vous créez le clone de disque. Si vous utilisez une clé encapsulée en RSA, utilisez le composant gcloud beta
:
gcloud beta compute disks create projects/TARGET_PROJECT_ID/zones/ZONE/disks/TARGET_DISK_NAME \ --description="cloned disk" \ --source-disk=projects/SOURCE_PROJECT_ID/zones/ZONE/disks/SOURCE_DISK_NAME \ --kms-key projects/KMS_PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY
Remplacez les éléments suivants :
TARGET_PROJECT_ID
: ID de projet pour le nouveau disque.ZONE
: zone de la source et du nouveau disque.TARGET_DISK_NAME
: nom du nouveau disque.SOURCE_PROJECT_ID
: ID de projet de la VM source.SOURCE_DISK_NAME
: nom du disque source.KMS_PROJECT_ID
: ID du projet pour la clé de chiffrement.REGION
: région de la clé de chiffrement.KEY_RING
: trousseau de clés de la clé de chiffrement.KEY
: nom de la clé de chiffrement.
Go
Go
Avant d'essayer cet exemple, suivez les instructions de configuration pour Go 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 Go 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.
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
Fournissez la clé du disque source en utilisant la propriété kmsKeyName
lorsque vous créez le clone de disque.
POST https://compute.googleapis.com/compute/beta/projects/TARGET_PROJECT_ID/zones/ZONE/disks { "name": "TARGET_DISK_NAME" "sourceDisk": "projects/SOURCE_PROJECT_ID/zones/ZONE/disks/SOURCE_DISK_NAME" "diskEncryptionKey": { "kmsKeyName": "projects/KMS_PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY" }, }
Remplacez les éléments suivants :
TARGET_DISK_NAME
: nom du nouveau disque.SOURCE_PROJECT_ID
: ID de projet de la VM source.ZONE
: zone de la source et du nouveau disque.SOURCE_DISK_NAME
: nom du disque source.KMS_PROJECT_ID
: ID du projet pour la clé de chiffrement.REGION
: région de la clé de chiffrement.KEY_RING
: trousseau de clés de la clé de chiffrement.KEY
: nom de la clé de chiffrement.
Étape suivante
- Apprenez à utiliser des disques persistants.
- Apprenez à sauvegarder régulièrement vos disques à l'aide d'instantanés afin d'éviter toute perte de données inattendue.
- Découvrez comment utiliser des disques persistants régionaux pour effectuer une réplication synchrone entre deux zones.