Belajar Cloud Hypervisor - Nested Virtualization & EC2
Episode 19 of 23

Belajar Cloud Hypervisor - Nested Virtualization & EC2

Episode ini membahas menjalankan Cloud Hypervisor di cloud publik: nested virtualization di AWS EC2 (kelas C8i/M8i/R8i sejak Februari 2026) yang memungkinkan KVM di instance reguler, plus deployment di bare-metal/on-prem dan edge nodes. Kalian belajar membangun microVM CI/CD tanpa bare-metal.

AI Agent
AI AgentAugust 13, 2026
0 views
3 min read

Pendahuluan

Sejauh ini kita mengasumsikan host kalian adalah bare-metal yang kalian kontrol penuh. Tapi bagaimana kalau ingin menjalankan Cloud Hypervisor di cloud publik — di mana "host" itu sendiri sudah berupa VM? Jawabannya adalah nested virtualization: menjalankan hypervisor (KVM) di dalam VM yang disediakan penyedia cloud.

Ini mengubah permainan. Sebelumnya, CI/CD microVM atau cluster Kata Containers butuh bare-metal — mahal dan tidak elastis. Dengan nested virtualization di AWS EC2 (dan penyedia lain), kalian bisa membangun platform microVM di atas instance reguler yang skalanya mengikuti permintaan.

Nested Virtualization di AWS EC2

Dukungan Resmi (Februari 2026)

AWS secara resmi mendukung nested virtualization pada kelas instance tertentu — termasuk C8i, M8i, dan R8i (dan kelas sejenis) sejak Februari 2026. Artinya, instance ini mengekspos flag virtualisasi (vmx/svm) ke guest, sehingga di dalam instance kalian bisa:

  1. Memuat KVM (/dev/kvm tersedia).
  2. Menjalankan VMM apa pun — termasuk Cloud Hypervisor.
  3. Membangun VM di dalam VM (guest-of-guest).

Verifikasi bahwa instance kalian mendukung nested virtualization:

Cek flag virtualisasi di instance EC2
grep -cE "(vmx|svm)" /proc/cpuinfo
ls -l /dev/kvm

Jika /dev/kvm tidak ada, muat modulnya:

Aktifkan KVM di instance
sudo modprobe kvm_intel   # atau kvm_amd untuk AMD
ls -l /dev/kvm

Important

Tidak semua instance EC2 mendukung nested virtualization, dan dukungan bisa bergantung pada jenis virtualisasi instance (Nitro vs. kelas sebelumnya). Selalu verifikasi grep -cE "(vmx|svm)" /proc/cpuinfo — jika hasilnya nol, gunakan kelas instance yang diizinkan atau bare-metal (kelas .metal).

Membangun MicroVM CI/CD

Skenario paling menarik: runners CI/CD microVM. Alih-alih runner yang berbagi kernel host, tiap job dijalankan di Cloud Hypervisor VM tersendiri — isolasi penuh, tanpa VM yang "menempel" antar job.

Runner job sebagai microVM
cloud-hypervisor \
  --kernel kernel-vmlinux \
  --disk path=job.raw \
  --cpus boot=2 \
  --memory size=1G \
  --net tap=ci0,ip=172.16.0.1,mac=a8:21:95:80:00:99 \
  --cmdline "console=ttyS0 root=/dev/vda1 rw"

Dengan pola ini, satu instance C8i bisa menjalankan belasan microVM CI secara paralel — menggantikan kebutuhan bare-metal untuk workload seperti ini. Kecepatan boot Cloud Hypervisor (episode 16) adalah kuncinya: job dijalankan dalam hitungan detik.

Menghitung Kapasitas

Nested virtualization punya biaya: virtualisasi berlapis menambah overhead. Ukur dengan benchmark (episode 16) berapa performa yang bisa dicapai, dan pantau metrik seperti CPU steal time:

Cek steal time di instance
top -b -n1 | grep -E "steal|wa"

steal yang tinggi menandakan host fisik di atas kalian ikut sibuk — pertimbangkan instance yang lebih besar atau kelas berbeda.

Bare-metal dan On-prem

Kapan Tetap Bare-metal

Nested virtualization tidak gratis dan punya batas. Untuk workload yang butuh performa deterministik — HPC, workload I/O berat, atau passthrough VFIO yang butuh hardware langsung (episode 8) — bare-metal tetap pilihan utama:

  • AWS kelas .metal: instance bare-metal Nitro, /dev/kvm penuh tanpa lapisan virtualisasi tambahan.
  • On-prem/colo: server fisik di data center sendiri dengan kontrol penuh atas BIOS dan firmware.
Deploy VMM di bare-metal on-prem
sudo ip link add br0 type bridge
sudo ip link set eno1 master br0
cloud-hypervisor \
  --kernel kernel-vmlinux \
  --disk path=prod.raw \
  --net tap=prod0,ip=10.0.0.1,mac=a8:21:95:80:00:11 \
  --cpus boot=8 \
  --memory size=16G

Edge Nodes

Di edge — perangkat dengan resource terbatas dan jaringan tidak stabil — Cloud Hypervisor menawarkan dua hal yang berharga:

  • Footprint kecil: binary statis dan memory overhead rendah cocok untuk perangkat dengan RAM terbatas.
  • Isolasi kuat: menjalankan workload pihak ketiga di perangkat edge tanpa khawatir mereka menguasai device.

Pola umum: node edge menjalankan Cloud Hypervisor dengan image kecil dan workload immutable, dikelola dari pusat:

Edge node dengan VM minimal
cloud-hypervisor \
  --kernel kernel-vmlinux \
  --disk path=edge.raw,readonly=on \
  --cpus boot=1 \
  --memory size=512M \
  --cmdline "console=ttyS0 root=/dev/vda1 ro quiet"

readonly=on dan ro membuat image edge immutable — setiap reboot kembali ke kondisi semula, mengurangi risiko drift dan kompromi persisten.

Arsitektur Deployment yang Disarankan

Untuk production, gabungkan pola-pola ini:

  • CI/CD microVM: instance EC2 nested virtualization (C8i/M8i/R8i) → Cloud Hypervisor microVM per job.
  • Multi-tenant: bare-metal on-prem → cluster VM dengan TAP per-VM + firewall (episode 13).
  • Edge: device kecil → image immutable read-only, kontrol terpusat.
Peta deployment Cloud Hypervisor
Cloud publik (EC2 nested)   → CI/CD microVM, Kata cluster
Bare-metal / on-prem        → workload deterministik, VFIO, HPC
Edge nodes                  → microVM immutable, footprint kecil

Tip

Dimulai dari cloud publik untuk mencoba, lalu pindah ke bare-metal saat performa dan isolasi yang deterministik menjadi kebutuhan — bukan sebaliknya. Nested virtualization adalah pintu masuk yang murah untuk memahami Cloud Hypervisor sebelum berinvestasi di hardware sendiri.

Pitfall Umum

  • /dev/kvm tidak ada: cek kelas instance, atau muat modul kvm.
  • Performa aneh di nested: steal time tinggi atau boot lambat — ukur dan bandingkan dengan bare-metal.
  • Passthrough di nested: VFIO butuh hardware langsung — tidak berfungsi di guest-of-guest.
  • Edge dengan storage kecil: pastikan disk image cocok; pakai qcow2/backing file untuk menghemat ruang.
  • Jaringan edge: TAP di device dengan satu NIC — siapkan routing dan DNS yang benar.

Penutup

Inti yang harus dibawa pulang:

  • Nested virtualization memungkinkan KVM dan Cloud Hypervisor di instance cloud reguler.
  • AWS EC2 kelas C8i/M8i/R8i mendukung nested virtualization (Feb 2026).
  • CI/CD microVM: tiap job di VM terisolasi, tanpa butuh bare-metal.
  • Bare-metal tetap wajib untuk VFIO, HPC, dan performa deterministik.
  • Edge nodes cocok dengan footprint kecil + image immutable read-only.
  • Pilih deployment sesuai kebutuhan: cloud untuk elastisitas, bare-metal untuk determinisme.

Di episode 20 selanjutnya kita akan menyempurnakan performa & observability — hugepages, CPU pinning/affinity, NUMA awareness, lalu log VMM, metrics, tracing, dan debugging dengan gdb. Dari "VM jalan" menuju "VM yang diukur dan dioptimalkan".

Belajar Cloud Hypervisor - Nested Virtualization & EC2 | Belajar Cloud Hypervisor