Belajar KVM & QEMU - Disk Images (qemu-img)
Episode 5 of 23

Belajar KVM & QEMU - Disk Images (qemu-img)

Menguasai qemu-img: create convert resize dan info untuk mengelola image disk, memahami format qcow2 raw dan qed, serta fitur sparse copy-on-write snapshots compression preallocation dan cluster_size

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

Pendahuluan

Setelah episode 4 membahas vCPU dan RAM, sekarang giliran komponen yang paling sering membuat admin jengkel: disk. Semua data VM — dari OS sampai database — tinggal di file image. Tool yang mengatur semuanya adalah qemu-img.

Mengapa episode ini penting? Karena hampir semua masalah storage di virtualisasi berakar pada keputusan format dan alokasi di awal: image raw memakan ruang sebesar ukurannya, qcow2 tumbuh dinamis tapi butuh tuning, dan konversi antar format yang asal bisa menggandakan ruang disk yang dibutuhkan.

Format Disk: qcow2 vs raw vs qed

FormatKarakteristikKapan Dipakai
rawTanpa metadata, performa maksimal, ukuran = alokasi penuhStorage passthrough, butuh performa mentah
qcow2Sparse, copy-on-write, snapshot, compressionStandar untuk VM umum
qedLegacy QEMU Copy On Write, kurang fitur dari qcow2Hampir tidak dipakai lagi

qcow2 adalah format yang paling sering kita pakai di series ini. raw sangat berguna saat kalian ingin zero-overhead dan sudah memakai storage yang mendukung sparse sendiri (misal filesystem ZFS/btrfs atau LVM thin).

Perintah Dasar qemu-img

create

Membuat image baru — ini cara paling cepat mencoba:

Buat image qcow2 10G
qemu-img create -f qcow2 vm.qcow2 10G

Perhatikan perbedaannya: qcow2 berukuran kecil di filesystem (hanya metadata + beberapa KB) padahal "berkapasitas" 10G. Ini karena sparse + copy-on-write: ruang dialokasikan hanya saat guest menulis. Cek dengan ls -lh vs du -h.

Bandingkan ukuran logis dan fisik
ls -lh vm.qcow2
du -h vm.qcow2

info

Memeriksa detail image — langkah diagnosa pertama:

Info image
qemu-img info vm.qcow2

Output menampilkan format, virtual size, disk size aktual, cluster_size, dan backing file jika ada. disk size yang jauh lebih kecil dari virtual size menandakan banyak ruang kosong belum ditulis — normal untuk qcow2 baru.

convert

Konversi format atau "defragmentasi" image. Ini juga cara menyingkirkan ruang kosong di dalam qcow2:

Konversi qcow2 ke raw
qemu-img convert -f qcow2 -O raw vm.qcow2 vm.raw
Konversi raw ke qcow2 dengan compression
qemu-img convert -f raw -O qcow2 -c vm.raw vm.qcow2

Flag -c mengaktifkan compression; -O menentukan format output; tanpa -f/-O, qemu-img menebak dari file. Konversi qcow2 → qcow2 dengan convert adalah cara standar meng-compact image yang membengkak.

resize

Menambah ukuran image — operasi yang hanya memperbesar, tidak mengecilkan dengan aman:

Perbesar image qcow2
qemu-img resize vm.qcow2 +20G

Warning

qemu-img resize hanya mengubah kapasitas image, bukan partisi di dalamnya. Setelah resize, kalian tetap harus masuk ke guest dan memperbesar partisi/filesystem (misal dengan parted dan resize2fs). Jangan mengecilkan image secara sembarangan — bisa korup data.

Fitur qcow2 yang Harus Dikuasai

Preallocation dan cluster_size

Saat membuat image, kalian bisa mengontrol alokasi awal dan granularity:

Buat qcow2 dengan preallocation dan cluster size
qemu-img create -f qcow2 -o preallocation=full,cluster_size=64K vm.qcow2 10G

Opsi preallocation:

  • off (default) — alokasi penuh on-demand.
  • metadata — alokasi metadata saja, growth cepat.
  • full — seluruh kapasitas dialokasikan (kalah sparse, cocok untuk workload yang butuh ruang stabil).
  • falloc — pakai posix_fallocate, cepat dan mendukung sparse.

cluster_size (default 64K) menentukan granularity alokasi. Nilai lebih besar menguntungkan untuk workload besar (database), lebih kecil untuk banyak file kecil.

Snapshots

qcow2 mendukung snapshot internal tanpa file terpisah:

Buat dan lihat snapshot
qemu-img snapshot -c sebelum-update vm.qcow2
qemu-img snapshot -l vm.qcow2

Snapshots qcow2 menyimpan delta — ruang ekstra hanya untuk blok yang berubah sejak snapshot dibuat. -a <tag> untuk restore. Ini berguna untuk rollback cepat sebelum perubahan berisiko (di episode 13 kita bandingkan dengan snapshot libvirt).

Backing File (Copy-on-Write)

qcow2 bisa ditumpuk di atas image lain. Image anak hanya menyimpan delta terhadap backing file — dasar dari templating VM:

Buat image tipis dari template
qemu-img create -f qcow2 -b base.qcow2 -F qcow2 child.qcow2

Cek relasi backing file dengan qemu-img info child.qcow2. Teknik ini dipakai cloud images dan Proxmox templates; ingat: jika base.qcow2 dipindah/dihapus, semua anaknya rusak.

Tip

Kombinasi klasik untuk lab: buat satu base.qcow2 (OS terinstall + update), lalu spawn banyak VM dari child.qcow2 dengan backing file. Hemat puluhan GB, dan semua VM mulai dari base yang sama.

Common Pitfalls

  • Lupa backing file readonly: backing file yang masih ditulis sementara ada anaknya akan merusak semua child.
  • convert bukan copy: cp vm.qcow2 backup.qcow2 saat VM hidup menghasilkan image korup. Selalu pakai qemu-img convert atau snapshot.
  • Resize lupa di-partisi ulang: guest tetap menampilkan kapasitas lama sampai partisi diperluas.

Penutup

Pada episode 5 ini, kalian telah menguasai dasar-dasar pengelolaan disk image.

Inti yang harus dibawa pulang:

  • Tiga format utama: qcow2 (fitur lengkap), raw (performa mentah), qed (legacy).
  • qemu-img create/info/convert/resize adalah empat operasi inti.
  • qcow2 mendukung sparse, copy-on-write, snapshot, compression, preallocation, dan cluster_size.
  • Backing file memungkinkan templating hemat ruang; jangan tulis backing file yang masih punya anak.
  • convert adalah cara aman meng-compact dan mengonversi image — bukan cp.

Di episode 6 selanjutnya, kita akan booting VM dari ISO — menjalankan qemu-system-x86_64 dengan -cdrom dan -boot order=d, melakukan instalasi OS di dalam guest (partisi, LVM), dan menyelesaikan install pertama kalian. Sampai jumpa di episode 6!

Belajar KVM & QEMU - Disk Images (qemu-img) | Belajar KVM & QEMU