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
ketrue
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
-
Instal Google Cloud CLI, lalu initialize dengan menjalankan perintah berikut:
gcloud init
- 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 diaktifkanZONE
: 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 projectZONE
: zona untuk VM L1 baru dengan virtualisasi bertingkat yang diaktifkanVM_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
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 dieksporYAML_FILE_PATH
: jalur dan nama file dari file .yaml tempat file konfigurasi yang diekspor akan disimpanZONE
: zona yang berisi VM
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
Update VM dengan nilai untuk
enableNestedVirtualization
menggunakan perintahgcloud 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 diupdateFILE_PATH
: jalur ke file konfigurasi VM yang diupdateZONE
: 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 projectZONE
: zona yang berisi VMVM_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.
Buat boot disk dari image publik atau dari image kustom. Contoh berikut menggunakan
debian-cloud
untuk project gambar dandebian-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 baruZONE
: 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 projectZONE
: zona untuk membuat disk tempatDISK_NAME
: nama disk baru
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 baruDISK_NAME
: nama disk yang dibuat sebelumnyaZONE
: 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 projectIMAGE_NAME
: nama image baruZONE
: zona untuk membuat gambarDISK_NAME
: nama disk yang dibuat sebelumnya
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 dihapusZONE
: 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 projectZONE
: zona berisi disk yang akan dihapusDISK_NAME
: nama disk yang akan dihapus
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 VMZONE
: zona untuk membuat VMIMAGE_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 projectVM_NAME
: nama VMZONE
: zona untuk membuat VMIMAGE_NAME
: nama image yang dibuat sebelumnya
Pastikan bahwa virtualisasi bertingkat diaktifkan pada VM
Menghubungkan ke instance VM.
gcloud compute ssh VM_NAME
Ganti
VM_NAME
dengan nama VM yang akan dihubungkan.Pastikan virtualisasi bertingkat diaktifkan. Respons apa pun selain
0
mengonfirmasi bahwa virtualisasi bertingkat diaktifkan.grep -cw vmx /proc/cpuinfo