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 pada VM menggunakan salah satu metode berikut:

  • Direkomendasikan. Aktifkan virtualisasi bertingkat langsung pada 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 mengharuskan Anda membuat image kustom atau menggunakan kunci lisensi khusus.

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

Sebelum memulai

  • Siapkan autentikasi, jika Anda belum melakukannya. Autentikasi adalah proses verifikasi identitas Anda untuk akses ke layanan dan API Google Cloud. Untuk menjalankan kode atau contoh dari lingkungan pengembangan lokal, Anda dapat melakukan autentikasi ke Compute Engine sebagai berikut.

    Pilih tab untuk melihat bagaimana Anda berencana menggunakan contoh di halaman ini:

    gcloud

    1. Instal Google Cloud CLI, lalu initialize dengan menjalankan perintah berikut:

      gcloud init
    2. Menetapkan region dan zona default.

    REST

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

      Instal Google Cloud CLI, lalu initialize dengan menjalankan perintah berikut:

      gcloud init

Mengaktifkan virtualisasi bertingkat langsung pada VM baru

Aktifkan virtualisasi bertingkat langsung pada 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 secara langsung pada VM yang ada

Aktifkan virtualisasi bertingkat pada VM yang ada dengan 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 dari file .yaml tempat file konfigurasi yang diekspor akan disimpan

    • ZONE: zona yang berisi VM

  2. Di file konfigurasi VM yang disimpan di FILE_PATH, perbarui nilai untuk enableNestedVirtualization. Jika nilai ini tidak ada dalam file, tambahkan kode berikut:

    advancedMachineFeatures:
      enableNestedVirtualization: true
    
  3. Update 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 diupdate

    • 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 digunakan untuk mengekspor properti

Mengaktifkan virtualisasi bertingkat menggunakan kunci lisensi khusus

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

  1. Buat boot disk dari image publik atau dari image kustom. Contoh berikut menggunakan debian-cloud untuk project gambar dan debian-10 untuk kelompok gambar. 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 untuk membuat disk tempat

    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 untuk membuat disk tempat

    • 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 untuk membuat gambar

    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 untuk membuat gambar

    • DISK_NAME: nama disk yang dibuat sebelumnya

  3. Jika ingin, 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 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 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 bahwa virtualisasi bertingkat diaktifkan pada VM

  1. Menghubungkan 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 mengonfirmasi bahwa virtualisasi bertingkat diaktifkan.

    grep -cw vmx /proc/cpuinfo
    

Langkah selanjutnya