Sanallaştırma teknolojilerinin en önemli avantajlarından biri sistem yöneticilerine anlık yedekleme (snapshot) alma imkânı tanımasıdır. VMware vSphere ESXi üzerinde çalışan snapshot mekanizması bir sanal makinenin (VM) o anki durumunu kayıt altına alır. Böylece yazılım güncellemeleri sistem değişiklikleri veya test süreçlerinde herhangi bir hata meydana geldiğinde VM’yi hızlıca eski haline döndürmek mümkün olur.
Ancak her teknolojide olduğu gibi snapshot kullanımında da dikkat edilmesi gereken noktalar vardır. Özellikle snapshot silme (removal/consolidation) süreci doğru yönetilmediğinde sanal makine üzerinde uzun süreli duraksamalar, servis kesintileri ve kullanıcı deneyiminde bozulmalar yaşanabilir.
Bu makalemde snapshot silme sürecinde yaşanan uzun stun sürelerinin nedenleri, işleyiş mekanizması ve çözüm yolları kapsamlı bir şekilde ele alınmaktadır.
Snapshot Mekanizmasının Temel Çalışma Prensibi
Bir VM üzerinde snapshot alındığında aslında temel disk (örneğin disk-flat.vmdk
) üzerinde doğrudan değişiklik yapılmaz. Bunun yerine:
- Tüm yeni yazma işlemleri delta disk adı verilen ek dosyalara yönlendirilir.
- Bu delta dosyaları (örneğin
disk-000001.vmdk
), sadece snapshot sonrasında yapılan değişiklikleri kaydeder. - Temel disk ise snapshot alındığı andaki orijinal haliyle korunur.
Böylece snapshot silindiğinde veya birleştirildiğinde (consolidation) delta dosyalarındaki değişiklikler yeniden temel diske aktarılır ve snapshot zinciri temizlenir.
Snapshot Silme (Consolidation) Süreci Adım Adım
Bir VM üzerinde snapshot silindiğinde arka planda oldukça karmaşık bir süreç işler. Bu süreci şu şekilde özetleyebiliriz:
- Consolidate Helper Snapshot’ın Oluşturulması
- Snapshot silme işlemi başladığında yeni bir delta dosyası (
disk-000002.vmdk
) oluşturulur. - VM, o andan itibaren tüm yazma işlemlerini bu dosyaya kaydetmeye başlar.
- Snapshot silme işlemi başladığında yeni bir delta dosyası (
- Delta Dosyalarının Temel Diskle Birleştirilmesi
- ESXi host’un DiskLib API bileşeni
disk-000001.vmdk
gibi eski delta dosyalarının içeriklerinidisk-flat.vmdk
dosyasına kopyalar. - Bu sırada VM aktif olarak çalışmaya devam eder ve yeni veriler helper snapshot’a yönlendirilir.
- ESXi host’un DiskLib API bileşeni
- Son Konsolidasyon
- İlk delta birleştirmeleri tamamlandığında sırada helper snapshot (
disk-000002.vmdk
) vardır. - Bu dosyanın içeriği de temel disk ile birleştirilir.
- İşlem tamamlandığında geçici dosyalar silinir ve VM yalnızca ana disk üzerinden çalışmaya devam eder.
- İlk delta birleştirmeleri tamamlandığında sırada helper snapshot (
Stun (Geçici Durdurma) Mekanizması
Snapshot silme sırasında VM’ler belirli aralıklarla kısa süreliğine durdurulur. Bu işleme stun adı verilir. Stun’un amacı delta dosyalarında biriken değişikliklerin güvenli bir şekilde temel diske yazılmasını sağlamaktır.
Normal şartlarda stun süresi saniyelerden daha kısa olur ve kullanıcılar bu durumu fark etmez. Ancak bazı koşullarda stun süreleri uzayabilir ve ciddi kesintilere neden olabilir.
Stun Süresini Uzatan Faktörler
- Yoğun I/O Aktivitesi
- Özellikle veritabanı, e-posta sunucusu veya sürekli yazma/okuma yapan uygulamalar çalışıyorsa delta dosyaları hızla büyür.
- Bu da konsolidasyon sürecini uzatır.
- Depolama (Storage) Gecikmeleri
- Altyapıdaki disk sisteminde yüksek gecikme (latency) varsa delta dosyalarının temel diske işlenmesi çok daha uzun sürer.
- ESXi’nin Iteratif Konsolidasyon Yaklaşımı
- ESXi, her stun süresini maksimum 15 saniye ile sınırlar. Eğer işlem bu sürede tamamlanamazsa sistem denemeyi bırakmaz.
- 9 kez tekrar dener ve her defasında VM’yi kısa süreli duraklatır.
- denemede ise konsolidasyonu tamamlamak için VM’yi gerektiği kadar uzun süre tamamen durdurur. İşte bu noktada uzun süreli kesinti yaşanır.
Gerçek Hayattan Bir Senaryo
Bir VM üzerinde yalnızca tek bir disk olduğunu varsayalım:
- Snapshot alındığında
disk-000001.vmdk
oluşturulur. - Silme sürecinde yeni bir helper snapshot (
disk-000002.vmdk
) devreye girer. - VM çalışmaya devam ederken, ESXi
disk-000001.vmdk
içeriğini temel disk ile birleştirir. - Ardından
disk-000002.vmdk
de temel diske aktarılır.
Eğer bu süreçte VM üzerinde yüksek I/O işlemleri varsa veya storage altyapısı zayıfsa stun süreleri birkaç saniyeden dakikalara kadar çıkabilir. Bu da uygulamaların yanıt vermemesine RDP oturumlarının kopmasına ve kritik iş yüklerinde kesintilere sebep olur.
Sorunun Etkileri
- Uygulama Kesintileri: Veri tabanlarının anlık olarak çalışmayı durdurması web servislerinin yanıt verememesi.
- Kullanıcı Deneyimi: RDP veya SSH oturumlarının düşmesi.
- İş Sürekliliği Riski: Kritik iş uygulamalarında beklenmedik downtime yaşanması.
Çözüm Önerileri ve En İyi Uygulamalar
- Snapshot Kullanımını Sınırlayın
- Snapshot’lar uzun vadeli yedekleme aracı değildir. Sadece kısa süreli test ve bakım senaryolarında kullanılmalıdır.
- Konsolidasyon İşlemlerini Planlayın
- Özellikle yüksek I/O yapan VM’lerde snapshot silme işlemleri yoğun saatler dışında yapılmalıdır.
- Depolama Performansını İzleyin
- Storage altyapısında gecikme sorunları proaktif şekilde tespit edilmeli ve kapasite yönetimi yapılmalıdır.
- Log Dosyalarını Takip Edin
vmware.log
dosyasında konsolidasyon süreleri, stun zamanları ve delta dosya boyutları detaylı şekilde görülebilir.
VMware ortamlarında snapshot özelliği güçlü bir araç olsa da doğru kullanılmadığında performans sorunları ve uzun süreli kesintiler doğurabilir.
Özellikle snapshot silme sırasında yaşanan stun süreçleri yüksek I/O ve depolama gecikmeleri nedeniyle kritik sistemlerde ciddi iş sürekliliği problemlerine yol açabilir.
Sistem yöneticilerinin snapshot yönetiminde dikkatli olmaları konsolidasyon işlemlerini doğru planlamaları ve depolama performansını sürekli izlemeleri bu sorunların önüne geçmek için hayati öneme sahiptir.