Memahami Cara Kerja Snapshot pada VM



Snapshot sering dipakai sebelum update, sebelum migrasi, atau sebelum eksperimen di server. Rasanya aman. Tinggal klik, selesai. Kalau ada masalah, tinggal rollback.

Tapi apa yang sebenarnya terjadi ketika snapshot dibuat?

Snapshot bukan proses menyalin seluruh isi disk. Kalau setiap snapshot harus meng-copy 100GB data, prosesnya pasti lama dan berat. Kenyataannya, snapshot hampir selalu instan. Itu karena mekanismenya berbeda.

Intinya ada pada konsep copy-on-write.

Snapshot Bekerja dengan Copy-On-Write

Saat snapshot dibuat, sistem tidak langsung menggandakan data. Yang dibuat hanyalah metadata dan referensi ke blok-blok data yang sudah ada.

Bayangkan disk sebagai kumpulan blok data. Ketika snapshot diambil, sistem hanya menandai:

“Ini kondisi disk pada waktu ini.”

Belum ada data yang disalin.

Masalahnya baru muncul ketika ada perubahan.

Apa yang Terjadi Saat Data Diubah?

Misalnya setelah snapshot dibuat, ada file yang di-edit.

Sebelum blok data itu ditimpa, sistem akan:

  1. Menyalin blok lama ke area snapshot

  2. Menulis perubahan ke blok aktif

Artinya:

  • Snapshot menyimpan versi lama

  • Disk aktif menyimpan versi baru

Inilah copy-on-write. Data lama disalin hanya saat akan ditimpa.

Semakin banyak perubahan setelah snapshot, semakin besar ukuran snapshot tersebut.

Kenapa Snapshot Bisa Membebani Storage?

Karena setiap perubahan menciptakan “versi lama” yang harus disimpan.

Kalau snapshot dibiarkan lama, dan sistem aktif menulis data:

  • Blok lama terus disimpan

  • Delta makin besar

  • I/O makin kompleks

  • Performa bisa turun

Terutama pada hypervisor seperti Proxmox VE atau VMware ESXi, snapshot biasanya dibuat dalam bentuk file delta.

Strukturnya kira-kira seperti ini:

  • Disk utama jadi base

  • Perubahan masuk ke file tambahan

  • Jika ada snapshot lagi, muncul file delta baru

Semakin panjang rantainya, semakin berat proses baca-tulisnya.

Snapshot di Filesystem Modern

Filesystem seperti ZFS memang dibangun dengan mekanisme copy-on-write sejak awal. Karena itu snapshot di ZFS sangat cepat dan efisien.

Sementara di level volume seperti LVM, snapshot dibuat dengan volume tambahan untuk menyimpan perubahan. Kalau ruang snapshot habis, snapshot bisa rusak.

Di sistem terdistribusi seperti Ceph, snapshot bekerja di level object storage, tetap dengan prinsip yang sama: data lama disimpan saat akan diubah.

Teknologinya berbeda, prinsipnya sama.

Snapshot Bukan Backup

Ini penting.

Snapshot ada di storage yang sama.
Kalau disk fisik rusak, snapshot ikut hilang.

Snapshot cocok untuk:

  • Uji coba

  • Update besar

  • Rollback cepat

Backup tetap dibutuhkan untuk skenario kehilangan data total.

Yang Terjadi Saat Restore?

Restore snapshot bukan menyalin ulang seluruh disk. Sistem hanya mengarahkan kembali referensi blok ke kondisi saat snapshot dibuat.

Karena itu prosesnya cepat.

Secara teknis, yang berubah adalah pointer, bukan seluruh isi disk.

Risiko Snapshot yang Dibiarkan

Snapshot seharusnya sementara.
Kalau dibiarkan berbulan-bulan:

  • Ukurannya membengkak

  • Storage penuh

  • Performa turun

  • Risiko korupsi meningkat jika chain terlalu panjang

Snapshot itu alat bantu, bukan mode permanen.

Ringkasnya

Snapshot bekerja dengan:

  • Metadata

  • Referensi blok

  • Copy-on-write

  • Penyimpanan versi lama saat perubahan terjadi

Cepat saat dibuat. Bisa berat kalau tidak dikelola.

Memahami mekanismenya membantu kita tahu kapan harus membuatnya, dan kapan harus menghapusnya.

Comments

Popular posts from this blog

Belajar Zimbra Mail Server

Mendalami tentang Linux (Sejarah dan Pelopor)