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

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.
Konsep kunci libvirt: pool = kumpulan penyimpanan; volume = disk di dalam pool.
| Pool type | Karakteristik | Kapan Dipakai |
|---|---|---|
dir | Direktori di filesystem | Standar, sederhana, fleksibel |
logical | LVM volume group | Thin provisioning, snapshot LVM |
iscsi | Target iSCSI eksternal | Storage shared untuk cluster/migration |
fs/netfs | Mount NFS/bersama | Penyimpanan terpusat |
Pool default di instalasi libvirt biasanya adalah dir di /var/lib/libvirt/images:
virsh pool-list --all
virsh vol-list defaultPool direktori:
virsh pool-define-as data dir --target /data/vms
virsh pool-build data
virsh pool-start data
virsh pool-autostart dataVolume di dalam pool:
virsh vol-create-as data web1.qcow2 20G --format qcow2Tip
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 internal menyimpan state disk (dan opsi state RAM) di dalam qcow2:
virsh snapshot-create-as web1 pre-update --disk-only
virsh snapshot-list web1Rollback ke snapshot:
virsh snapshot-revert web1 pre-updateSnapshot cepat, ringan, dan bagus untuk rollback jangka pendek. Bukan backup: jika disk qcow2 itu sendiri rusak atau hilang, snapshot ikut hilang.
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).virsh blockcommit web1 vda --active --pivotvirsh blockcopy web1 vda /backup/web1-copy.qcow2 \
--wait --finishblockcopy mengkopi disk yang sedang berjalan tanpa downtime — ini teknik dasar hot backup untuk VM.
| Pendekatan | Cara | Kelebihan | Kekurangan |
|---|---|---|---|
| File-level | Backup file di dalam guest (rsync, tar) | File tunggal, fleksibel | Tidak konsisten saat database menulis |
| Block-level | Snapshot/copy disk penuh | Konsisten di level disk | Besar, butuh koordinasi |
| Agent-based | Guest agent + libvirt | Konsistensi aplikasi | Butuh 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.
sudo apt install qemu-guest-agentUrutan yang layak ditiru untuk lab sampai produksi kecil:
--disk-only) untuk rollback cepat.blockcopy periodik ke storage terpisah sebagai "backup harian".virsh dumpxml web1 > web1.xml (murah, tak ternilai saat disaster).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.
blockcommit).dir tidak mengingatkan otomatis; monitor virsh vol-list dan ruang filesystem.Pada episode 13 ini, kalian telah membangun fondasi storage & backup.
Inti yang harus dibawa pulang:
virsh pool-* dan virsh vol-*.dir, logical (LVM), iscsi, netfs — pilih sesuai kebutuhan.blockcommit/blockcopy untuk chain & hot copy.qemu-guest-agent.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!