13 Kasım 2026, Cuma
Sunucu İzleri

Altyapıyı anlamak, geleceği kurmak

Keşfet

Sunucu Sanallaştırmasında Snapshot Alma Mantığı Nasıl Çalışır

Sunucu sanallaştırmasında snapshot alma işleminin nasıl çalıştığını, fark dosyası mekanizmasını ve performans etkilerini öğrenin.

Sunucu Sanallaştırmasında Snapshot Alma Mantığı Nasıl Çalışır

Fotoğraf: Nicolas Foster / Pexels

Sanallaştırma dünyasına yeni başlayan biri için "snapshot" kelimesi genellikle "yedek" ile karıştırılır. Oysa ikisi çok farklı amaçlara hizmet eden, farklı mantıklarla çalışan yapılardır. Bu yazıda snapshot'ın bir sanal makinede tam olarak ne yaptığını, disk üzerinde hangi mekanizmaların devreye girdiğini ve nerelerde dikkatli olunması gerektiğini adım adım ele alacağız.

Bir bakışta

  • Snapshot, sanal makinenin belirli bir andaki disk ve bellek durumunun kaydıdır; yedekleme ile karıştırılmamalıdır.
  • Fark dosyası mekanizması sayesinde snapshot alındıktan sonraki değişiklikler ayrı dosyaya yazılır ve sistem korunur.
  • Snapshot zincirleri performansı düşürür ve depolama alanını arttırır; kontrol altında tutulması ve gerektiğinde commit edilmesi gerekir.

Snapshot Tam Olarak Nedir?

Bir snapshot, bir sanal makinenin belirli bir andaki disk, bellek ve yapılandırma durumunun kaydıdır. Yani sanal makineye "şu anki halini bir kenara not et" demiş gibi düşünülebilir.

Bunu bir fotoğraf karesi gibi hayal etmek işe yarar: Kamera deklanşörüne bastığınız an her şey donar ve o an olduğu gibi saklanır. Ancak fotoğraf çekildikten sonra hayat devam eder; siz yürümeye devam edersiniz ama fotoğraftaki görüntü değişmez. Snapshot da benzer şekilde çalışır — sanal makine çalışmaya devam eder, ama o ana ait bir referans noktası saklanmış olur.

Burada kritik nokta şudur: snapshot, sistemden bağımsız, ayrı bir kopya değildir. Orijinal disk dosyasına ve aynı depolama altyapısına bağımlı bir referans noktasıdır. Bu farkı anlamak, ilerleyen bölümlerde değineceğimiz yedekleme karşılaştırması için temel oluşturuyor.

Disk Üzerinde Ne Oluyor: Fark (Delta) Dosyası Mantığı

Snapshot alındığı anda, o ana kadar kullanılan disk dosyası dondurulur, yani read-only (salt okunur) hale getirilir. Sanal makine artık bu dosyaya doğrudan yazma yapmaz.

Peki sanal makine çalışmaya devam ederken yapılan değişiklikler nereye gidiyor? Bu noktada devreye fark dosyası (delta veya differencing disk olarak da adlandırılır) giriyor. Snapshot alındıktan sonraki tüm yeni yazma işlemleri bu ayrı dosyaya yönlendirilir. Orijinal disk olduğu gibi korunurken, değişiklikler izole bir şekilde biriktirilmiş olur.

Bu yapının mantığı aslında oldukça pratik: sanal makineyi durdurmadan, kesintiye uğratmadan bir "geri dönüş noktası" oluşturmayı mümkün kılar. Sanal makine okuma işlemlerinde hem orijinal diski hem de fark dosyasını birlikte değerlendirir — güncel veri fark dosyasındaysa oradan, değilse orijinal diskten okunur. Bu çift katmanlı okuma mekanizması, snapshot sayısı arttıkça giderek daha fazla işlem gücü gerektirir.

Bellek Durumunun Dahil Edilmesi: Donma Anına Geri Dönüş

Birçok sanallaştırma platformu, snapshot alırken sadece disk durumunu değil, isteğe bağlı olarak sanal makinenin bellek (RAM) içeriğini de kaydetme seçeneği sunar.

Bu seçenek işaretlendiğinde, snapshot alındığı andaki çalışan uygulamalar, açık bağlantılar ve işlemci durumu da saklanır. Böylece snapshot'a geri dönüldüğünde sanal makine sadece diskin o anki haline değil, tam anlamıyla "donma anındaki" çalışır haline geri döner — sanki hiç ara verilmemiş gibi.

Ancak bu kolaylığın bir bedeli vardır. Bellek içeriğini de kaydetmek, hem snapshot alma süresini uzatır hem de ek disk alanı gerektirir, çünkü sunucunun RAM boyutuna yakın büyüklükte bir dosya oluşturulur. Sadece disk durumunu yakalamak istendiğinde bu seçenek kapalı bırakılabilir; bu da hem daha hızlı hem daha az yer kaplayan bir snapshot anlamına gelir.

Snapshot Zincirleri ve Birikmenin Etkileri

Bir snapshot aldıktan sonra ikinci bir snapshot daha alınırsa, ilk fark dosyası da kendi içinde donar ve yeni değişiklikler ikinci bir fark dosyasına yazılmaya başlar. Bu şekilde art arda alınan snapshot'lar birbirine bağlı bir zincir oluşturur.

Zincir uzadıkça işler karmaşıklaşır. Bir veri okunmak istendiğinde sistem, güncel veriyi bulana kadar zincirdeki dosyaları sondan başa doğru sırayla kontrol etmek zorunda kalabilir. Zincirde üç, beş, on fark dosyası varsa, her okuma işlemi bu dosyaların tamamını veya bir kısmını taramayı gerektirebilir.

Bunun doğal sonucu iki şekilde ortaya çıkar: disk I/O performansında kademeli bir yavaşlama ve disk alanı tüketiminde sürekli artış. Her fark dosyası, üzerine yazılan yeni verilerle büyümeye devam eder; birikmiş çok sayıda snapshot, kısa sürede ciddi miktarda depolama alanı tüketebilir. Bu yüzden snapshot zincirlerinin kontrolsüz şekilde uzamasına izin vermemek önemlidir.

Snapshot ile Yedekleme (Backup) Arasındaki Fark

Bu, snapshot konusunda en sık yapılan kavram karışıklığıdır. Snapshot ile backup birbirinin yerine geçebilecek kavramlar değildir.

Bir backup, sistemden bağımsız, ayrı bir depolama ortamına alınmış tam bir kopyadır. Orijinal sistem tamamen kaybolsa, disk arızalansa veya sunucu fiziksel olarak zarar görse bile backup elinizde kalır.

Snapshot ise aynı depolama altyapısına bağımlıdır. Orijinal disk ile fark dosyası genellikle aynı fiziksel depolama birimi üzerinde bulunur. Bu nedenle depolama donanımında bir arıza, bozulma veya veri kaybı yaşandığında, hem orijinal disk hem de üzerine kurulu snapshot zinciri aynı anda etkilenebilir. Snapshot bu senaryoda hiçbir koruma sağlamaz.

Bu yüzden snapshot'ı asla yedekleme stratejisinin yerine koymamak gerekir. Snapshot, kısa vadeli ve geri dönüşü kolaylaştıran bir araçtır; backup ise uzun vadeli veri güvenliğinin temelidir.

Snapshot Silme (Commit) Sırasında Ne Olur?

Bir snapshot artık ihtiyaç duyulmadığında silinir, ancak bu işlem basit bir "dosyayı sil" komutundan ibaret değildir. Bu süreç genellikle commit (birleştirme) olarak adlandırılır.

Commit işleminde, fark dosyasında biriken tüm değişiklikler orijinal disk dosyasına geri yazılır. Böylece sistem tekrar tek bir disk dosyası üzerinden çalışır hale gelir. Bu birleştirme sırasında disk üzerinde yoğun bir okuma-yazma trafiği oluşur, çünkü biriken tüm farklar sırayla orijinal diske aktarılmaktadır.

Fark dosyası ne kadar büyükse ve ne kadar uzun süredir açıksa, commit işlemi de o kadar uzun sürer ve o kadar fazla I/O yükü oluşturur. Bazı durumlarda bu işlem sırasında sanal makinenin performansında geçici bir düşüş hissedilebilir. Büyük veya uzun süre birikmiş snapshot'larda commit işlemi daha riskli hale gelir; işlem yarıda kesintiye uğrarsa veri tutarlılığı sorunları ortaya çıkabilir. Bu nedenle snapshot'ların gereğinden uzun süre açık bırakılmaması önerilir.

Snapshot Hangi Durumlarda Kullanılır?

Snapshot'ın asıl değeri, kısa süreli ve kontrollü kullanım senaryolarında ortaya çıkar.

En yaygın kullanım alanı, bir yazılım güncellemesi veya yapılandırma değişikliği öncesinde geri dönüş noktası oluşturmaktır. Güncelleme beklenmedik bir soruna yol açarsa, sistem snapshot alınan ana geri döndürülebilir ve değişiklik öncesi duruma hızla ulaşılabilir.

Bir diğer tipik senaryo test ve deneme ortamlarıdır. Yeni bir yapılandırmayı veya yazılımı denerken, bir şeyler ters giderse hızlıca eski duruma dönme ihtiyacı doğar. Snapshot bu noktada pratik bir güvenlik ağı görevi görür.

Ancak bu senaryoların ortak noktası şudur: snapshot kısa süreli bir araç olarak düşünülmelidir. İşlem tamamlanıp sistemin sorunsuz çalıştığı doğrulandıktan sonra snapshot'ın commit edilmesi, yani silinmesi gerekir.

Uzun Süre Açık Kalan Snapshot'ların Riskleri ve İyi Uygulamalar

Snapshot'ların silinmeyi unutulması, sanallaştırma ortamlarında sık karşılaşılan bir sorundur. Açık kalan her snapshot, arkasında büyüyen bir fark dosyası biriktirmeye devam eder.

Bu durumun doğurduğu riskler birkaç başlıkta toplanabilir:

  • Disk alanı tükenmesi: Fark dosyaları zamanla büyüyerek depolama alanını hızla doldurabilir, bu da beklenmedik kapasite sorunlarına yol açabilir.
  • Performans düşüşü: Zincir uzadıkça okuma işlemleri yavaşlar, sanal makinenin genel tepki süresi kötüleşir.
  • Sistem kilitlenmesi riski: Disk alanı kritik seviyeye düştüğünde sanal makine yazma işlemlerinde sorun yaşayabilir, bu da hizmet kesintisine kadar varan sonuçlar doğurabilir.

İyi bir uygulama olarak şunlar önerilebilir: snapshot'ları yalnızca gerekli olduğu süre boyunca açık tutmak, düzenli aralıklarla hangi sanal makinelerde açık snapshot bulunduğunu kontrol etmek ve işlem tamamlandığında vakit kaybetmeden commit etmek. Ayrıca, daha önce vurgulandığı gibi, snapshot'ı hiçbir zaman yedekleme stratejisinin yerine kullanmamak, uzun vadeli veri güvenliği için ayrı ve bağımsız bir backup çözümüne sahip olmak gerekir.

Sonuç olarak snapshot, sanallaştırma ortamlarında doğru kullanıldığında oldukça değerli, pratik bir araçtır. Ancak mantığını anlamadan, kontrolsüz şekilde biriktirilmesi hem performans hem de veri bütünlüğü açısından ciddi sorunlara dönüşebilir.

Sunucu İzleri Editör Ekibi

Altyapıyı anlamak, geleceği kurmak

Tüm yazıları

Sen ne düşünüyorsun?

Yorumlar onaylandıktan sonra yayınlanır. E-posta adresin yayınlanmaz.

Haftanın fikirleri, gelen kutunda.

Teknoloji ve yeni fikirler üzerine seçtiğimiz en iyi yazılar, her hafta e-posta adresine gelsin.