Snapshot Bir Yedekleme Türü müdür?
Sanallaştırma, biz sistem yöneticilerinin hayatını kolaylaştıran bir çok yöntem ve aracıda beraberinde getirdi. Bu araçlardan biri olan snapshot ise tam bir hayat kurtarıcıdır. Düşünsenize bir fabrikanın erp sisteminde güncelleme yapmanız gerekiyor ve size verdikleri kesinti süresi maksimum 30 dakika, bu süre zarfında ilgili sunucuların güncellenmesi, gerekiyorsa yeniden başlatılması ve servislerin tekrardan çalışır duruma getirilmesi gerekmektedir. Bir çok şirket kritik servislerinde size düzenli olarak bir “maintaince window” veremeyebilir, bu durumda sisteme geçmeniz gereken güncellemelerin sayısı ve boyutu artar ve size verdikleri kısacık sürede ancak yüklemeleri yapar ve sunucuyu yeniden başlatırsınız. Eğer şans sizden yanaysa servisler sorunsuz olarak yeniden başlar ve tüm kullanıcılar hayatlarına kaldıkları yerden devam ederler sizde sıcak yatağınıza dönebilirsiniz. Peki ya servisler çalışmazsa? Sorunu çözmeniz tahminen saatler sürecektir veya en güncel yedekten dönemiz gerekir ki bu durumda da bir veri kaybınız olacaktır. Servisin saatlerce cevap vermemesinin yanında birde yaşadığınız stres ve prestij kaybını da eklerseniz sizin için hoş bir tecrübe olmayacağına emin olabilirsiniz.
İşte tam bu noktada snapshotlar devreye girmektedir. Eğer çalışma öncesi elinizde VM’in snapshot’ını almışsanız bir kriz durumunda çok hızlı bir şekilde (yaklaşık olarak 1-2 dakika) VM’i tekrar çalışma öncesi duruma döndürebilirsiniz. Belki yapmanız gereken işlemleri yapamamışızdır ama en azından servis kesintisine veya veri kaybına sebep olmamışsınızdır. Sizi uykusuz başka bir gece beklese de en azından huzurlusunuz.
Peki bu mucizevi snapshot nedir? Nasıl çalışır ve en önemlisi bu yazının konusu olarak snapshot bir backup yöntemi olarak ne kadar mantıklıdır?
Snapshot bir sanal sunucu diskinin t anında fotoğrafını çekip daha sonra disk üzerinde oluşan tüm değişiklerin bir başka dosyaya(delta file) yazılmasıdır. Bu konuyu biraz daha açmam gerekirse siz snapshot aldığınızda yaptığınız değişiklikler artık sanal hard disk’i temsil eden dosyaya(.vmdk) işlenmez bunun yerine değişikliklerin tutulduğu başka bir dosyaya yazılmaya başlar.Siz sanal sunucu üzerinde işlem yaptıkça Delta dosyası büyümeye başlar; Delta dosyalarının ulaşabileceği maksimum boyut orijinal disk boyutunun biraz üstündedir bunun sebebi teknik bir sınırlamadan kaynaklı değildir.Delta blok seviyesinde değişiklikleri tuttuğu için siz orijinal disk üzerindeki tüm verileri değiştirirseniz oluşacak deltanın boyutu toplam değişiklik kadardır, disk üzerinde ki blokları kaç kere değiştirdiğinizin bir önemi yoktur önemli olan son durumudur. Snapshotların büyüme hızıysa tamamen göreceli bir kavramdır. Eğer snapshot’ını aldığınız disk üzerinde sürekli yazma işlemi gerçekleştiriliyorsa hızla büyüyecektir.
Eğer birden fazla snapshot alırsanız eski snapshotlar read-only olarak kalıcak ve değişiklikler son oluşturduğunuz delta file’a yazılacaktır. Eğer snapshotları silmek isterseniz tüm değişiklikleri orijinal diske işleyip read-only olan modu’nu tekrar yazılabilir hale getirilecektir.
Sanırım bu kadar teori yeter.Bunların anlatmamın sebebi snapshot’ı bir yedekleme çözümü olarak konumlandırmadan önce nasıl çalıştığını bilmenizin önemidir. Ben açıkçası snapshotların bir yedekleme çözümü olarak kullanılmasına karşıyım. Sadece ve sadece yukarıda bahsettiğim şekilde senaryolar için ideal bir çözümdür.
Peki neden? Öncelikle yukarıda anlattığım gibi snapshot aldığınız anda bir adet delta file oluşacaktır ve bu delta file büyümeye başlayacaktır. Genelde Tier 1 ve Tier 2 sunucuların snapshot’ını aldığımızı düşünürsek aslında gayet değerli olan SAS ve SSD disk alanlarımızı backup almak için kullanmaya başlıyoruz ki buda aslında bizim için istenmeyen bir maliyettir. Aynı zamanda snapshot’ların kontrolsüz olarak büyümesi datastore’un hızla dolmasına ve daha ciddi sorunların oluşmasına sebep olabilir.
Vmware Delta file’ları başka bir datastore içerisinde saklamanıza izin verse de ben bu yöntemi ciddi performans kaybına sebep olacağı için önermiyorum. Son olarak snapshot almanın sanal diskin performasına negatif bir etkisi bulunmaktadır. Ne zaman ESXI disk üzerinde ki bir disk bloguna erişmek istese önce orijinal vmdk üzerine daha sonrada değişikliklerin tutulduğu delta dosyasına bakmak zorunda kalır. IOPS değeri sabit kalsa bile artık verinin değişip değişmediğini kontrol etmesi gerekmektedir ve genel bir performans düşüşü hissedilir.
Bu sebeplerden dolayıdır ki Vmware snapshotların 72 saatten fazla tutulmaması(benim önerim önemli bir durum yoksa 24 saat idealdir) ve maksimum snapshot sayısı ön tanımlı olarak 32 olsa da performansa olan etkisinden dolayı 2 veya 3 adet snapshottan fazlasını almanızı önermez.
Tekrar ve tekrar üstüne basarak söylemek istiyorum snapshot hayat kurtarıcıdır ama operasyonal sebeplerin yanında günlük veya haftalık backup politikanızın bir parçası olmamalıdır.