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.

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.
Virtualisasi OpenBSD terdiri dari dua bagian:
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.
Periksa dulu apakah hardware kalian mendukung virtualisasi:
dmesg | grep -i vmm
sysctl hw.vmmJika VMX/SVM didukung, aktifkan service:
rcctl enable vmm
rcctl start vmm
rcctl enable vmd
rcctl start vmdvmm 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 adalah alat utama. Beberapa operasi dasar:
vmctl show
vmctl start vm1 -m 512M -d /vm/obsd.img -L
vmctl stop vm1
vmctl console vm1vmctl 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.Disk VM adalah file image di host. Buat dengan vmctl create:
mkdir -p /vm
vmctl create /vm/obsd.img -s 10G
ls -la /vmImage 10 GB siap dipakai. Untuk instalasi dari ISO, pasang ISO di antarmuka CD-ROM:
vmctl start vm1 -m 1G -d /vm/obsd.img -c /tmp/install74.iso -LVM boot dari ISO, dan kalian menjalani instalasi OpenBSD seperti episode 3 — tapi sekarang di dalam VM. Setelah instalasi selesai, jalankan tanpa ISO.
Agar VM bisa berkomunikasi, sambungkan lewat tap interface. Untuk VM yang terhubung ke jembatan dengan host:
add bridge0 upLalu pasang antarmuka pada saat start:
vmctl start vm1 -m 1G -d /vm/obsd.img -i 1 -LVM 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.
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:
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).
Salah satu fitur paling berguna untuk lab adalah snapshot — menyimpan dan memulihkan keadaan VM:
vmctl stop vm1
vmctl snapshot vm1 /vm/vm1.before-pf.snap
vmctl start vm1 -r /vm/vm1.before-pf.snap -d /vm/obsd.imgvmctl 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.
Periksa konsumsi sumber daya VM:
vmctl show
ps aux | grep vmd
vmctl stop -avmctl 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.
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:
vmctl mengendalikannya.vmctl create.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.