Ce document explique comment activer la virtualisation imbriquée sur une instance de machine virtuelle (VM) et comment confirmer la possibilité de créer une VM imbriquée. Vous pouvez activer la virtualisation imbriquée sur une VM en utilisant l'une des méthodes suivantes :
Recommandation. Activer la virtualisation imbriquée directement sur une VM nouvelle ou existante en définissant le champ
enableNestedVirtualization
surtrue
lors de la création ou de la mise à jour de la VM, respectivement. Cette méthode est recommandée, car elle ne nécessite pas de créer une image personnalisée ni d'utiliser la clé de licence spéciale.Activer la virtualisation imbriquée à l'aide de la clé de licence spéciale. Pour cela, créez un disque de démarrage, créez une image personnalisée avec la clé de licence spéciale pour la virtualisation imbriquée, puis créez une VM qui utilise l'image personnalisée.
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 Google Cloud services et aux API.
Pour exécuter du code ou des exemples depuis un environnement de développement local, vous pouvez vous authentifier auprès de Compute Engine en sélectionnant l'une des options suivantes:
Select the tab for how you plan to use the samples on this page:
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
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.
-
Activer la virtualisation imbriquée directement sur une nouvelle VM
Autorisations requises pour cette tâche
Pour effectuer cette tâche, vous devez disposer des autorisations suivantes :
-
Pour activer la virtualisation imbriquée directement sur une nouvelle VM, vous avez besoin des autorisations
compute.instances.create
sur le projet, le dossier ou l'organisation.
Activez la virtualisation imbriquée directement sur une VM en procédant comme suit :
Créez une VM L1 avec la virtualisation imbriquée activée à l'aide de la commande gcloud compute instances create
suivante :
gcloud compute instances createVM_NAME \ --enable-nested-virtualization \ --zone=ZONE \ --min-cpu-platform="Intel Haswell"
Remplacez l'élément suivant :
VM_NAME
: nom de la nouvelle VM L1 avec la virtualisation imbriquée activéeZONE
: zone de la nouvelle VM L1 avec la virtualisation imbriquée activée
Créez une VM L1 avec la virtualisation imbriquée activée à l'aide de la méthode instances.insert
suivante :
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID /zones/ZONE /instances { ... "name": "VM_NAME ", ... "minCpuPlatform": "Intel Haswell", "advancedMachineFeatures": { "enableNestedVirtualization": true }, ... }
Remplacez l'élément suivant :
PROJECT_ID
: ID du projetZONE
: zone de la nouvelle VM L1 avec la virtualisation imbriquée activéeVM_NAME
: nom de la nouvelle VM L1 avec la virtualisation imbriquée activée
Activer la virtualisation imbriquée directement sur une VM existante
Autorisations requises pour cette tâche
Pour effectuer cette tâche, vous devez disposer des autorisations suivantes :
-
Pour activer la virtualisation imbriquée directement sur une nouvelle VM, vous avez besoin des autorisations
compute.instances.create
sur le projet, le dossier ou l'organisation.
Activez la virtualisation imbriquée sur une VM existante à l'aide de la méthode suivante :
Exportez les propriétés de la VM à l'aide de la commande
gcloud compute instances export
suivante :gcloud compute instances export
VM_NAME \ --destination=YAML_FILE_PATH \ --zone=ZONE Remplacez l'élément suivant :
VM_NAME
: nom de la VM à partir de laquelle exporter les propriétésYAML_FILE_PATH
: chemin d'accès et nom du fichier .yaml dans lequel enregistrer les données de configuration exportéesZONE
: zone contenant la VM
Dans le fichier de configuration de la VM enregistré dans FILE_PATH, mettez à jour la valeur de
enableNestedVirtualization
. Si la valeur ne figure dans le fichier, ajoutez l'élément suivant :advancedMachineFeatures: enableNestedVirtualization: true
Mettez à jour la VM avec la valeur de
enableNestedVirtualization
en utilisant la commandegcloud compute instances update-from-file
suivante :gcloud compute instances update-from-file
VM_NAME \ --source=FILE_PATH \ --most-disruptive-allowed-action=RESTART \ --zone=ZONE Remplacez l'élément suivant :
VM_NAME
: nom de la VM à mettre à jourFILE_PATH
: chemin d'accès au fichier de configuration de la VM mis à jourZONE
: zone contenant la VM à mettre à jour
Mettez à jour la valeur pour enableNestedVirtualization
à l'aide de la méthode instances.update
suivante :
PUT https://compute.googleapis.com/compute/v1/projects/PROJECT_ID /zones/ZONE /instances/VM_NAME ?most_disruptive_allowed_action=RESTART { ⋮ "advanced_machine_features": { ⋮ "enableNestedVirtualization": "true" }, ⋮ }
Remplacez l'élément suivant :
PROJECT_ID
: ID du projetZONE
: zone contenant la VMVM_NAME
: nom de la VM à partir de laquelle exporter les propriétés
Activer la virtualisation imbriquée à l'aide de la clé de licence spéciale
Autorisations requises pour cette tâche
Pour effectuer cette tâche, vous devez disposer des autorisations suivantes :
- Autorisations
compute.disks.create
sur le projet, le dossier ou l'organisation - Autorisations
compute.images.create
sur le projet, le dossier ou l'organisation - Autorisations
compute.disks.delete
sur le projet, le dossier ou l'organisation - Autorisations
compute.instances.create
sur le projet, le dossier ou l'organisation
Vous pouvez activer la virtualisation imbriquée sur la VM en créant une image personnalisée avec une clé de licence spéciale qui active VMX sur la VM L1. La clé de licence n'entraîne pas de frais supplémentaires.
Créez un disque de démarrage à partir d'une image publique ou d'une image personnalisée. L'exemple suivant utilise
debian-cloud
pour le projet d'image etdebian-10
pour la famille d'images. Si vous disposez déjà d'une instance de VM avec un disque existant, vous pouvez ignorer cette étape.gcloud compute disks create
DISK_NAME \ --zone=ZONE \ --image-project=debian-cloud \ --image-family=debian-10Remplacez l'élément suivant :
DISK_NAME
: le nom du nouveau disque.ZONE
: zone dans laquelle vous souhaitez créer le disque
POST https://compute.googleapis.com/compute/v1/projects/
PROJECT_ID /zones/ZONE /disks { ... "name": "DISK_NAME ", "sourceImage": "projects/debian-cloud/global/images/family/debian-10", ... }Remplacez les éléments suivants :
PROJECT_ID
: ID du projetZONE
: zone dans laquelle vous souhaitez créer le disqueDISK_NAME
: le nom du nouveau disque.
Créez une image personnalisée avec la clé de licence spéciale requise pour la virtualisation imbriquée.
gcloud compute images create
IMAGE_NAME \ --source-diskDISK_NAME \ --source-disk-zoneZONE \ --licenses "https://www.googleapis.com/compute/v1/projects/vm-options/global/licenses/enable-vmx"Remplacez l'élément suivant :
IMAGE_NAME
: nom de la nouvelle imageDISK_NAME
: nom du disque précédemment créé.ZONE
: zone dans laquelle vous souhaitez créer l'image
POST https://compute.googleapis.com/compute/v1/projects/
PROJECT_ID /global/images { ... "licenses": ["projects/vm-options/global/licenses/enable-vmx"], "name": "IMAGE_NAME ", "sourceDisk": "zones/ZONE /disks/DISK_NAME ", ... }Remplacez les éléments suivants :
PROJECT_ID
: ID du projetIMAGE_NAME
: nom de la nouvelle imageZONE
: zone dans laquelle vous souhaitez créer l'imageDISK_NAME
: nom du disque précédemment créé.
Vous pouvez éventuellement supprimer le disque source après avoir créé l'image avec la licence spéciale.
gcloud compute disks delete
DISK_NAME --zone=ZONE Remplacez l'élément suivant :
DISK_NAME
: nom du disque à supprimerZONE
: zone contenant le disque à supprimer
DELETE https://compute.googleapis.com/compute/v1/projects/
PROJECT_ID /zones/ZONE /disks/DISK_NAME Remplacez les éléments suivants :
PROJECT_ID
: ID du projetZONE
: zone contenant le disque à supprimerDISK_NAME
: nom du disque à supprimer
Créez une VM qui utilise la nouvelle image avec la licence spéciale. La configuration minimale de la plate-forme du processeur doit être
"Intel Haswell"
.gcloud compute instances create
VM_NAME \ --zone=ZONE \ --min-cpu-platform "Intel Haswell" \ --imageIMAGE_NAME Remplacez les éléments suivants :
VM_NAME
: nom de la VMZONE
: zone dans laquelle créer la VMIMAGE_NAME
: nom de l'image précédemment créée
POST https://compute.googleapis.com/compute/v1/projects/
PROJECT_ID /zones/ZONE /instances { ... "name": "VM_NAME ", "minCpuPlatform": "Intel Haswell", "disks": [ { "initializeParams": { "sourceImage": "IMAGE_NAME " } } ] ... }Remplacez les éléments suivants :
PROJECT_ID
: ID du projetVM_NAME
: nom de la VMZONE
: zone dans laquelle créer la VMIMAGE_NAME
: nom de l'image précédemment créée
Vérifier que la virtualisation imbriquée est activée sur la VM
Connectez-vous à l'instance de VM.
gcloud compute ssh
VM_NAME Remplacez
VM_NAME
par le nom de la VM à laquelle se connecter.Vérifiez que la virtualisation imbriquée est activée. Toute réponse autre que
0
confirme que la virtualisation imbriquée est activée.grep -cw vmx /proc/cpuinfo