Memahami Cara Kerja Snapshot pada VM
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:
-
Menyalin blok lama ke area snapshot
-
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 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
-
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
Memahami mekanismenya membantu kita tahu kapan harus membuatnya, dan kapan harus menghapusnya.
Comments
Post a Comment