Bulutta anlık görüntüler ve özel imajlar

Snapshot ile, bulut sunucunuzda riskli bir değişiklik yapmadan önce anlık bir yedek alın ve birkaç dakika içinde önceki duruma dönün. Pratik rehber ve detaylı komutlar.

7 dk Güncellendi 27 Sep 2026

Riskli Değişiklikten Önce Snapshot Neden Gereklidir?

Bulut sunucusuyla çalışan herkes, en az bir kez hizmetin bozulmasının acı deneyimini yaşamıştır. Kötü bir güncelleme, Nginx ayarlarında yapılan hatalı bir değişiklik veya yolu karıştıran bir rm -rf komutu — ve aniden site çöker, kullanıcılar hata mesajları görür. Bu anlarda sizi kurtarabilecek tek şey, taze ve sağlıklı bir snapshot'tır.

Bulut ortamında snapshot, sunucunuzun disk durumunun belirli bir andaki fotoğrafıdır. Bu fotoğraf; dosyaları, ayarları, veritabanını ve disk üzerine yazılmış her şeyi içerir. Snapshot'ın normal yedeklemeden temel farkı, hız ve geri yükleme yöntemidir: Snapshot'ı birkaç dakika içinde yeni bir diske bağlayabilir veya sunucuyu ondan başlatabilirsiniz; işletim sistemini yeniden kurmanıza ve dosyaları geri yüklemenize gerek kalmaz.

Bu makalede, riskli bir değişiklikten önce nasıl snapshot alacağınızı, onu nasıl yöneteceğinizi ve bir sorun oluştuğunda hızla önceki duruma nasıl döneceğinizi öğreneceksiniz. Tüm komutlar ve örnekler pratiktir ve hemen kendi sunucunuzda çalıştırabilirsiniz.

Ne Zaman Snapshot Almalısınız?

Altın kural şudur: Bozulursa kolayca geri alamayacağınız her değişiklikten önce. Özellikle şu senaryoları göz önünde bulundurun:

  • Linux çekirdeği yükseltmesi veya büyük güvenlik güncellemesi (ör. apt upgrade veya yum update)
  • PHP, MySQL veya Nginx sürümünü değiştirme
  • Laravel veya Django projelerinde veritabanı migrasyonu (migration) çalıştırma
  • SSH erişimini kesebilecek güvenlik duvarı veya ağ ayarlarını değiştirme
  • Yeni bir yönetim paneli veya kritik bir eklenti kurma
  • Disk bölümleme yapısını değiştirme veya disk boyutunu artırma

Önemli not: Snapshot, düzenli yedeklemenin yerini tutmaz. Snapshot, belirli bir noktaya hızlı dönüş içindir; ancak donanım arızasına veya verilerin yanlışlıkla silinmesine karşı koruma için periyodik yedekleme (örneğin günlük) gereklidir. İkisine de sahip olun.

Snapshot ve Özel İmaj Arasındaki Fark

Birçok kişi bu iki kavramı karıştırır. Snapshot, genellikle hızlı geri yükleme için kullanılan ve yeni bir sunucu oluşturmanın temeli olarak da işlev görebilen anlık bir disk görüntüsüdür. Ancak özel imaj, işletim sistemi, temel ayarlar, kurulu yazılımlar ve yapılandırmanızı içeren hazır bir şablondur ve ondan aynı durumda birden fazla yeni sunucu oluşturabilirsiniz.

Basitçe söylemek gerekirse: Snapshot "geçmişe dönmek" içindir, özel imaj ise "iyi bir durumu gelecekte tekrarlamak" içindir. Sonraki projelerinizde de kullanmak istediğiniz harika bir yapılandırmanız varsa, ondan bir özel imaj oluşturun. Sadece riskli bir değişiklikten önce güvende olmak istiyorsanız, snapshot yeterlidir.

Pratikte Snapshot Alma

Snapshot alma yöntemi altyapınıza bağlıdır. ServerNet yönetim panelini kullanıyorsanız, genellikle disk veya sunucu yönetimi bölümünde bir "Snapshot Al" düğmesi bulunur. Ancak API veya komut satırıyla çalışıyorsanız, arka planda neler olduğunu bilmelisiniz.

Snapshot Öncesi Sunucuyu Hazırlama

İyi bir snapshot, disk durumunu tutarlı (consistent) bir şekilde kaydeden snapshot'tır. Snapshot alındığı anda dosyalar yazılıyorsa, snapshot'ınız bozuk olabilir. Bu sorunu önlemek için:

  1. Veritabanını flush edin: mysql -u root -p -e "FLUSH TABLES WITH READ LOCK;" (ve snapshot'tan sonra UNLOCK TABLES; komutunu çalıştırın)
  2. Dosya sistemini senkronize edin: sync
  3. LVM kullanıyorsanız, tutarlılığı kendisi garanti eden LVM snapshot kullanın.

Çoğu bulut panelinde snapshot, blok düzeyinde otomatik olarak alınır ve bu işlemlere gerek yoktur; ancak içiniz rahat olsun istiyorsanız, snapshot'tan önce bu üç komutu çalıştırın.

OpenStack API ile Pratik Örnek

Sunucunuz OpenStack üzerinde çalışıyorsa (birçok bulut sağlayıcısı ve buna dayalı altyapılar bunu kullanır), aşağıdaki komutla snapshot alabilirsiniz:

openstack server image create --name "snapshot-before-update-$(date +%Y%m%d)" --wait my-server

Bu komut, daha sonra tanımlayabileceğiniz tarih damgalı bir snapshot oluşturur. Geri yüklemek için, bu snapshot'tan yeni bir sunucu oluşturmanız yeterlidir:

openstack server create --flavor my-flavor --image "snapshot-before-update-20250601" --network my-network restored-server

ServerNet'in kendi API'sini kullanıyorsanız, belgelerini inceleyin — genellikle curl ile çağırabileceğiniz bir snapshot oluşturma endpoint'i bulunur.

Snapshot'tan Hızlı Geri Yükleme

Snapshot'ın en önemli özelliği geri yükleme hızıdır. Kötü bir şey olduğunda şu adımları izleyin:

Adım 1: Teşhis ve Erişimi Kesme

İlk iş, sunucuyu devre dışı bırakmak ve yeni trafiğin ona ulaşmasını engellemektir. Sunucu bir Load Balancer arkasındaysa, onu havuzdan çıkarın. Genel bir IP'si varsa, güvenlik duvarını etkinleştirebilir veya web hizmetini durdurabilirsiniz. Bu, geri yükleme sırasında durumun daha da kötüleşmesini önler.

Adım 2: Geri Yükleme Yöntemini Seçme

İki ana yönteminiz vardır:

  • Aynı sunucuya geri yükleme: Bu yöntemde, mevcut disk snapshot ile değiştirilir. Bu genellikle yeniden başlatma gerektirir ve birkaç dakika sürebilir. ServerNet panelinde genellikle disk menüsünde "Snapshot'tan Geri Yükle" seçeneği bulunur.
  • Snapshot'tan yeni sunucu oluşturma: Mevcut sunucu o kadar bozulduysa risk almak istemiyorsanız, snapshot'tan aynı özelliklere sahip yeni bir sunucu oluşturun, IP'yi ona atayın ve ardından eski sunucuyu silin. Bu yöntem daha güvenlidir.

Tavsiyem: Zaman sizin için çok kritik değilse her zaman ikinci yöntemi seçin. Snapshot'tan yeni sunucu oluşturmak, daha fazla bozulma riskini ortadan kaldırır.

Adım 3: Geri Yükleme Sonrası Sağlık Kontrolü

Geri yüklemeden sonra şunları kontrol edin:

  1. SSH erişimi çalışıyor mu?
  2. Ana hizmetler (MySQL, Nginx, PHP-FPM) systemctl status ile sağlıklı mı?
  3. Veritabanına bağlanılabiliyor mu ve kritik veriler mevcut mu?
  4. Günlükleri inceleyin: journalctl -xe

Her şey yolundaysa, trafiği sunucuya geri yönlendirin. Değilse, başka bir snapshot deneyin veya periyodik yedeklere başvurun.

Snapshot Yaşam Döngüsü Yönetimi

Snapshot'lar depolama alanı tüketir ve maliyetlidir. Her gün birkaç snapshot alırsanız, maliyetiniz hızla artar. Belirli bir stratejiniz olsun:

  • Geçici snapshot'ları (riskli değişiklikten önce) her şey yolundaysa 24-48 saat sonra silin.
  • Haftalık snapshot'ları 2 hafta saklayın.
  • Aylık snapshot'ları 3 ay saklayın.

OpenStack'te bunu cron job ile otomatikleştirebilirsiniz:

0 2 * * * openstack server image create --name "weekly-snapshot-$(date +\%Y\%m\%d)" --wait my-server && openstack image delete $(openstack image list --name "weekly-snapshot-" --format value -c ID | head -n -2)

Bu cron her gece saat 2'de bir snapshot alır ve yalnızca son ikisini tutar. \% işaretinin cron'da % karakterini escape etmek için olduğuna dikkat edin.

Yaygın Hatalar ve Çözümleri

Yıllar boyunca snapshot ile çalışırken, veri kaybına yol açan birkaç yaygın hatayı defalarca gördüm:

Hata 1: Yazma Hizmetlerini Durdurmadan Snapshot Alma

Veritabanınız işlem alıyorsa ve siz snapshot alıyorsanız, veritabanı dosyaları tutarsız olabilir ve geri yüklemeden sonra veritabanı açılmayabilir. Çözüm: Snapshot'tan önce veritabanını kilitleyin veya mantıksal yedekleme için mysqldump gibi özel araçlar kullanın ve snapshot'ı ikinci bir koruma katmanı olarak düşünün.

Hata 2: Snapshot'ı Test Etmemek

Birçok kişi snapshot alır ve asla test etmez. Kriz anında snapshot'ın bozuk veya açılamaz olduğunu anlarlar. Çözüm: Ayda bir kez, en yeni snapshot'tan bir test sunucusu oluşturun ve hizmetlerin açıldığından emin olun. Bu 10 dakika sürer ve felaketi önler.

Hata 3: Çok Fazla Snapshot Tutmak

Eski snapshot'lar yalnızca maliyetli olmakla kalmaz, aynı zamanda kafa karışıklığına da yol açar — hangisini geri yüklemeliyim? Çözüm: Tarih ve neden ile standart adlandırma (ör. pre-update-20250601) ve gereksiz snapshot'ların düzenli olarak silinmesi.

Özet ve En İyi Uygulamalar

Snapshot, "küçük bir olay" ile "tam bir felaket" arasındaki farkı yaratabilecek basit ama son derece güçlü bir araçtır. En iyi uygulamaların özeti:

  • Her riskli değişiklikten önce snapshot alın — her zaman, istisnasız.
  • Snapshot'ı açık ve tarih damgalı bir adla kaydedin.
  • Geri yüklemeden sonra hizmetlerin sağlığını mutlaka kontrol edin.
  • Snapshot'ları düzenli olarak test edin.
  • Snapshot'ı periyodik yedeklemeyle birleştirin, onun yerine koymayın.

ServerNet bulut altyapısını kullanıyorsanız, kullanıcı panelindeki snapshot ve özel imaj belgelerini mutlaka inceleyin — bu özellikler genellikle panele yerel olarak entegre edilmiştir ve kullanımını çok kolaylaştırır. Ancak araçtan daha önemlisi alışkanlıktır: Değişiklikten önce snapshot alın. Bu, işinizi kurtarabilecek küçük bir alışkanlıktır.

Bu sayfa yardımcı oldu mu?