Belajar FreeBSD - bhyve & Virtualization
Episode 16 of 23

Belajar FreeBSD - bhyve & Virtualization

Menguasai bhyve, hypervisor tipe-2 bawaan FreeBSD: penggunaan bhyve dan bhyvectl, serta frontend modern vm-bhyve. Kalian akan praktik menginstal VM Linux dan FreeBSD dengan UEFI boot, storage virtio, networking tap/bridge, dan membuat snapshot.

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

Pendahuluan

Di episode 15 sebelumnya kalian sudah menjalankan jails untuk containerisasi. Sekarang kita naik ke level virtualisasi penuh dengan bhyve — hypervisor tipe-2 bawaan FreeBSD yang menjalankan sistem operasi lain sepenuhnya: Linux, FreeBSD, bahkan Windows. Episode ini memandu dari dasar bhyve dan bhyvectl, frontend vm-bhyve yang lebih nyaman, hingga praktik menginstal VM dengan UEFI, storage virtio, dan networking tap/bridge.

Konsep bhyve

Hypervisor Bawaan FreeBSD

bhyve adalah hypervisor yang terintegrasi dengan kernel FreeBSD. Ia memanfaatkan virtualisasi hardware (VT-x/AMD-V) dan menawarkan virtualisasi yang ringan serta berperforma tinggi.

Perbedaan utama dengan jails: VM bhyve tidak berbagi kernel host — setiap VM menjalankan kernelnya sendiri dalam isolasi penuh. Ini berarti overhead lebih besar, tapi isolasi dan fleksibilitas jauh lebih tinggi.

Info

Jails dan bhyve saling melengkapi: gunakan jails untuk layanan ringan yang bisa berbagi kernel, dan bhyve untuk kebutuhan sistem operasi penuh, kernel khusus, atau isolasi ketat. Banyak setup produksi memakai keduanya sekaligus.

Memeriksa Dukungan

Pastikan hardware dan modul siap:

Memeriksa dukungan bhyve
sysctl kern.vm_guest
kldstat | grep vmm
kldload vmm

vmm adalah modul kernel bhyve. Jika belum dimuat, kldload vmm akan memuatnya.

Menggunakan bhyve dan bhyvectl

Menjalankan VM Secara Manual

bhyve bisa dijalankan langsung dengan argumen baris perintah yang panjang. Contoh dasar VM FreeBSD:

Menjalankan VM dengan bhyve
bhyve -c 2 -m 2G \
  -s 0:0,hostbridge \
  -s 1:0,lpc \
  -s 2:0,ahci-hd,/vm/freebsd.img \
  -s 3:0,virtio-net,tap0 \
  -l com1,stdio \
  -H -P freebsd01

Argumen -c menetapkan CPU, -m memori, -s mendefinisikan perangkat virtual, dan -H mengizinkan hypervisor exit. Nama terakhir (freebsd01) adalah identitas VM.

Menghentikan VM

bhyvectl mengelola daur hidup VM:

Menghentikan VM
bhyvectl --destroy --vm=freebsd01

Frontend Modern: vm-bhyve

vm-bhyve menyederhanakan segalanya — manajemen VM seperti alat modern dengan daftar, template, dan konfigurasi berbasis file.

Instalasi dan Konfigurasi

Menginstal vm-bhyve
pkg install vm-bhyve
sysrc vm_enable="YES"
sysrc vm_dir="zfs:tank/vm"

Set direktori data VM — di sini memakai ZFS dataset tank/vm yang di-mount di /vm. Buat jaringan default:

Membuat jaringan vm-bhyve
vm switch create public
vm switch add public em0

Membuat dan Menginstal VM

Letakkan image ISO di direktori iso, lalu buat VM:

Membuat VM FreeBSD
vm create -t freebsd-ufs freebsd01
vm install freebsd01 /vm/iso/FreeBSD-15.1-RELEASE-amd64-disc1.iso
vm console freebsd01

vm install memasang ISO dan mem-boot ke installer; vm console membuka console serial untuk interaksi.

Success

vm-bhyve menyembunyikan kompleksitas argumen bhyve mentah di balik template dan perintah yang ringkas. Untuk produksi maupun homelab, ini adalah cara yang paling nyaman menjalankan VM di FreeBSD.

Mengelola VM

Perintah harian yang sering dipakai:

Mengelola VM
vm list
vm start freebsd01
vm stop freebsd01
vm console freebsd01
vm info freebsd01

Praktik Virtualisasi

UEFI Boot

bhyve mendukung firmware UEFI (CSM) dan UEFI-native. vm-bhyve menyediakan template dengan UEFI untuk sistem modern:

Mengatur firmware UEFI
vm configure freebsd01
vm set freebsd01 bootrom=bhyve_efi.fd

Storage Virtio

Virtio adalah driver paravirtualisasi yang memberi performa I/O terbaik. Gunakan disk virtio-blk dan NIC virtio-net untuk VM:

Menggunakan perangkat virtio
vm set freebsd01 disk0_type=virtio
vm set freebsd01 nic0_type=virtio

Networking Tap dan Bridge

Networking VM memakai pasangan tap dan bridge: tap adalah interface virtual ujung VM, dan bridge menghubungkannya ke jaringan host:

Memeriksa tap dan bridge
ifconfig tap0
ifconfig bridge0

Snapshot VM

Dengan ZFS sebagai penyimpanan, snapshot VM dilakukan di level dataset:

Membuat snapshot VM
zfs snapshot tank/vm/freebsd01@sebelum-update
zfs list -t snapshot | grep freebsd01

Warning

Untuk snapshot yang konsisten, matikan VM atau pause-nya dulu, atau gunakan fitur snapshot guest-aware bila tersedia. Snapshot filesystem tanpa sinkronisasi aplikasi bisa menghasilkan data yang tidak konsisten.

Menjalankan Linux di bhyve

bhyve menjalankan Linux dengan baik — banyak distro modern mendukung UEFI dan virtio. Prosesnya sama: unduh ISO, buat VM dengan template yang cocok, install, lalu boot.

Troubleshooting bhyve

  • VM tidak boot: periksa firmware UEFI dan format disk. Linux modern butuh UEFI.
  • Jaringan mati: pastikan switch bridge berisi interface host dan VM terhubung.
  • Performa lambat: gunakan driver virtio untuk disk dan NIC.
  • Console kosong: pastikan vm console memakai serial yang dikonfigurasi benar.
Memeriksa log VM
tail -f /var/log/messages | grep -i bhyve

Penutup

Di episode 16 ini kalian sudah menguasai bhyve: hypervisor tipe-2 bawaan FreeBSD, penggunaan bhyve dan bhyvectl, frontend vm-bhyve yang modern, serta praktik menginstal VM FreeBSD dan Linux dengan UEFI boot, storage virtio, networking tap/bridge, dan snapshot ZFS.

Inti yang harus dibawa pulang:

  • bhyve menjalankan sistem operasi penuh dengan isolasi hardware.
  • bhyvectl --destroy menghentikan VM; frontend vm-bhyve menyederhanakan segalanya.
  • Gunakan UEFI boot dan perangkat virtio untuk performa terbaik.
  • Networking VM memakai tap dan bridge; ZFS memudahkan snapshot.
  • Jails untuk layanan ringan, bhyve untuk OS penuh — keduanya saling melengkapi.

Di episode 17 selanjutnya kita akan membahas FreeBSD 15: apa yang baru — rilis 15.0 dengan kernel modern dan OpenZFS update, serta 15.1 sebagai rilis stabil terkini dengan dukungan hingga 2029, termasuk lifecycle dan strategi upgrade yang aman.