Belajar KVM & QEMU - Storage Management & Backup
Episode 13 of 23

Belajar KVM & QEMU - Storage Management & Backup

Mengelola storage secara terpusat dengan libvirt storage pool dir LVM dan iSCSI plus volume virsh vol-*, lalu membangun strategi backup snapshot qcow2 blockcommit blockcopy dan perbandingan backup file-level vs block-level

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

Pendahuluan

VM yang tidak pernah di-backup adalah VM yang menunggu bencana. Episode 13 menyatukan dua hal yang sering dipisah: storage management — bagaimana libvirt mengelola tempat penyimpanan disk VM secara terpusat — dan backup — bagaimana melindungi data di dalamnya.

Setelah episode 12 memahami virtio-blk, sekarang giliran lapisan di belakangnya: dari mana disk VM berasal (storage pool), bagaimana membuat volume, dan bagaimana mengambil snapshot serta backup tanpa menurunkan VM.

Storage Pool dan Volume

Konsep kunci libvirt: pool = kumpulan penyimpanan; volume = disk di dalam pool.

Pool typeKarakteristikKapan Dipakai
dirDirektori di filesystemStandar, sederhana, fleksibel
logicalLVM volume groupThin provisioning, snapshot LVM
iscsiTarget iSCSI eksternalStorage shared untuk cluster/migration
fs/netfsMount NFS/bersamaPenyimpanan terpusat

Pool default di instalasi libvirt biasanya adalah dir di /var/lib/libvirt/images:

Lihat pool dan volume
virsh pool-list --all
virsh vol-list default

Membuat Pool dan Volume

Pool direktori:

Definisikan pool direktori
virsh pool-define-as data dir --target /data/vms
virsh pool-build data
virsh pool-start data
virsh pool-autostart data

Volume di dalam pool:

Buat volume 20G di pool data
virsh vol-create-as data web1.qcow2 20G --format qcow2

Tip

Gunakan virsh pool-refresh data setelah operasi eksternal (misal qemu-img manual atau file di-copy langsung). Tanpa refresh, virsh vol-list bisa menampilkan daftar usang.

Snapshot dan Backup

Snapshot qcow2 dengan virsh

Snapshot internal menyimpan state disk (dan opsi state RAM) di dalam qcow2:

Buat snapshot sebelum perubahan besar
virsh snapshot-create-as web1 pre-update --disk-only
virsh snapshot-list web1

Rollback ke snapshot:

Kembali ke snapshot
virsh snapshot-revert web1 pre-update

Snapshot cepat, ringan, dan bagus untuk rollback jangka pendek. Bukan backup: jika disk qcow2 itu sendiri rusak atau hilang, snapshot ikut hilang.

blockcommit dan blockcopy

Saat snapshot bertumpuk (chain), ada dua operasi chain management:

  • blockcommit — menyatukan lapisan snapshot ke base (mengurangi chain).
  • blockcopy — menyalin disk penuh ke target baru (live copy untuk backup/offline).
Commit chain snapshot ke base
virsh blockcommit web1 vda --active --pivot
Copy disk live ke backup
virsh blockcopy web1 vda /backup/web1-copy.qcow2 \
  --wait --finish

blockcopy mengkopi disk yang sedang berjalan tanpa downtime — ini teknik dasar hot backup untuk VM.

Backup File-Level vs Block-Level

PendekatanCaraKelebihanKekurangan
File-levelBackup file di dalam guest (rsync, tar)File tunggal, fleksibelTidak konsisten saat database menulis
Block-levelSnapshot/copy disk penuhKonsisten di level diskBesar, butuh koordinasi
Agent-basedGuest agent + libvirtKonsistensi aplikasiButuh qemu-guest-agent

Praktik terbaik produksi: gabungkan snapshot disk (block-level) dengan guest agent agar filesystem di-freeze sebelum snapshot — kombinasi ini memberi backup konsisten dengan downtime mendekati nol.

Install guest agent di guest (Debian/Ubuntu)
sudo apt install qemu-guest-agent

Strategi Backup yang Realistis

Urutan yang layak ditiru untuk lab sampai produksi kecil:

  1. Snapshot disk ringan (--disk-only) untuk rollback cepat.
  2. blockcopy periodik ke storage terpisah sebagai "backup harian".
  3. Cadangkan juga definisi VM: virsh dumpxml web1 > web1.xml (murah, tak ternilai saat disaster).
  4. Untuk skala besar: gunakan tool khusus (Proxmox Backup Server, restic pada level file, atau storage snapshot).

Warning

Menyalin file qcow2 dengan cp sementara VM hidup menghasilkan backup korup. Selalu matikan VM, gunakan blockcopy, atau snapshot yang konsisten. Backup yang tidak teruji bukan backup — lakukan restore drill berkala.

Common Pitfalls

  • Snapshot menumpuk: chain yang panjang memperlambat I/O dan memakan ruang. Komit secara berkala (blockcommit).
  • Pool terisi penuh: pool dir tidak mengingatkan otomatis; monitor virsh vol-list dan ruang filesystem.
  • Lupa dumpxml: tanpa definisi XML, disk yang sehat pun sulit dipulihkan ke VM yang benar.

Penutup

Pada episode 13 ini, kalian telah membangun fondasi storage & backup.

Inti yang harus dibawa pulang:

  • Pool (tempat) vs volume (disk): kelola dengan virsh pool-* dan virsh vol-*.
  • Pool types: dir, logical (LVM), iscsi, netfs — pilih sesuai kebutuhan.
  • Snapshot qcow2 untuk rollback cepat; blockcommit/blockcopy untuk chain & hot copy.
  • Backup file-level vs block-level: kombinasikan snapshot + qemu-guest-agent.
  • Backup harus diuji: tanpa restore drill, backup adalah ilusi.

Di episode 14 selanjutnya, kita akan membahas cloud images & cloud-init — menggunakan image cloud resmi (Ubuntu/Debian/Rocky Cloud), menyesuaikan qcow2, provisioning otomatis dengan #cloud-config user-data, ISO NoCloud/seed, dan virt-customize. Sampai jumpa di episode 14!

Belajar KVM & QEMU - Storage Management & Backup | Belajar KVM & QEMU