Mengaktifkan virtualisasi bertingkat


Dokumen ini menjelaskan cara mengaktifkan virtualisasi bertingkat pada instance virtual machine (VM) dan cara mengonfirmasi bahwa Anda dapat membuat VM bertingkat. Aktifkan virtualisasi bertingkat di VM menggunakan salah satu metode berikut:

  • Direkomendasikan. Aktifkan virtualisasi bertingkat langsung di VM baru atau yang sudah ada dengan menetapkan kolom enableNestedVirtualization ke true saat membuat VM atau dengan mengupdate VM. Ini adalah metode yang direkomendasikan karena tidak memerlukan Anda membuat image kustom atau menggunakan kunci lisensi khusus.

  • Aktifkan virtualisasi bertingkat menggunakan kunci lisensi khusus dengan membuat disk booting, membuat image kustom dengan kunci lisensi virtualisasi bertingkat khusus, lalu membuat VM yang menggunakan image kustom.

Sebelum memulai

  • Jika Anda belum melakukannya, siapkan autentikasi. Autentikasi adalah proses verifikasi identitas Anda untuk mengakses layanan dan API Google Cloud. Untuk menjalankan kode atau contoh dari lingkungan pengembangan lokal, Anda dapat mengautentikasi ke Compute Engine dengan memilih salah satu opsi berikut:

    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

      Untuk menggunakan contoh REST API di halaman ini dalam lingkungan pengembangan lokal, gunakan kredensial yang Anda berikan ke gcloud CLI.

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

        gcloud init

      Untuk informasi selengkapnya, lihat Melakukan autentikasi untuk menggunakan REST dalam dokumentasi autentikasi Google Cloud.

Mengaktifkan virtualisasi bertingkat langsung di VM baru

Aktifkan virtualisasi bertingkat langsung di VM menggunakan prosedur berikut.

gcloud

Buat VM L1 dengan virtualisasi bertingkat yang diaktifkan menggunakan perintah gcloud compute instances create berikut:

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

Ganti kode berikut:

  • VM_NAME: nama VM L1 baru dengan virtualisasi bertingkat yang diaktifkan

  • ZONE: zona untuk VM L1 baru dengan virtualisasi bertingkat yang diaktifkan

REST

Buat VM L1 dengan virtualisasi bertingkat yang diaktifkan menggunakan metode instances.insert berikut:

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

Ganti kode berikut:

  • PROJECT_ID: ID project

  • ZONE: zona untuk VM L1 baru dengan virtualisasi bertingkat yang diaktifkan

  • VM_NAME: nama VM L1 baru dengan virtualisasi bertingkat yang diaktifkan

Mengaktifkan virtualisasi bertingkat langsung di VM yang ada

Aktifkan virtualisasi bertingkat di VM yang ada menggunakan prosedur berikut.

gcloud

  1. Ekspor properti VM menggunakan perintah gcloud compute instances export berikut:

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

    Ganti kode berikut:

    • VM_NAME: nama VM yang propertinya akan diekspor

    • YAML_FILE_PATH: jalur dan nama file file .yaml tempat menyimpan data konfigurasi yang diekspor

    • ZONE: zona yang berisi VM

  2. Dalam file konfigurasi VM yang disimpan di FILE_PATH, update nilai untuk enableNestedVirtualization. Jika nilai tidak ada dalam file, tambahkan hal berikut:

    advancedMachineFeatures:
      enableNestedVirtualization: true
    
  3. Perbarui VM dengan nilai untuk enableNestedVirtualization menggunakan perintah gcloud compute instances update-from-file berikut:

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

    Ganti kode berikut:

    • VM_NAME: nama VM yang diupdate

    • FILE_PATH: jalur ke file konfigurasi VM yang diperbarui

    • ZONE: zona yang berisi VM yang diupdate

REST

Perbarui nilai untuk enableNestedVirtualization menggunakan metode instances.update berikut:

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

Ganti kode berikut:

  • PROJECT_ID: ID project

  • ZONE: zona yang berisi VM

  • VM_NAME: nama VM yang propertinya akan diekspor

Mengaktifkan virtualisasi bertingkat menggunakan kunci lisensi khusus

Anda dapat mengaktifkan virtualisasi bertingkat di VM dengan membuat image kustom dengan kunci lisensi khusus yang mengaktifkan VMX di VM L1. Kunci lisensi tidak dikenai biaya tambahan.

  1. Buat disk booting dari image publik atau dari image kustom. Contoh berikut menggunakan debian-cloud untuk project image dan debian-10 untuk kelompok image. Jika Anda sudah memiliki instance VM dengan disk yang ada, Anda dapat melewati langkah ini.

    gcloud

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

    Ganti kode berikut:

    • DISK_NAME: nama disk baru

    • ZONE: zona tempat disk akan dibuat

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

    Ganti kode berikut:

    • PROJECT_ID: ID project

    • ZONE: zona tempat disk akan dibuat

    • DISK_NAME: nama disk baru

  2. Buat image kustom dengan kunci lisensi khusus yang diperlukan untuk virtualisasi bertingkat.

    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"
    

    Ganti kode berikut:

    • IMAGE_NAME: nama image baru

    • DISK_NAME: nama disk yang dibuat sebelumnya

    • ZONE: zona tempat membuat image

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

    Ganti kode berikut:

    • PROJECT_ID: ID project

    • IMAGE_NAME: nama image baru

    • ZONE: zona tempat membuat image

    • DISK_NAME: nama disk yang dibuat sebelumnya

  3. Secara opsional, hapus disk sumber setelah membuat image dengan lisensi khusus.

    gcloud

    gcloud compute disks delete DISK_NAME --zone=ZONE
    

    Ganti kode berikut:

    • DISK_NAME: nama disk yang akan dihapus

    • ZONE: zona yang berisi disk yang akan dihapus

    REST

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

    Ganti kode berikut:

    • PROJECT_ID: ID project

    • ZONE: zona yang berisi disk yang akan dihapus

    • DISK_NAME: nama disk yang akan dihapus

  4. Buat VM yang menggunakan image baru dengan lisensi khusus. Platform CPU minimum harus "Intel Haswell".

    gcloud

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

    Ganti kode berikut:

    • VM_NAME: nama VM

    • ZONE: zona untuk membuat VM

    • IMAGE_NAME: nama image yang dibuat sebelumnya

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

    Ganti kode berikut:

    • PROJECT_ID: ID project

    • VM_NAME: nama VM

    • ZONE: zona untuk membuat VM

    • IMAGE_NAME: nama image yang dibuat sebelumnya

Pastikan virtualisasi bertingkat diaktifkan di VM

  1. Hubungkan ke instance VM.

    gcloud compute ssh VM_NAME
    

    Ganti VM_NAME dengan nama VM yang akan dihubungkan.

  2. Pastikan virtualisasi bertingkat diaktifkan. Respons apa pun selain 0 akan mengonfirmasi bahwa virtualisasi bertingkat diaktifkan.

    grep -cw vmx /proc/cpuinfo
    

Langkah berikutnya