Memperkenalkan libvirt sebagai layer manajemen virtualisasi: daemon libvirtd, driver qemu:///system, dan CLI virsh untuk mendefinisikan menjalankan mematikan serta menginspeksi VM lewat define start shutdown destroy list dominfo dan dumpxml

Sejauh ini kita menjalankan QEMU langsung dari terminal — fleksibel, tapi tidak scalable. Di episode 9 kita naik satu level ke libvirt: API dan daemon yang menjadi standar de facto pengelolaan virtualisasi Linux. Dengan libvirt, VM tidak lagi "proses yang kalian ketik manual", melainkan resource terkelola dengan konfigurasi persisten lewat virsh.
Mengapa ini penting? Karena produksi membutuhkan reproducibility: definisi VM harus bisa dibaca, diubah, divalidasi, dan di-versioning. libvirt menyediakan itu semua — dan menjadi fondasi Proxmox, virt-manager, serta OpenStack.
libvirt adalah lapisan abstraksi antara manajer VM dan hypervisor:
Komponen kunci:
qemu:///system — driver untuk QEMU/KVM dengan akses sistem (root/hypervisor-level).URI menentukan level akses:
| URI | Arti |
|---|---|
qemu:///system | Driver QEMU, akses sistem — default untuk produksi |
qemu:///session | Driver QEMU, sesi user — VM pribadi tanpa root |
Untuk series ini selalu pakai qemu:///system — VM terkelola sebagai resource sistem.
VM "didefinisikan" lewat XML domain. Cara cepat membuat dari CLI QEMU yang sudah ada:
virt-install --name web1 --memory 2048 --vcpus 2 \
--disk path=/var/lib/libvirt/images/web1.qcow2,size=20 \
--os-variant ubuntu24.04 --network network=default \
--import --noautoconsoleDetail virt-install dibahas di episode 11 — untuk sekarang fokus pada siklus hidupnya.
virsh list --allvirsh start web1Perbedaan penting define vs create:
Mulai dari episode ini, biasakan alur: define → start → shutdown → (opsional) destroy.
virsh shutdown web1 # kirim ACPI ke guest (shutdown bersih)
virsh destroy web1 # kill paksa (seperti cabut kabel)virsh shutdown menghormati sistem operasi guest — selalu coba ini dulu. destroy untuk kasus hang.
virsh dominfo web1virsh dumpxml web1dominfo memberi ringkasan (state, CPU time, memory, dsb). dumpxml mencetak seluruh definisi XML — inilah "source of truth" VM dan dasar episode 10.
Tip
Simpan output virsh dumpxml web1 sebagai file: virsh dumpxml web1 > web1.xml. File ini bisa di-versioning di git — reproduktifitas VM secara penuh, tanpa UI.
VM yang harus hidup terus-menerus bisa diaktifkan saat host boot:
virsh autostart web1
virsh dominfo web1 | grep -i autostartOutput autostart: enable berarti libvirtd akan memulai VM ini saat boot. Ini pengganti praktis skrip manual yang sering ditulis admin.
create dan define: VM yang dibuat dengan create menghilang saat host restart — kalian akan heran VM "raib". Pakai define untuk semua VM produksi.destroy sembarangan: mematikan paksa guest yang sedang menulis bisa korup filesystem. Prioritaskan shutdown.virsh default ke qemu:///system di kebanyakan distro, tetapi jika kalian pernah mengatur LIBVIRT_DEFAULT_URI ke session, VM bisa "hilang" dari virsh list. Cek dengan virsh uri.Pada episode 9 ini, kalian telah mengenal libvirt dan mengelola VM lewat virsh.
Inti yang harus dibawa pulang:
libvirtd dan driver qemu:///system.virsh define → virsh start → virsh shutdown/destroy.virsh list --all, virsh dominfo, virsh dumpxml untuk inspeksi.virsh autostart menjaga VM hidup lintas reboot.dumpxml adalah fondasi reproducibility — biasakan menyimpan XML ke git.Di episode 10 selanjutnya, kita akan membedah XML Domain Configuration — struktur <domain> dengan <vcpu>, <memory>, <devices>, dan <interface>, plus praktik virsh edit dan virsh attach-device untuk mengubah device VM tanpa edit file manual. Sampai jumpa di episode 10!