vSphere Availability yazı serisinin bu bölümünde vSphere HA kısmına devam ediyoruz.
Host Arızalarına Verilecek Yanıtların Belirlenmesi
Bir host arızalanırsa ve sanal makinelerinin yeniden başlatılması gerekiyorsa, sanal makinelerin “VM yeniden başlatma önceliği” ayarıyla yeniden başlatılma sırasını (VM restart policy) kontrol edebilirsiniz. Bir host diğer host’lar ile management network bağlantısını kaybederse, host izolasyon yanıtı (host isolation response) ayarları ile vSphere HA’in nasıl yanıt vereceğini de yapılandırabilirsiniz. Bir arıza durumu sonrası vSphere HA sanal makineleri yeniden başlattığında diğer faktörler de göz önünde bulundurulur.
Şimdi inceleyeceğimiz ayarlar, bir host arızası veya host izolasyon durumunda cluster içindeki tüm VM’ler için geçerlidir. Ayrıca, belirli sanal makinalar için istisnaları yapılandırabilirsiniz.
Host Isolation Response
Host isolation response, bir host, management network bağlantılarını kaybederse ne olacağını belirler, fakat çalışmaya devam eder. Host isolation response’u, izole olmuş bir host üzerindeki sanal makineleri vSphere HA’in kapatmasını ve izole olmayan başka bir host üzerinde yeniden başlatmak için kullanabilirsiniz. Host Monitoring Status aktif olmalıdır. Host Monitoring Status devre dışı olursa, host isolation response da askıya alınır. Bir host, diğer host’larda çalışan agent’lar ile iletişim kuramadığında kendisinin izole olduğunu belirler ve isolation adreslerine ping atamaz. Bu durumda host, isolation response işlemini işletir. Bu duruma yanıt olarak VM’leri power off ve restart veya shutdown ve restart yapar. Bu özelliği, tek tek sanal makinalar için özelleştirebilirsiniz.

Power off yapmak, bilgisayarın kablosunu çekmek gibidir. Shutdown yapmak ise bilgisayarı başlat menüsünden kapat demektir.
Bir sanal makine, restart poriority (yeniden başlatma önceliği) ayarı disable olarak ayarlanmışsa, herhangi bir host isolation response işlemi yapılmaz.
Sanal makineleri shutdown ve restart edebilmek için guest işletim sistemine (sanal makina içindeki konuk işletim sistemi, (windows 7, windows 10) VMware Tools kurulumunun yapılması gerekiyor. Sanal makineyi kapatmak (shutdown) durumunun korunması açısından avantaj sağlar. Shutdown yapmak, power off yapmaktan daha iyidir. 300 saniyede veya gelişmiş seçeneklerde das.isolationshutdowntimeout alanındaki belirtilen sürede kapatılmayan sanal makineler power off yapılır.

vSphere HA cluster oluşturduktan sonra, belirli sanal makineler için varsayılan Restart Priority ve Isolation Response ayarlarını değiştirebilirsiniz. Spesifik işler için kullanılan sanal makineler için bu değişiklikler faydalı olabilir. Örneğin, DNS veya DHCP için kullanılan sanal makinelerin, diğer sanal makinelerden daha önce açılmasını isteyebilirsiniz.
Bir host isolated veya partitioned duruma geldiğinde, sanal makina split-brain durumu oluşabilir ve master host, datastore’lar ile heartbeat yöntemi ile iletişim kuramaz. Bu durumda master host, bu host’un ayakta olup olmadığına karar veremez ve arızalı olduğunu bildirir. Daha sonra master host, isolated veya partitioned olmuş host üzerindeki sanal makinaları yeniden başlatmayı dener. Isolated/partitioned host üzerindeki sanal makinalar çalışmaya devam ediyor ve bu host isolated veya partitioned duruma geldiğinde, üzerindeki sanal makinaların datastore’larına erişemiyorsa yenden başlatma işlemi başarılı olur. Sanal makinanın iki instance’ı olduğu için, split-brain durumu oluşur. Bununla birlikte, yalnızca bir instance sanal makinanın sanal diskini okuyabilir ve yazabilir. Split-brain durumunu engellemek için VM Component Protection (VMCP) kullanılabilir. VMCP agresif ayarlarla aktif edildiği zaman, açık durumdaki VM’lerin datastore erişimlerini izler ve kendi datastore’larına erişimini kaybeden VM’leri kapatır.
Bu durumdan kurtulmak için ESXi, host isolation durumdan çıktığında ve disk kilitlerini yeniden elde edemediğinde, disk kilidini kaybetmiş sanal makinaya bir soru üretir. vSphere HA otomatik olarak bu soruyu yanıtlar ve böylece disk kilidini kaybeden sanal makine instance’ının yalnızca disk kilitli örneği bırakarak kapanmasına izin verir.
Virtual Machine Dependencies
Sanal makinelerin grupları arasında bağımlılıklar oluşturabilirsiniz. Bunu yapmak için önce vSphere Client’ta cluster için Configure sekmesine gidip VM/Host Groups seçerek VM grupları oluşturmanız gerekir. Gruplar oluşturulduktan sonra, VM/Host Rules‘a göz atarak gruplar arasında yeniden bağımlılık kuralları oluşturabilir ve Type açılır menüsünden Virtual Machines to Virtual Machines seçebilirsiniz. Bu kurallar, belirli VM gruplarının, belirtilen diğer VM grupları hazır duruma gelene kadar yeniden başlatılamayacağını belirleyebilir.
Sanal Makine Yeniden Başlatmalarda Dikkate Alınan Faktörler
Bir arıza sonrası, master host etkilenen sanal makinaları açabileceği bir host belirleyerek onları yeniden başlatmayı dener. Master host böyle bir durumda bir çok faktörü dikkate alır.
- File accessibility: Bir sanal makinanın başlatılabilmesi için, master host’un network üzerinden iletişim kurabildiği aktif cluster host’larından sanal makina dosyalarına erişilebiliyor olması gerekir.
- Virtual machine and host compatibility: Erişilebilir bir host varsa, sanal makinanın bunlardan en az biri ile uyumlu olması gerekir. Sanal makina için uyumluluk dizisi, gerekli tüm VM-Host affinity kurallarını içerir. Örneğin bir kural, bir sanal makinanın sadece iki host üzerinde çalışmasına izin veriyorsa bu iki host üzerinde açılması dikkate alınır.
- Resource reservations: Sanal makinenin çalışabileceği host’lardan en az birinin, sanal makinenin memory yükünü ve herhangi bir kaynak rezervasyonunu (resource reservation) karşılayabilecek rezerve edilmemiş kapasiteye sahip olması gerekir. Dört tür rezervasyon dikkate elınır: CPU, Memory, vNIC ve Virtual flash. Ayrıca, sanal makinaları açabilmek için yeterli network port’unun da olması gerekir.
- Host limits: Kaynak rezervasyonuna ek olarak, bir sanal makina sadece izin verilen sanal makina sayısı veya vCPU değerine ulaşmamış olan bir host üzerinde yeniden başlatılabilir.
- Feature constrains: Gelişmiş seçeneklerde vSphere HA’in uyması gereken VM to VM anti-affinity kuralları ayarlanmışsa, vSphere HA bu kuralları ihlal etmez. vSphere HA aynı zamanda Fault tolerance edilmiş sanal makinalar için host başına belirlenmiş kuralları da ihlal etmez.
Hiçbir host yukarıdaki hususları karşılamazsa master host, vSphere HA’in VM’i başlatmaya yetecek kadar kaynak olmadığını belirten bir olay verir ve cluster koşulları değiştiğinde tekrar dener. Örneğin, sanal makine erişilemiyorsa, master host, dosya erişilebilirliğinde bir değişiklik yapıldıktan sonra tekrar dener.
VM and Application Monitoring
VM Monitoring, Vmware Tools heartbeat’leri belirli bir süre içinde alınmazsa sanal makinaları birbirinden bağımsız olarak yeniden başlatır. Benzer şekilde, Application Monitoring, çalışan bir uygulama için heartbeat alamazsa sanal makinayı yeniden başlatabilir.

VM Monitoring aktif edildiğinde, VM Monitoring servisi, guest işletim sistemi içindeki Vmware Tools’dan I/O etkinliği ve düzenli olarak heartbeat kontrolü yaparak, cluster içindeki her bir sanal makinanın çalışıp çalışmadığını değerlendirir.Heartbeat veya I/O etkinliği alınmazsa, bunun nedeni, guest işletim sisteminin başarısız olması ya da VMware Tools görevleri tamamlamak için herhangi bir zamanda tahsis edilmemesi olabilir. Böyle bir durumda, VM Monitoring hizmeti, sanal makinenin başarısız olduğunu belirler ve hizmeti geri yüklemek için sanal makine yeniden başlatılır.
Bazen, halen düzgün çalışmakta olan sanal makinalar veya uygulamalar heartbeat göndermeyi durdurabilir. Gereksiz resetlemeleri önlemek için, VM Monitoring hizmeti bir sanal makinenin I/O etkinliğini de izler. Arıza aralığı içinde herhangi bir heartbeat alınmazsa, I/O istatistikleri (cluster seviyesinde bir attribute) denetlenir. I/O stats aralığı, önceki iki dakika (120 saniye) boyunca sanal makine için herhangi bir disk veya ağ aktivitesi olup olmadığını belirler. Eğer bir aktivite yoksa, sanal makina resetlenir. Varsaılan değer 120 saniyedir ve gelişmiş seçeneklerde das.iostatsinterval değiştirilebilir.
Application Monitoring’i aktif edebilmek için öncelikle uygun SDK’yı edinmelisiniz (veya Vmware Application Monitoring destekleyen bir uygulama kullanmalısınız) ve izlemek istediğiniz uygulama için özelleştirilmiş heartbeat’ler belirlemelisiniz. Bunu yaptıktan sonra, Application Monitoring, VM Monitoring ile aynı şekilde çalışır. Bir uygulama için belirlenen bir zaman diliminde heartbeat alınmazsa, ilgili sanal makina yeniden başlatılır.

İzleme hassasiyet seviyesini yapılandırabilirsiniz. Son derece hassas izleme, bir arızanın oluştuğu anda daha hızlı sonuç alınmasını sağlar. Pek olası olmasa da, yüksek seviyede hassasiyeti olan izleme, söz konusu sanal makina veya uygulama halen çalışmaya devam etse bile yanlışlıkla hata tespit edebilir, ancak hata yoktur ve bu durum kaynak kısıtlamaları gibi faktörler nedeniyle heartbeat alınamadığı için oluşur. Düşük hassasiyetli izleme, fiili arızalar ve resetlenecek sanal makineler arasında hizmette daha uzun süre kesintiye neden olur. İhtiyaçlarınıza uygun olarak çok dikkatli bir seçim yapmalısınız.
İzleme hassasiyeti için varsayılan ayarlar aşağıdaki gibidir. Ayrıca özel ayarlar da belirleyebilirsiniz.
Setting | Failure Interval (seconds) | Reset Period |
High | 30 | 1 hour |
Medium | 60 | 24 hours |
Low | 120 | 7 days |
Arıza tespit edildikten sonra, vSphere HA sanal makinaları resetler. Resetleme, hizmetlerin hazır durumda olmasını sağlar. Geçici olmayan hatalar için sanal makinaları tekrar tekrar resetlemekten kaçınmak için, varsayılan olarak sanal mkinalar belirli bir zaman aralığı içinde yalnızca üç kez resetlenir. Sanal makinalar üç kez resetlendikten sonra, vSphere HA müteakip arızalardan sonra belirtilen süre geçene kadar sanal makineleri sıfırlamak için hiçbir girişimde bulunmaz. Maximum per-VM resets ayarından reset sayısını yapılandırabilirsiniz.
Resetleme istatistikleri bir sanal makina kapatıp tekrar açıldığında veya başka bir host’a vMotion ile taşındığında silinir. Bu, guest işletim sisteminin yeniden başlatılmasına neden olur, ancak sanal makinenin güç durumunun değiştirildiği ‘yeniden başlatma’ ile aynı değildir.
Bir sanal makinede bir datastore’a erişim sorunu varsa (All Paths Down veya Permanent Device Loss), VM Monitoring servisi, arıza giderilene kadar resetlemeyi askıya alır.