Panduan Lengkap Snapper di openSUSE Tumbleweed

Panduan Lengkap Snapper di openSUSE Tumbleweed (Bagian 3)

7. Snapshot “Important”

Apa itu Snapshot Important?

Snapshot “important” adalah snapshot yang ditandai dengan metadata khusus important=yes. Snapshot ini mendapat prioritas khusus dalam sistem pembersihan otomatis Snapper.

Perbedaan Important vs Biasa

AspekSnapshot BiasaSnapshot Important
Prioritas CleanupDihapus lebih duluDipertahankan lebih lama
Limit JumlahNUMBER_LIMITNUMBER_LIMIT_IMPORTANT
Use CaseUpdate rutin, snapshot harianMilestone sistem, kondisi stabil
Ditandai di listimportant=no atau kosongimportant=yes

Kapan Menggunakan Important?

Gunakan important untuk:

  1. ✅ Setelah fresh install dan sistem sudah dikonfigurasi sempurna
  2. ✅ Sebelum upgrade besar (misal: upgrade kernel, DE, atau perubahan major)
  3. ✅ Sistem dalam kondisi sangat stabil setelah troubleshooting
  4. ✅ Sebelum eksperimen besar yang berisiko
  5. ✅ “Golden snapshot” yang ingin dipertahankan sebagai fallback

Jangan gunakan important untuk:

  1. ❌ Snapshot rutin/harian
  2. ❌ Update kecil yang tidak kritis
  3. ❌ Snapshot temporary untuk testing cepat

Cara Membuat Snapshot Important

Metode 1: Single Snapshot Important

sudo snapper create --description "Sistem stabil - Golden Image" --userdata "important=yes"

Metode 2: Pre-Post Important Pair

# Pre snapshot
sudo snapper create --type pre --print-number --description "Sebelum upgrade kernel 6.7" --userdata "important=yes"
# Output: 50

# Lakukan upgrade kernel...
sudo zypper dup

# Post snapshot
sudo snapper create --type post --pre-number 50 --description "Setelah upgrade kernel 6.7" --userdata "important=yes"

Metode 3: Mengubah Snapshot Existing Jadi Important

# Cek snapshot yang ada
sudo snapper list

# Ubah snapshot #42 menjadi important
sudo snapper modify --userdata "important=yes" 42

Melihat Snapshot Important

# List semua dengan detail userdata
sudo snapper list

# Filter hanya important (menggunakan grep)
sudo snapper list | grep "important=yes"

Output contoh:

# | Type   | Pre # | Date                     | User | Cleanup | Description              | Userdata
---+--------+-------+--------------------------+------+---------+--------------------------+-------------
42 | single |       | Mon 16 Dec 2024 09:00:00 | root | number  | Golden Image v1          | important=yes
50 | pre    |       | Mon 16 Dec 2024 14:30:00 | root | number  | Sebelum upgrade kernel   | important=yes
51 | post   |    50 | Mon 16 Dec 2024 14:45:00 | root | number  | Setelah upgrade kernel   | important=yes

Mengatur Limit Important

# Cek setting saat ini
sudo snapper -c root get-config | grep LIMIT

# Ubah limit snapshot important (misal: simpan max 5 important)
sudo snapper -c root set-config "NUMBER_LIMIT_IMPORTANT=5"

# Ubah limit snapshot biasa (misal: max 10)
sudo snapper -c root set-config "NUMBER_LIMIT=10"

Rekomendasi setting:

  • NUMBER_LIMIT_IMPORTANT=5 (untuk 5 milestone penting)
  • NUMBER_LIMIT=10-15 (untuk snapshot rutin)

Cleanup Behavior

Ketika snapper cleanup berjalan dan jumlah snapshot melebihi limit:

  1. Snapshot biasa (important=no) dihapus terlebih dahulu
  2. Snapshot important (important=yes) dipertahankan hingga mencapai NUMBER_LIMIT_IMPORTANT
  3. Jika snapshot important juga melebihi limit, yang paling lama akan dihapus

Contoh skenario:

NUMBER_LIMIT=10
NUMBER_LIMIT_IMPORTANT=3
Total snapshot: 15 (5 important, 10 biasa)

Cleanup akan hapus:
1. Snapshot biasa yang paling lama (sampai total biasa = 7)
2. Jika masih kurang, baru hapus important yang paling lama

Best Practice Important Snapshots

Strategi “Golden Snapshots”

Buat beberapa level important:

# Level 1: Base system (Fresh install)
sudo snapper create --description "🥇 Golden-1: Fresh Install Configured" --userdata "important=yes"

# Level 2: After major milestone
sudo snapper create --description "🥈 Golden-2: All apps installed" --userdata "important=yes"

# Level 3: Stable production
sudo snapper create --description "🥉 Golden-3: Stable production system" --userdata "important=yes"

Gunakan Description yang Jelas

# ❌ Buruk
sudo snapper create --description "backup" --userdata "important=yes"

# ✅ Baik
sudo snapper create --description "Stabil - Pre KDE Plasma 6 upgrade - 16 Dec 2024" --userdata "important=yes"

Review dan Update Periodik

# Setiap bulan, review important snapshots
sudo snapper list | grep "important=yes"

# Hapus important yang sudah tidak relevan
sudo snapper delete 42

# Tandai snapshot baru sebagai important
sudo snapper modify --userdata "important=yes" 65

Dokumentasi Important Snapshots

Buat catatan manual di file (opsional):

# Buat file log
sudo nano /root/important-snapshots.txt

# Isi contoh:
# Snapshot #42: Golden Image - Fresh Tumbleweed install, semua konfigurasi dasar
# Snapshot #50-51: Pre/Post kernel 6.7 upgrade - Berjalan stabil
# Snapshot #65: Sebelum eksperimen dengan NVIDIA drivers

Mengubah Status Important

Mengubah dari Biasa ke Important

sudo snapper modify --userdata "important=yes" 42

Mengubah dari Important ke Biasa

sudo snapper modify --userdata "important=no" 42

atau hapus metadata important:

sudo snapper modify --userdata "" 42

Contoh Workflow Complete

Skenario: Upgrade Kernel Major

# 1. Cek kondisi sistem saat ini
sudo snapper list

# 2. Buat pre-snapshot important
sudo snapper create --type pre --print-number \
  --description "Pre-Kernel 6.8 Upgrade - Sistem sangat stabil" \
  --userdata "important=yes" \
  --cleanup-algorithm "number"
# Output: 100

# 3. Lakukan upgrade
sudo zypper dup --allow-vendor-change

# 4. Buat post-snapshot important
sudo snapper create --type post --pre-number 100 \
  --description "Post-Kernel 6.8 Upgrade" \
  --userdata "important=yes" \
  --cleanup-algorithm "number"

# 5. Test sistem selama beberapa hari
# (reboot, test hardware, test aplikasi)

# 6. Jika stabil, pertahankan. Jika tidak, rollback:
sudo snapper rollback 100
sudo reboot

8. Snapshot untuk Home Directory (Opsional)

Jika Anda ingin snapshot untuk /home:

Buat Konfigurasi Baru

sudo snapper -c home create-config /home

Verifikasi

sudo snapper list-configs

Buat Snapshot Home

sudo snapper -c home create --description "Backup home directory"

List Snapshot Home

sudo snapper -c home list

9. Troubleshooting

Disk Penuh karena Snapshot

Cek space usage:

df -h
sudo btrfs filesystem usage /

Hapus snapshot lama:

sudo snapper list
sudo snapper delete <range>

Force cleanup:

sudo snapper cleanup number
sudo snapper cleanup timeline

Rollback Tidak Berhasil

Cek status rollback:

sudo snapper list
sudo snapper status 0..1

Coba rollback manual dari Grub

Snapper Lambat

Disable inotify untuk snapshot: Edit /etc/snapper/configs/root:

sudo nano /etc/snapper/configs/root

Ubah:

SYNC_ACL="no"

10. Perintah Ringkas Reference

# List
sudo snapper list
sudo snapper list -t pre-post

# Create
sudo snapper create --description "desc"
sudo snapper create --type pre --print-number --description "desc"
sudo snapper create --type post --pre-number N --description "desc"

# Compare
sudo snapper status N..M
sudo snapper diff N..M /path/to/file

# Rollback
sudo snapper rollback N
sudo snapper undochange N..M /path/to/file

# Delete
sudo snapper delete N
sudo snapper delete N-M

# Config
sudo snapper list-configs
sudo snapper -c root get-config
sudo snapper -c root set-config "KEY=VALUE"

# Cleanup
sudo snapper cleanup number
sudo snapper cleanup timeline

Kesimpulan

Snapper adalah tool yang sangat powerful untuk melindungi sistem openSUSE Anda. Dengan memahami konsep snapshot dan cara penggunaannya, Anda bisa:

  1. ✅ Recovery cepat dari update yang bermasalah
  2. ✅ Eksperimen dengan sistem tanpa khawatir
  3. ✅ Tracking perubahan sistem dengan detail
  4. ✅ Rollback ke kondisi sistem sebelumnya dengan mudah

Ingat: Snapshot bukan backup! Snapshot tetap ada di disk yang sama. Untuk backup lengkap, gunakan solusi backup eksternal.

0 replies

Leave a Reply

Want to join the discussion?
Feel free to contribute!

Leave a Reply

Your email address will not be published. Required fields are marked *