Dampak awal yang biasanya terlihat
Urutan investigasi yang biasanya dilalui
qm listsnapshot. Snapshot masih terlihat rapi lengkap dengan nama dan deskripsinya, jadi orang mengira datanya aman. Lalu rollback dicoba, dan gagal karena volume tidak ditemukan atau storage tidak aktif.
Ini bagian yang sering menjebak. Daftar snapshot yang tampil di Proxmox berasal dari file konfigurasi VM di /etc/pve/qemu-server/<vmid>.conf. Setiap snapshot tercatat sebagai section terpisah di file itu. Folder /etc/pve disimpan oleh cluster filesystem Proxmox, terpisah dari storage disk VM. Jadi catatannya bisa masih ada, sementara datanya sudah tidak ada. Yang kamu lihat di GUI itu metadata, bukan bukti bahwa bloknya masih utuh.
Langkah berikutnya adalah melihat langsung ke storage. Semua perintah di bawah hanya membaca, aman dijalankan di host:
BASH
# Snapshot yang tercatat di konfigurasi VM (contoh VMID 101)
qm listsnapshot 101
# Status semua storage yang dikenal Proxmox, termasuk yang tidak aktif
pvesm status
# Definisi storage: jenis, path, pool, dan content type
cat /etc/pve/storage.cfg
# LVM-thin: thin pool, volume disk, dan snapshot-nya
lvs -a
# ZFS: daftar snapshot beserta dataset induknya
zfs list -t snapshot
# qcow2: snapshot internal di dalam file disk (path contoh)
qemu-img snapshot -l -U /var/lib/vz/images/101/vm-101-disk-0.qcow2-U di qemu-img dipakai supaya file tetap bisa dibaca walaupun sedang dipakai VM yang menyala. Hasilnya bisa tidak konsisten kalau VM sedang menulis, jadi cukup dipakai untuk melihat daftar saja. Path qcow2 tergantung definisi storage kamu, cek dulu di storage.cfg.
Dari output ini biasanya langsung kelihatan polanya. Snapshot LVM-thin ada di thin pool yang sama dengan disk VM. Snapshot ZFS menempel di zvol milik disk VM. Snapshot qcow2 ada di dalam file disk itu sendiri. Kalau storage-nya tidak bisa dibaca, semua perintah di atas ikut gagal atau tidak menampilkan apa-apa.
Kenapa snapshot ikut hilang bersama disk-nya
zfs send, dan Proxmox punya fitur Storage Replication untuk ZFS. Tapi itu sudah replikasi ke tempat lain, bukan snapshot lokal yang tinggal diam di pool yang sama.
Di qcow2, yang biasa dipakai di storage directory, NFS, atau CIFS, snapshot disimpan sebagai snapshot internal di dalam file .qcow2 itu sendiri. Satu file berisi disk aktif sekaligus semua snapshot-nya. File korup, terhapus, atau dienkripsi berarti semuanya hilang sekaligus. Kalau snapshot dibuat dengan opsi menyertakan RAM, state memorinya memang disimpan sebagai volume terpisah, tapi tetap di storage yang sama.
Soal LVM biasa (thick), dukungan snapshot-nya secara tradisional terbatas dan mulai berubah di versi Proxmox yang lebih baru. Kalau kamu memakai jenis storage ini, cek dokumentasi versi yang terpasang.
Untuk skenario ransomware, ada satu hal lagi. Penyerang yang mendapat akses root ke host Proxmox bisa menghapus snapshot dengan perintah biasa, sama seperti admin. Ransomware yang mengenkripsi file qcow2 otomatis mengenkripsi snapshot di dalamnya. RAID juga tidak menolong di sini. RAID melindungi dari disk fisik yang mati, tapi kerusakan logis, penghapusan, dan enkripsi akan ikut dicerminkan ke semua disk anggotanya.
Mitigasi sementara selama storage masih bisa dibaca
- Jangan rollback dan jangan hapus snapshot dulu. Rollback menimpa kondisi disk saat ini, dan itu tidak bisa dibatalkan.
- Kalau dugaannya ransomware, putus host dari jaringan lebih dulu. Jangan menyambungkan storage backup apa pun ke host yang mungkin masih terinfeksi.
- Ambil salinan dari apa yang masih bisa dibaca. VM yang masih menyala bisa di-backup dengan vzdump ke storage lain. Untuk pool ZFS yang bermasalah, import dalam mode read-only (
zpool import -o readonly=on <nama_pool>) biasanya lebih aman daripada langsung mencoba perbaikan. - Tunda perintah perbaikan yang menulis ke storage, misalnya
zpool import -Fataulvconvert --repairuntuk thin pool. Perintah ini bisa membuang transaksi terakhir atau mengubah metadata. Jalankan hanya setelah ada salinan, dan sebaiknya setelah membaca dokumentasinya untuk kondisi yang kamu hadapi.
Perbaikan arsitektur dengan vzdump dan Proxmox Backup Server
.vma.zst untuk VM atau .tar.zst untuk container. File ini berisi konfigurasi dan seluruh isi disk, dan bisa di-restore di host lain:
BASH
# Backup manual VM 101 ke storage bernama backup-nfs (nama storage contoh)
vzdump 101 --storage backup-nfs --mode snapshot --compress zstdstorage.cfg dan output pvesm status, lalu tanyakan satu hal: kalau disk host ini mati malam ini, dari mana VM akan di-restore? Kalau jawabannya masih snapshot, jadwalkan vzdump atau PBS ke mesin lain. Setelah itu, coba restore satu VM ke host berbeda supaya kamu yakin backup-nya benar-benar bisa dipakai.