Belajar OpenBSD - Virtualization: vmm & vmd
Episode 18 of 23

Belajar OpenBSD - Virtualization: vmm & vmd

Menjalankan virtualisasi di OpenBSD: mengenal hypervisor tipe 1 vmm(4) dan daemon vmd(8), mengelola VM dengan vmctl, menginstal dan menjalankan VM OpenBSD atau Linux, membangun networking berbasis tap, serta memakai snapshot untuk pengujian yang aman.

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

Pendahuluan

Di episode 17 sebelumnya, kalian menjalankan mail server dengan OpenSMTPD. Sekarang kita kembali ke fondasi lab kalian dari episode 0 — hanya saja kali ini kalian yang menjadi hypervisor-nya. OpenBSD membawa virtualisasi langsung di base system: vmm sebagai hypervisor tipe 1 dan vmd sebagai daemon pengelolanya.

Bayangkan: semua yang kalian pelajari di series ini bisa diuji di atas OpenBSD itu sendiri. Kalian bisa menjalankan OpenBSD kedua sebagai klien, membackup, snapshot, menghancurkannya, dan memulai lagi — tanpa mesin tambahan. Inilah alasan vmm menjadi favorit untuk lab dan pengujian.

Arsitektur: vmm dan vmd

Virtualisasi OpenBSD terdiri dari dua bagian:

  • vmm(4): hypervisor yang berjalan di kernel — lapisan bawah yang mengeksekusi VM.
  • vmd(8): daemon userland yang mengelola siklus hidup VM.
  • vmctl(8): perintah untuk mengontrol vmd.

Sifat tipe 1 berarti hypervisor berjalan langsung di hardware, tanpa OS host di tengah. Ini efisien dan — sesuai gaya OpenBSD — permukaan kodenya jauh lebih kecil daripada hypervisor besar.

Mengaktifkan vmm

Periksa dulu apakah hardware kalian mendukung virtualisasi:

Memeriksa dukungan virtualisasi
dmesg | grep -i vmm
sysctl hw.vmm

Jika VMX/SVM didukung, aktifkan service:

Mengaktifkan vmm dan vmd
rcctl enable vmm
rcctl start vmm
rcctl enable vmd
rcctl start vmd

vmm dan vmd adalah dua service terpisah; keduanya perlu aktif.

Warning

vmm membutuhkan dukungan virtualisasi hardware (Intel VT-x atau AMD-V). Di VM yang bersarang (nested virtualization), aktifkan opsi passthrough VT-x di hypervisor host. Jika dmesg tidak menampilkan vmm, periksa pengaturan BIOS/host terlebih dahulu.

vmctl: Perintah Pengelola VM

vmctl adalah alat utama. Beberapa operasi dasar:

Operasi dasar vmctl
vmctl show
vmctl start vm1 -m 512M -d /vm/obsd.img -L
vmctl stop vm1
vmctl console vm1
  • vmctl show menampilkan daftar VM berjalan.
  • vmctl start menjalankan VM dengan memori dan disk tertentu; -L menghubungkan ke konsol.
  • vmctl stop menghentikan VM.
  • vmctl console terhubung ke konsol VM.

Menyiapkan Disk VM

Disk VM adalah file image di host. Buat dengan vmctl create:

Membuat disk image VM
mkdir -p /vm
vmctl create /vm/obsd.img -s 10G
ls -la /vm

Image 10 GB siap dipakai. Untuk instalasi dari ISO, pasang ISO di antarmuka CD-ROM:

Instalasi VM dari ISO
vmctl start vm1 -m 1G -d /vm/obsd.img -c /tmp/install74.iso -L

VM boot dari ISO, dan kalian menjalani instalasi OpenBSD seperti episode 3 — tapi sekarang di dalam VM. Setelah instalasi selesai, jalankan tanpa ISO.

Networking Berbasis tap

Agar VM bisa berkomunikasi, sambungkan lewat tap interface. Untuk VM yang terhubung ke jembatan dengan host:

/etc/hostname.tap1
add bridge0 up

Lalu pasang antarmuka pada saat start:

Menjalankan VM dengan network tap
vmctl start vm1 -m 1G -d /vm/obsd.img -i 1 -L

VM mendapat antarmuka jaringan yang terhubung ke bridge yang sama dengan host — pola yang sama yang kalian kenal dari episode 8. VM lain bisa bergabung di bridge yang sama dan saling berkomunikasi.

Menjalankan Linux di vmm

vmm tidak hanya untuk OpenBSD — ia juga menjalankan Linux dan NetBSD. Kuncinya adalah memakai kernel yang tepat. Banyak distribusi menyediakan kernel bzImage yang bisa dijalankan langsung:

Menjalankan Linux dengan vmm
vmctl start linux -m 1G -b bzImage -d /vm/linux.img -i 1 -L

-b menentukan kernel bzImage. Cocok untuk menguji Linux secara cepat di atas OpenBSD — berguna saat membandingkan ekosistem (episode 22).

Snapshot untuk Pengujian Aman

Salah satu fitur paling berguna untuk lab adalah snapshot — menyimpan dan memulihkan keadaan VM:

Mengambil dan restore snapshot
vmctl stop vm1
vmctl snapshot vm1 /vm/vm1.before-pf.snap
vmctl start vm1 -r /vm/vm1.before-pf.snap -d /vm/obsd.img
  • vmctl snapshot menyimpan state memori VM.
  • vmctl start -r me-restore dari snapshot.

Pola ini ideal untuk episode 12-16: eksperimen dengan pf atau relayd, dan jika rusak, kembalikan ke snapshot yang bersih dalam hitungan detik.

Info

Snapshot menyimpan state memori, bukan salinan disk. Untuk pemulihan yang benar-benar penuh (memori + disk), kombinasikan snapshot dengan backup disk image (episode 11) — misalnya rsync image ke mesin lain.

Memantau dan Mengelola Sumber Daya

Periksa konsumsi sumber daya VM:

Memantau VM
vmctl show
ps aux | grep vmd
vmctl stop -a

vmctl show menampilkan status, memori, dan waktu aktif tiap VM. vmctl stop -a menghentikan semua VM — berguna saat lab harus bersih. Untuk pengaturan resource yang lebih granular, periksa man page vm.conf(5) untuk konfigurasi VM yang tersimpan.

Penutup

Di episode 18 ini kalian menjalankan virtualisasi di OpenBSD: mengenal vmm(4) dan vmd(8), mengelola VM dengan vmctl, menginstal dan menjalankan VM OpenBSD dan Linux, membangun networking berbasis tap dan bridge, serta memakai snapshot untuk pengujian yang aman.

Inti yang harus dibawa pulang:

  • vmm adalah hypervisor tipe 1 di kernel; vmd mengelola VM; vmctl mengendalikannya.
  • Disk VM adalah file image yang dibuat dengan vmctl create.
  • Networking VM lewat tap yang disambungkan ke bridge.
  • Snapshot VM adalah alat pengujian paling berharga di series ini.

Di episode 19 selanjutnya, kita akan mengoptimalkan performance & system optimization — men-tuning sysctl, memakai loader.conf, memantau dengan systat, top, dan netstat, hingga menyesuaikan buffer dan kinerja pf.

Belajar OpenBSD - Virtualization: vmm & vmd | Belajar OpenBSD