Abilita virtualizzazione nidificata


Questo documento descrive come attivare la virtualizzazione nidificata su un'istanza di una macchina virtuale (VM) e come verificare di poter creare una VM nidificata. Abilita nidificate la virtualizzazione su una VM mediante uno dei seguenti metodi:

  • Consigliato. Attiva la virtualizzazione nidificata direttamente su una VM nuova o esistente impostando il campo enableNestedVirtualization su true durante la creazione o l'aggiornamento della VM. Questo è il metodo consigliato perché non richiede di creare un'immagine personalizzata o di utilizzare la chiave di licenza speciale.

  • Abilita la virtualizzazione nidificata utilizzando la codice licenza speciale creando un di avvio rapido, creando un'immagine personalizzata con la speciale virtualizzazione nidificata codice licenza, quindi creando una VM che utilizza l'immagine personalizzata.

Prima di iniziare

  • Se non l'hai ancora fatto, configura l'autenticazione. L'autenticazione è la procedura mediante la quale la tua identità viene verificata per l'accesso alle API e ai servizi Google Cloud. Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti su Compute Engine come segue.

    Select the tab for how you plan to use the samples on this page:

    gcloud

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. REST

      Per utilizzare gli esempi dell'API REST in questa pagina in un ambiente di sviluppo locale, utilizza le credenziali fornite a gcloud CLI.

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

      Per ulteriori informazioni, vedi Esegui l'autenticazione per l'utilizzo di REST nella documentazione sull'autenticazione di Google Cloud.

Abilita la virtualizzazione nidificata direttamente su una nuova VM

Attiva la virtualizzazione nidificata direttamente su una VM utilizzando la procedura riportata di seguito.

gcloud

Crea una VM L1 con virtualizzazione nidificata abilitata utilizzando persone che seguo: gcloud compute instances create comando:

gcloud compute instances create VM_NAME \
  --enable-nested-virtualization \
  --zone=ZONE \
  --min-cpu-platform="Intel Haswell"

Sostituisci quanto segue:

  • VM_NAME: il nome della nuova VM L1 con la virtualizzazione nidificata abilitata

  • ZONE: la zona per la nuova VM L1 con elementi nidificati virtualizzazione abilitata

REST

Crea una VM L1 con virtualizzazione nidificata abilitata utilizzando persone che seguo: instances.insert :

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
  ...
  "name": "VM_NAME",
  ...
  "minCpuPlatform": "Intel Haswell",
  "advancedMachineFeatures": {
    "enableNestedVirtualization": true
  },
  ...
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID progetto

  • ZONE: la zona per la nuova VM L1 con la virtualizzazione nidificata abilitata

  • VM_NAME: il nome della nuova VM L1 con elementi nidificati virtualizzazione abilitata

Abilita la virtualizzazione nidificata direttamente su una VM esistente

Attiva la virtualizzazione nidificata su una VM esistente utilizzando la procedura riportata di seguito.

gcloud

  1. Esporta le proprietà della VM utilizzando il seguente comando gcloud compute instances export:

    gcloud compute instances export VM_NAME \
      --destination=YAML_FILE_PATH \
      --zone=ZONE
    

    Sostituisci quanto segue:

    • VM_NAME: il nome della VM da cui proprietà di esportazione

    • YAML_FILE_PATH: il percorso e il nome del file di un File .yaml in cui salvare i dati di configurazione esportati

    • ZONE: la zona che contiene la VM

  2. Nel file di configurazione della VM salvato in FILE_PATH, aggiorna il valore di enableNestedVirtualization. Se il valore non è in il file, aggiungi quanto segue:

    advancedMachineFeatures:
      enableNestedVirtualization: true
    
  3. Aggiorna la VM con il valore per enableNestedVirtualization utilizzando i seguenti gcloud compute instances update-from-file comando:

    gcloud compute instances update-from-file VM_NAME \
      --source=FILE_PATH \
      --most-disruptive-allowed-action=RESTART \
      --zone=ZONE
    

    Sostituisci quanto segue:

    • VM_NAME: il nome della VM da aggiornare

    • FILE_PATH: il percorso della VM aggiornata file di configurazione

    • ZONE: la zona che contiene la VM da aggiornare

REST

Aggiorna il valore di enableNestedVirtualization utilizzando il seguente codice Metodo instances.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"
  },
  ⋮
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto

  • ZONE: la zona che contiene la VM

  • VM_NAME: il nome della VM da cui esportare le proprietà

Attivare la virtualizzazione nidificata utilizzando il codice licenza speciale

Puoi abilitare la virtualizzazione nidificata su una VM creando un'immagine personalizzata che abilita VMX sulla VM L1. La chiave di licenza non comporta costi aggiuntivi.

  1. Crea un disco di avvio da un'immagine pubblica o da un'immagine personalizzata. Le seguenti esempio utilizza debian-cloud per il progetto immagine e debian-10 per famiglia di immagini. Se hai già un'istanza VM con un disco esistente, puoi saltare questo passaggio.

    gcloud

    gcloud compute disks create DISK_NAME \
      --zone=ZONE \
      --image-project=debian-cloud \
      --image-family=debian-10
    

    Sostituisci quanto segue:

    • DISK_NAME: il nome del nuovo disco

    • ZONE: la zona in cui creare il 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",
      ...
    }
    

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID progetto

    • ZONE: la zona in cui creare il disco

    • DISK_NAME: il nome del nuovo disco

  2. Crea un'immagine personalizzata con la codice licenza speciale richiesta per la virtualizzazione nidificata.

    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"
    

    Sostituisci quanto segue:

    • IMAGE_NAME: il nome della nuova immagine

    • DISK_NAME: il nome del cluster creato in precedenza disco

    • ZONE: la zona in cui creare l'immagine

    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",
      ...
    }
    

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID progetto

    • IMAGE_NAME: il nome della nuova immagine

    • ZONE: la zona in cui creare l'immagine

    • DISK_NAME: il nome del disco creato in precedenza

  3. Se vuoi, elimina il disco di origine dopo aver creato l'immagine con la licenza speciale.

    gcloud

    gcloud compute disks delete DISK_NAME --zone=ZONE
    

    Sostituisci quanto segue:

    • DISK_NAME: il nome del disco da eliminare

    • ZONE: la zona contenente il disco da eliminare

    REST

    DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/disks/DISK_NAME
    

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID progetto

    • ZONE: la zona contenente il disco da eliminare

    • DISK_NAME: il nome del disco da eliminare

  4. Crea una VM che utilizza la nuova immagine con la licenza speciale. Il numero minimo di CPU la piattaforma deve essere "Intel Haswell".

    gcloud

    gcloud compute instances create VM_NAME \
        --zone=ZONE \
        --min-cpu-platform "Intel Haswell" \
        --image IMAGE_NAME
    

    Sostituisci quanto segue:

    • VM_NAME: il nome della VM

    • ZONE: la zona in cui creare la VM

    • IMAGE_NAME: il nome del cluster creato in precedenza immagine

    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"
          }
        }
      ]
      ...
    }
    
    

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID progetto

    • VM_NAME: il nome della VM

    • ZONE: la zona in cui creare la VM

    • IMAGE_NAME: il nome del cluster creato in precedenza immagine

Verifica che la virtualizzazione nidificata sia abilitata sulla VM

  1. Connetterti all'istanza VM.

    gcloud compute ssh VM_NAME
    

    Sostituisci VM_NAME con il nome della VM da connettere a.

  2. Verifica che la virtualizzazione nidificata sia abilitata. Qualsiasi risposta diversa da 0 conferma che la virtualizzazione nidificata è attivata.

    grep -cw vmx /proc/cpuinfo
    

Passaggi successivi