En este documento se describe cómo habilitar la virtualización anidada en una instancia de máquina virtual (VM) y cómo confirmar que puedes crear una VM anidada. Habilita la virtualización anidada en una VM mediante uno de los siguientes métodos:
Recomendado. Habilita la virtualización anidada directamente en una máquina virtual nueva o en una que ya tengas. Para ello, asigna el valor
true
al campoenableNestedVirtualization
al crear la máquina virtual o actualízala. Este es el método recomendado porque no requiere que crees una imagen personalizada ni que uses la clave de licencia especial.Para habilitar la virtualización anidada, usa la clave de licencia especial creando un disco de arranque, una imagen personalizada con la clave de licencia especial de virtualización anidada y, a continuación, una VM que use la imagen personalizada.
Antes de empezar
-
Si aún no lo has hecho, configura la autenticación.
La autenticación verifica tu identidad para acceder a Google Cloud servicios y APIs. Para ejecutar código o ejemplos desde un entorno de desarrollo local, puedes autenticarte en Compute Engine seleccionando una de las siguientes opciones:
Select the tab for how you plan to use the samples on this page:
gcloud
-
Instala Google Cloud CLI. Después de la instalación, inicializa la CLI de Google Cloud ejecutando el siguiente comando:
gcloud init
Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.
- Set a default region and zone.
REST
Para usar las muestras de la API REST de esta página en un entorno de desarrollo local, debes usar las credenciales que proporciones a la CLI de gcloud.
Instala Google Cloud CLI. Después de la instalación, inicializa la CLI de Google Cloud ejecutando el siguiente comando:
gcloud init
Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.
Para obtener más información, consulta el artículo Autenticarse para usar REST de la documentación sobre autenticación de Google Cloud .
Habilitar la virtualización anidada directamente en una máquina virtual nueva
Habilita la virtualización anidada directamente en una VM siguiendo este procedimiento.
gcloud
Crea una VM de nivel 1 con la virtualización anidada habilitada mediante el siguiente
gcloud compute instances create
comando:gcloud compute instances create VM_NAME \ --enable-nested-virtualization \ --zone=ZONE \ --min-cpu-platform="Intel Haswell"
Haz los cambios siguientes:
VM_NAME
: el nombre de la nueva VM de nivel 1 con la virtualización anidada habilitadaZONE
: la zona de la nueva VM L1 con virtualización anidada habilitada
REST
Crea una VM de nivel 1 con la virtualización anidada habilitada mediante el siguiente
instances.insert
método:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { ... "name": "VM_NAME", ... "minCpuPlatform": "Intel Haswell", "advancedMachineFeatures": { "enableNestedVirtualization": true }, ... }
Haz los cambios siguientes:
PROJECT_ID
: el ID del proyectoZONE
: la zona de la nueva VM L1 con virtualización anidada habilitadaVM_NAME
: el nombre de la nueva VM de nivel 1 con la virtualización anidada habilitada
Habilitar la virtualización anidada directamente en una VM
Para habilitar la virtualización anidada en una VM, sigue este procedimiento.
gcloud
Exporta las propiedades de la VM con el siguiente comando
gcloud compute instances export
:gcloud compute instances export VM_NAME \ --destination=YAML_FILE_PATH \ --zone=ZONE
Haz los cambios siguientes:
VM_NAME
: el nombre de la VM de la que se van a exportar las propiedadesYAML_FILE_PATH
: la ruta y el nombre de archivo de un archivo .yaml en el que guardar los datos de configuración exportadosZONE
: la zona que contiene la VM
En el archivo de configuración de la VM que has guardado en FILE_PATH, actualiza el valor de
enableNestedVirtualization
. Si el valor no está en el archivo, añada lo siguiente:advancedMachineFeatures: enableNestedVirtualization: true
Actualiza la VM con el valor de
enableNestedVirtualization
mediante el siguientegcloud compute instances update-from-file
comando:gcloud compute instances update-from-file VM_NAME \ --source=FILE_PATH \ --most-disruptive-allowed-action=RESTART \ --zone=ZONE
Haz los cambios siguientes:
VM_NAME
: el nombre de la VM que se va a actualizarFILE_PATH
: la ruta al archivo de configuración de la VM actualizadoZONE
: la zona que contiene la VM que se va a actualizar
REST
Actualiza el valor de
enableNestedVirtualization
con el siguiente métodoinstances.update
: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" }, ⋮ }
Haz los cambios siguientes:
PROJECT_ID
: el ID del proyectoZONE
: la zona que contiene la VMVM_NAME
: el nombre de la VM de la que se van a exportar las propiedades
Habilitar la virtualización anidada con la clave de licencia especial
Puedes habilitar la virtualización anidada en una VM creando una imagen personalizada con una clave de licencia especial que habilite VMX en la VM de nivel 1. La clave de licencia no conlleva cargos adicionales.
Crea un disco de arranque a partir de una imagen pública o de una imagen personalizada. En el siguiente ejemplo se usa
debian-cloud
para el proyecto de imagen ydebian-10
para la familia de imágenes. Si ya tienes una instancia de VM con un disco, puedes saltarte este paso.gcloud
gcloud compute disks create DISK_NAME \ --zone=ZONE \ --image-project=debian-cloud \ --image-family=debian-10
Haz los cambios siguientes:
DISK_NAME
: el nombre del nuevo discoZONE
: la zona en la que se creará el disco.
REST
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", ... }
Haz los cambios siguientes:
PROJECT_ID
: el ID del proyectoZONE
: la zona en la que se creará el disco.DISK_NAME
: el nombre del nuevo disco
Crea una imagen personalizada con la clave de licencia especial que se necesita para la virtualización anidada.
gcloud
gcloud compute images create IMAGE_NAME \ --source-disk DISK_NAME \ --source-disk-zone ZONE \ --licenses "https://www.googleapis.com/compute/v1/projects/vm-options/global/licenses/enable-vmx"
Haz los cambios siguientes:
IMAGE_NAME
: el nombre de la nueva imagenDISK_NAME
: el nombre del disco creado anteriormenteZONE
: la zona en la que se creará la imagen
REST
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", ... }
Haz los cambios siguientes:
PROJECT_ID
: el ID del proyectoIMAGE_NAME
: el nombre de la nueva imagenZONE
: la zona en la que se creará la imagenDISK_NAME
: el nombre del disco creado anteriormente
También puedes eliminar el disco de origen después de crear la imagen con la licencia especial.
gcloud
gcloud compute disks delete DISK_NAME --zone=ZONE
Haz los cambios siguientes:
DISK_NAME
: el nombre del disco que se va a eliminarZONE
: la zona que contiene el disco que se va a eliminar.
REST
DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/disks/DISK_NAME
Haz los cambios siguientes:
PROJECT_ID
: el ID del proyectoZONE
: la zona que contiene el disco que se va a eliminar.DISK_NAME
: el nombre del disco que se va a eliminar
Crea una VM que use la nueva imagen con la licencia especial. La plataforma de CPU mínima debe ser
"Intel Haswell"
.gcloud
gcloud compute instances create VM_NAME \ --zone=ZONE \ --min-cpu-platform "Intel Haswell" \ --image IMAGE_NAME
Haz los cambios siguientes:
VM_NAME
: el nombre de la VMZONE
: la zona en la que se creará la VMIMAGE_NAME
: el nombre de la imagen creada anteriormente
REST
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { ... "name": "VM_NAME", "minCpuPlatform": "Intel Haswell", "disks": [ { "initializeParams": { "sourceImage": "IMAGE_NAME" } } ] ... }
Haz los cambios siguientes:
PROJECT_ID
: el ID del proyectoVM_NAME
: el nombre de la VMZONE
: la zona en la que se creará la VMIMAGE_NAME
: el nombre de la imagen creada anteriormente
Confirma que la virtualización anidada esté habilitada en la VM
Conéctate a la instancia de VM.
gcloud compute ssh VM_NAME
Sustituye
VM_NAME
por el nombre de la VM a la que quieras conectarte.Confirma que la virtualización anidada está habilitada. Si se devuelve cualquier otra respuesta,
0
se confirma que la virtualización anidada está habilitada.grep -cw vmx /proc/cpuinfo
Siguientes pasos
A menos que se indique lo contrario, el contenido de esta página está sujeto a la licencia Reconocimiento 4.0 de Creative Commons y las muestras de código están sujetas a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio web de Google Developers. Java es una marca registrada de Oracle o sus afiliados.
Última actualización: 2025-09-12 (UTC).
-