Anlık görüntü almak saniyeler sürer, oysa disk yüzlerce gigabayttır. Bunun nedeni hiçbir şeyin kopyalanmamasıdır: anlık görüntü bir veri kopyası değil, o andaki durumun işaretçilerle dondurulmuş hâlidir.
Yazarken kopyalama
En yaygın yöntem şudur. Anlık görüntü alındığında mevcut bloklar “dokunma” diye işaretlenir.
Sonrasında bir blok değiştirilmek istendiğinde sistem önce eski hâlini bir kenara kopyalar, sonra yeni veriyi yazar. Böylece anlık görüntü, eski hâle işaret etmeye devam eder.
Sonuç: anlık görüntü anında oluşur, ama sonraki her yazma biraz pahalılaşır — bir okuma ve fazladan bir yazma eklenir.
Yönlendirmeli yazma
İkinci yöntem tersini yapar. Eski bloklara hiç dokunulmaz; yeni yazmalar başka bir yere yönlendirilir ve işaretçiler güncellenir.
Yazma cezası düşüktür, çünkü kopyalama yoktur. Buna karşılık zamanla veri diskte parçalanır ve anlık görüntü silinirken birleştirme işi çıkar.
Depolama dizileri ve modern dosya sistemleri genelde bu yaklaşımı kullanır; sanallaştırma platformlarında ise ikisi de görülür.
Neden yer kaplar
En sık yanlış anlaşılan nokta budur: anlık görüntü boş başlar ama büyür.
Aldığınız anda neredeyse hiç yer kaplamaz. Ama sanal makine çalışmaya devam ettikçe değişen her blok için eski hâli saklanır. Yoğun yazma alan bir sunucuda anlık görüntü, birkaç gün içinde asıl diskin boyutuna yaklaşabilir.
Bu yüzden “kısa süre için” alınıp unutulan anlık görüntüler, depolama dolmasının en yaygın nedenlerindendir. Ana makinede alan tükendiğinde de tek bir sanal makine değil, o depolamadaki tüm sanal makineler birden durur.
Diskin gerçekte neden dolduğunu ayırt etmek için disk doldu ama boş görünüyor yazısına bakabilirsiniz.
Zincir uzadıkça
Üst üste anlık görüntü almak bir zincir oluşturur. Her okuma isteği, veriyi bulmak için zinciri geriye doğru dolaşmak zorunda kalır.
İki sonuç doğar. Performans kademeli olarak düşer — zincir uzadıkça okuma yavaşlar. Ve zincirdeki tek bir bozuk halka, ondan sonraki her şeyi kullanılamaz kılar.
Silme işlemi de göründüğü kadar masum değildir: anlık görüntüyü kaldırmak, biriken değişikliklerin asıl diske birleştirilmesi demektir. Bu işlem uzun sürer, yoğun disk kullanır ve tam da bu sırada alan sıkışıksa başarısız olabilir.
Pratik kural: anlık görüntüler saatler için alınır, günler için değil. Unutulmuş olanları bulmak için düzenli bir denetim gerekir.
Uygulama tutarlılığı
Bir anlık görüntü diskin o anki hâlini dondurur — ama bellekte bekleyen, henüz diske yazılmamış veriyi bilmez.
Bir veritabanı için bu, elektrik kesilmiş gibi bir durumdur. Çoğu veritabanı bundan kurtulabilir, ama bu bir tasarım değil şanstır.
Doğru yöntem, anlık görüntü almadan önce uygulamaya haber vermektir: yazmaları geçici olarak durdur, tamponları diske boşalt, sonra devam et. Windows tarafında bu bir gölge kopya hizmetiyle, Linux tarafında ise kanca betikleriyle yapılır.
Bu koordinasyon yoksa anlık görüntü “çöktükten sonraki hâl”dir. Veritabanları için neden dosya kopyalamanın yetmediği veritabanı: dosya kopyalamak yetmez rehberinde.
Anlık görüntü yedek değildir
Bu ayrım kritiktir ve pratikte sık ihlal edilir.
Anlık görüntü aynı depolamada durur. O depolama arızalanırsa, silinirse ya da şifrelenirse anlık görüntü de gider. Bir yedek ise ayrı bir yerde, tercihen ayrı kimlikle erişilen bir depoda bulunur.
Fidye yazılımı vakalarında saldırganların ilk yaptığı işlerden biri anlık görüntüleri silmektir; zincirin bu adımı fidye yazılımı nasıl bulaşır yazısında.
İkisinin ne zaman hangisinin kullanılacağı yedekleme mi anlık görüntü mü rehberinde ayrıntılı ele alınıyor.
Depolama dizisi anlık görüntüleri
Sanallaştırma platformunun aldığı anlık görüntüyle depolama dizisinin aldığı aynı şey değildir ve karıştırılmamalıdır.
Dizi seviyesindeki anlık görüntü, tüm birimi bir bütün olarak dondurur ve genelde çok daha verimlidir — performans cezası düşüktür, yüzlercesi tutulabilir. Bu yüzden sık aralıklarla alınıp kısa kurtarma noktaları sağlamak için kullanılır.
Buna karşılık dizi, üzerindeki sanal makinelerin ya da veritabanlarının ne durumda olduğunu bilmez. Uygulama tutarlılığı yine ayrıca sağlanmalıdır.
İnce sağlanan havuzlarda ise ayrı bir tuzak vardır: anlık görüntüler havuzdan yer tüketir ve havuz dolduğunda üzerindeki her şey birden yazma yapamaz hâle gelir. Havuz doluluğu, birim doluluğundan ayrı izlenmelidir.
Nerede gerçekten işe yarar
Anlık görüntünün doğru kullanımı dardır ve nettir: geri alınabilir bir değişiklik yapmadan hemen önce.
Yama uygulamadan önce, sürüm yükseltmeden önce, riskli bir yapılandırma değişikliğinden önce alınır; işlem başarılıysa hemen silinir.
Bunun dışındaki kullanımlar — uzun süreli saklama, arşiv, düzenli koruma — yedekleme sisteminin işidir. Kurtarma hedeflerinin hangisini gerektirdiğini kurtarma hedefi planlayıcı aracıyla görebilirsiniz.
Kısaca
Anlık görüntü veri kopyalamaz; eski blokları koruyup işaretçilerle o anı dondurur. Bu yüzden anında alınır, ama zamanla büyür ve performansı düşürür.
Kısa ömürlü olmalı, uygulamayla koordine edilmeli ve yedek yerine geçtiği asla varsayılmamalıdır — çünkü koruduğu veri, koruduğunu sandığınız depolamanın üzerinde durur.