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

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 | Karakteristik | Kapan Dipakai |
|---|---|---|
raw | Tanpa metadata, performa maksimal, ukuran = alokasi penuh | Storage passthrough, butuh performa mentah |
qcow2 | Sparse, copy-on-write, snapshot, compression | Standar untuk VM umum |
qed | Legacy QEMU Copy On Write, kurang fitur dari qcow2 | Hampir 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).
Membuat image baru — ini cara paling cepat mencoba:
qemu-img create -f qcow2 vm.qcow2 10GPerhatikan 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.
ls -lh vm.qcow2
du -h vm.qcow2Memeriksa detail image — langkah diagnosa pertama:
qemu-img info vm.qcow2Output 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.
Konversi format atau "defragmentasi" image. Ini juga cara menyingkirkan ruang kosong di dalam qcow2:
qemu-img convert -f qcow2 -O raw vm.qcow2 vm.rawqemu-img convert -f raw -O qcow2 -c vm.raw vm.qcow2Flag -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.
Menambah ukuran image — operasi yang hanya memperbesar, tidak mengecilkan dengan aman:
qemu-img resize vm.qcow2 +20GWarning
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.
Saat membuat image, kalian bisa mengontrol alokasi awal dan granularity:
qemu-img create -f qcow2 -o preallocation=full,cluster_size=64K vm.qcow2 10GOpsi 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.
qcow2 mendukung snapshot internal tanpa file terpisah:
qemu-img snapshot -c sebelum-update vm.qcow2
qemu-img snapshot -l vm.qcow2Snapshots 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).
qcow2 bisa ditumpuk di atas image lain. Image anak hanya menyimpan delta terhadap backing file — dasar dari templating VM:
qemu-img create -f qcow2 -b base.qcow2 -F qcow2 child.qcow2Cek 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.
cp vm.qcow2 backup.qcow2 saat VM hidup menghasilkan image korup. Selalu pakai qemu-img convert atau snapshot.Pada episode 5 ini, kalian telah menguasai dasar-dasar pengelolaan disk image.
Inti yang harus dibawa pulang:
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.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!