Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
Linux
Ce document décrit la compatibilité de Compute Engine avec la virtualisation imbriquée.
La virtualisation imbriquée vous permet d'exécuter des instances de machines virtuelles (VM) dans d'autres VM afin de créer vos propres environnements de virtualisation. Pour être compatible avec la virtualisation imbriquée, Compute Engine ajoute des instructions Intel VT-x aux VM. Ainsi, lorsque vous créez une VM, l'hyperviseur déjà présent sur cette VM peut exécuter des VM supplémentaires.
Les VM Compute Engine s'exécutent sur un hôte physique doté de l'hyperviseur basé sur KVM à sécurité renforcée de Google.
Avec la virtualisation imbriquée, l'hôte physique et son hyperviseur constituent un environnement de niveau 0 (L0). L'environnement L0 peut héberger plusieurs VM de niveau 1 (L1). Sur chaque VM L1, un autre hyperviseur est utilisé pour installer les VM de niveau 2 (L2).
La figure 1 montre la relation entre l'hôte physique, les VM L1 et les VM L2.
Figure 1. Hôte physique L0 avec des VM L1 et des VM L2.
Cas d'utilisation
Vous pouvez envisager d'utiliser la virtualisation imbriquée dans les scénarios suivants :
Vous avez des VM que vous ne pouvez pas exécuter sur Compute Engine. Par exemple, vous disposez d'une solution de reprise après sinistre pour une charge de travail sur site exécutée sur des VM qui basculent vers des VM Compute Engine. L'exécution de la virtualisation imbriquée vous fait gagner du temps, car vous n'avez pas besoin de transférer vos VM vers Compute Engine.
Vous disposez d'un framework de validation logicielle que vous utilisez pour tester et valider les nouvelles versions d'un package logiciel sur plusieurs versions de systèmes d'exploitation différents. L'utilisation de la virtualisation imbriquée vous permet d'éviter de convertir et de gérer une bibliothèque d'images Compute Engine.
Considérations sur les performances
Même avec la virtualisation imbriquée assistée par matériel, les VM imbriquées peuvent enregistrer une baisse de performances d'au moins 10 % pour les charges de travail liées au processeur. La baisse peut être supérieure à 10 % pour les charges de travail associées aux charges d'entrée/sortie.
Restrictions
Les VM L1 sont soumises aux restrictions suivantes :
Le seul hyperviseur compatible avec une VM L1 est une KVM Linux. Microsoft Hyper-V n'est pas accepté.
Si vous rencontrez des problèmes lors de la création d'une VM pour laquelle la virtualisation imbriquée est activée ou lors de la création de VM imbriquées, consultez la page Résoudre les problèmes liés à la virtualisation imbriquée.
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 2025/09/04 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Difficile à comprendre","hardToUnderstand","thumb-down"],["Informations ou exemple de code incorrects","incorrectInformationOrSampleCode","thumb-down"],["Il n'y a pas l'information/les exemples dont j'ai besoin","missingTheInformationSamplesINeed","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2025/09/04 (UTC)."],[[["\u003cp\u003eNested virtualization in Compute Engine allows running virtual machines (VMs) inside other VMs, enabling the creation of custom virtualization environments.\u003c/p\u003e\n"],["\u003cp\u003eCompute Engine uses a security-hardened, KVM-based hypervisor at level 0 (L0), which hosts level 1 (L1) VMs, each capable of running another hypervisor for level 2 (L2) VMs.\u003c/p\u003e\n"],["\u003cp\u003eNested virtualization can be useful for running VMs incompatible with Compute Engine or for testing software on various operating systems without managing numerous Compute Engine images.\u003c/p\u003e\n"],["\u003cp\u003eNested VMs may experience a performance decrease of 10% or more, especially in CPU or input/output-bound workloads, and certain VM types are not compatible.\u003c/p\u003e\n"],["\u003cp\u003eEnabling nested virtualization involves checking constraints, creating an L1 VM with the feature enabled, and then creating the nested L2 VM.\u003c/p\u003e\n"]]],[],null,["# About nested virtualization\n\nLinux\n\n*** ** * ** ***\n\nThis document describes Compute Engine support for nested virtualization.\nNested virtualization lets you run virtual machine (VM) instances inside of\nother VMs so you can create your own virtualization environments. To support\nnested virtualization, Compute Engine adds\n[Intel Virtualization Technology (VT-x)](https://en.wikipedia.org/wiki/X86_virtualization#Intel_virtualization_(VT-x))\ninstructions to VMs, so when you create a VM, the hypervisor that is already on\nthat VM can run additional VMs.\n\nCompute Engine VMs run on a physical host that has [Google's\nsecurity-hardened, KVM-based hypervisor](https://cloud.google.com/blog/products/gcp/7-ways-we-harden-our-kvm-hypervisor-at-google-cloud-security-in-plaintext).\nWith nested virtualization, the physical host and its hypervisor are the level 0\n(L0) environment. The L0 environment can host multiple level 1 (L1) VMs. On each\nL1 VM is another hypervisor, which is used to install the level 2 (L2) VMs.\nFigure 1 shows the relationship between the physical host, the L1 VMs, and the\nL2 VMs:\n[](/static/compute/images/nested-virtualization-diagram.svg) **Figure 1.** L0 physical host with L1 VMs and L2 VMs.\n\nUse cases\n---------\n\nScenarios where you might consider using nested virtualization include the\nfollowing:\n\n- You have VMs that you can't run on Compute Engine: For example, you\n might have a disaster recovery solution for an on-premises workload that is\n running on VMs that fail over to Compute Engine VMs. Running\n nested virtualization might save you time that you would use to port\n your VMs to Compute Engine.\n\n- You have a software-validation framework that you use to test and validate new\n versions of a software package on numerous versions of different OSes: Using\n nested virtualization lets you avoid converting and managing a library of\n Compute Engine images.\n\nPerformance considerations\n--------------------------\n\nEven with hardware-assisted nested virtualization, nested VMs might experience a\n10% or greater decrease in performance for workloads that are CPU-bound and\npossibly greater than a 10% decrease for workloads that are input/output bound.\n\nRestrictions\n------------\n\nL1 VMs have the following restrictions:\n\n- The only hypervisor supported in an L1 VM is Linux KVM; Microsoft Hyper-V\n isn't supported.\n\n- You can't use the following VMs:\n\n - E2 VMs\n\n - [Memory-optimized VMs](/compute/docs/machine-resource#memory-optimized_machine_family_guide)\n\n - VMs powered by [AMD and Arm processors](/compute/docs/cpu-platforms)\n\n For information about the processors supported in each zone, see\n [Available regions and zones](/compute/docs/regions-zones#available).\n\nL2 VMs have the following restrictions:\n\n- For licensed operating systems, you must [bring your own licenses](/compute/docs/nodes/bringing-your-own-licenses).\n\nUsing nested virtualization\n---------------------------\n\nTo use nested virtualization, complete the following steps:\n\n1. [Check whether the nested virtualization constraint is\n disabled](/compute/docs/instances/nested-virtualization/managing-constraint)\n\n2. [Create an L1 VM that has nested virtualization\n enabled](/compute/docs/instances/nested-virtualization/enabling)\n\n3. [Create a nested L2\n VM](/compute/docs/instances/nested-virtualization/creating-nested-vms)\n\nIf you run into any issues while creating a VM that has nested virtualization\nenabled or creating nested VMs, see [Troubleshoot nested virtualization](/compute/docs/troubleshooting/troubleshooting-nested-vms)."]]