Snapshot
Eş anlamlılar: Anlık Görüntü
Snapshot, bir disk veya sanal makinenin belirli bir andaki durumunun hızlı bir kaydıdır. Full backup gibi tüm veriyi kopyalamaz; copy-on-write ile değişiklikleri tracke eder. Hızlıdır ama uzun dönem yedek için uygun değildir. Güncelleme öncesi güvenlik için idealdir.
Snapshot Nedir?
Snapshot (anlık görüntü), bir disk, dosya sistemi veya sanal makinenin belirli bir andaki durumunun hızlıca oluşturulan sabit referansıdır. Geleneksel full backup'ın aksine tüm veriyi kopyalamaz — copy-on-write (CoW) mekanizması ile yalnızca snapshot sonrası yapılan değişiklikleri yeni bloklarda tutar. Saniyeler içinde oluşturulur, anında geri dönüş (revert) imkanı sunar.
Nasıl Çalışır?
Snapshot alındığında veri "dondurulur". Sonraki yazma işlemleri:
- Yeni veri farklı bir bloka yazılır
- Eski blok snapshot referansı olarak kalır
- Mevcut durum pointer'ı yeni bloğa işaret eder
- Revert ederseniz pointer eski bloklara döner
Snapshot Teknolojileri
- LVM Snapshot: Linux Volume Manager
- ZFS Snapshot: En güçlü, instant, unlimited
- Btrfs Snapshot: Linux filesystem
- VMware VM Snapshot: vSphere
- KVM qcow2: Internal / external snapshot
- Hyper-V Checkpoint
- AWS EBS Snapshot: Cloud
- Storage array snapshots: NetApp, Pure Storage
Snapshot vs Backup
- Snapshot: Hızlı, aynı sistemde, disk arızasında işe yaramaz
- Backup: Yavaş, farklı medyada, felaket kurtarma için
Snapshot backup değildir — yalnızca hızlı geri alma mekanizmasıdır. 3-2-1 kuralı uygulanmalı.
Snapshot Kullanım Senaryoları
- Güncelleme öncesi: Kernel, uygulama update öncesi güvenlik
- Test ortamı: Test sonrası hızla clean state'e dön
- Deployment: Başarısız deploy'da anında rollback
- Training: Her öğrenci temiz ortamdan başlar
- Forensik analiz: Güvenlik olayında delil
- Stage → Production: Staging'ten prod'a clone
Snapshot Sınırlamaları
- Zaman geçtikçe değişiklikler birikir, disk kullanımı artar
- Performans etkisi (write penalty CoW)
- Uzun süreli snapshot tutma tehlikelidir
- Disk tamamen arızalanırsa snapshot da gider
- Bazı DB'lerde tutarlılık için quiesce gerekir
Snapshot Yönetim İpuçları
- Maksimum 24-72 saat tut — sonra sil veya backup'a dönüştür
- Her zaman snapshot alırken "neden" belgele
- VM snapshot sayısını 3 ile sınırla (VMware önerisi)
- DB snapshot öncesi quiesce yap (FLUSH TABLES WITH READ LOCK)
- Snapshot + backup birlikte kullan
LVM Snapshot Örneği
lvcreate -L 10G -s -n db_snap /dev/vg0/db_lv
# snapshot kullan, test et
lvremove /dev/vg0/db_snap # snapshot sil
# veya:
lvconvert --merge /dev/vg0/db_snap # revert
ZFS Snapshot
ZFS snapshot'ları instant ve gerçekten ücretsiz (disk yazılan kadar yer):
zfs snapshot tank/db@before-upgrade
zfs rollback tank/db@before-upgrade
zfs list -t snapshot
VMware Snapshot
vSphere Client üzerinden tek tıkla alınır. Önerilen:
- 72 saatten fazla tutma
- 3'ten fazla zincirleme snapshot oluşturma
- Production DB VM'lerde dikkatli kullan
- Delete/Consolidate ile temizle
Cloud Snapshot (AWS EBS)
EBS snapshot'ları S3'te saklanır, incremental, coğrafi replikasyon destekli:
aws ec2 create-snapshot --volume-id vol-abc123 --description "pre-deploy"
aws ec2 describe-snapshots --owner-ids self
Consistent Snapshot
Uygulama çalışırken alınan snapshot tutarlı olmayabilir. Çözümler:
- Uygulama quiesce (DB lock, flush)
- VSS (Windows Volume Shadow Copy)
- Application-consistent agent'lar
- Snapshot öncesi DB dump
MeoHost ve Snapshot
MeoHost VDS paketleri KVM snapshot destekler — müşteri panelinden tek tıkla alınabilir. VMware vCenter ile enterprise VM snapshot, haftalık otomatik snapshot + günlük JetBackup full backup kombinasyonu standart yedekleme stratejisidir.