Hyper-V: Host to Host Failover Cluster Kurulumu Bölüm-7

Önceki bölümler doğrultusunda failover cluster yapımızı hazırladığımıza göre, artık cluster yeteneklerini test edebiliriz.

10. Hyper-V Failover Cluster Sonrası Gelen Yetenekler

10.1. Quick Migration – QM (Hızlı Taşıma)

10.1.1. Quick Migration Nedir?

Quick Migration yani hostlar arası Hızlı Taşıma özelliği cluster temelli bir özelliktir. Kullanım amacı ise bir fiziksel node üzerinde çalışan sanal makineyi, hızlı bir şekilde diğer fiziksel node üzerine taşımaktır. Yani QM, sanal makine seviyesinde hızlı taşıma sağlıyor.

Konuyu küçük bir senaryo ile örneklendirelim.

Yukarıda bir failover cluster yapısı kurduk ve üzerinde Cluster-XP isimli bir VM var. Bu VM şu an HV-Node1 fiziksel sunucusu üzerinde çalışıyor. Herhangi bir nedenden dolayı  HV-Node1’in kapatılması gerekiyor (Örneğin sunucuya fiziksel olarak ram ilavesi yapacağız). Bu durumda Quick Migration özelliğini kullanarak birkaç küçük tıklama ile HV-Node1 üzerinde çalışan Cluster-XP isimli VM’i, tüm içeriği ile birlikte cluster’ın diğer üyesi olan HV-Node2 üzerine taşımamız mümkün. İşimiz bittikten sonra HV-Node2 üzerinde çalışan VM’i tekrar Quick Migration ile eski konumuna geri alabiliriz.

Bu özellik Live Migration yani Canlı Taşıma özelliği ile karıştırılmamalı ki bu sık yapılan hatalardan birisi.

Quick Migration ile taşıma sırasında VM network üzerinde hizmet veremez ve taşıma sonrasında hizmet verdiği session’lar kapanmış, connection’lar kesilmiş durumdadır. QM’in en önemli karakteristiği budur, taşıma esnasında VM’e erişim kesilir!

Quick Migration aşağıdaki ürünler ile kullanılabilir (cluster üyesi node’lar bu işletim sistemlerinden biri olmalı):

  • Windows Server 2008 (Enterprise, Datacenter)
  • Hyper-V Server 2008
  • Windows Server 2008 R2 (Enterprise, Datacenter)
  • Hyper-V Server 2008 R2

Live Migration ise tamamen canlı bir taşıma teknolojisidir. Taşıma sırasında VM network üzerinde hizmet verebilir durumdadır ve taşıma süresince üzerindeki servis ve uygulamalara erişim kesilmez. Taşıma tamamlandıktan sonra session’lar ve tüm connection’lar hala bağlı ve açık durumdadır. LM’in en önemli karakteristiği ise taşıma esnasında VM’e ve üzerindeki servislere erişilebiliyor olmasıdır.

Live Migration R2 ile gelen bir özelliktir ve aşağıdaki ürünler ile kullanılabilir (cluster üyesi node’lar bu işletim sistemlerinden biri olmalı):

  • Windows Server 2008 R2 (Enterprise, Datacenter)
  • Hyper-V Server 2008 R2

Quick Migration ile taşıma sırasında VM’e erişim durduğu için taşıma işleminin süresi önem kazanıyor çünkü süre ne kadar uzarsa, VM o kadar hizmet dışı kalacaktır. Peki bu süre ne kadardır ve süreye etki eden faktörler nelerdir?

Aslında bu konuyu fazla detaylandırmak istemiyorum çünkü önümüzdeki makalelerde ayrıntılı olarak ele alacağız. Ama ön bilgi olması açısından şunları söyleyelim.

VM’in memory miktarı başta olmak üzere, node’lar ile storage arasındaki bağlantı tipi ve storage üzerindeki disklerin tipi/hızı Quick Migration işleminin süresine direkt olarak etki eden temel faktörlerdir.

Bunun nedenini anlamak için Quick Migration işleminin background’una bakmak gerekir.

Quick Migration esnasında gerçekleşen işlemler sırası kabaca şöyle.

1. VM saved state duruma alınır.

2. VM durumu (VSV ve BIN bilgisi) diğer node üzerine taşınır.

3. VM diğer node üzerinde start edilir. VSV ve BIN dosyaları sayesinde kaldığı yerden çalışmaya devam eder.

Bir VM için QM (Quick Migration) komutunu verdikten sonra, VM bulunduğu host üzerinde saved state dediğimiz bir duruma alınır (VM’in o anki durumu ile dondurulduğunu düşünün). VM’in o anki durumunu (başta sanal memory içeriğini ve process bilgilerini) tutan dosyalar ise VSV ve BIN dosyalarıdır. QM işleminin süresine etki eden temel faktör bu dosyaların boyutlarıdır. Bu dosyaların boyutları ise VM’e atadığımız sanal memory miktarı ile doğru orantılıdır.

Örneğin 256MB memory’e sahip bir VM için yaklaşık 256mb boyutunda bir BIN dosyası vardır ve bunun QM sırasında save edilmesi, bilgisinin diğer node üzerine taşınması gerekir.

Ama 2GB memory’e sahip bir VM için 2048mb boyutunda bir BIN dosyası vardır ve haliyle taşıma işlemi daha uzun sürecektir.

Bunun dışında storage ve node’lar arasındaki bağlantı teknolojisi de bu taşıma işleminin hızına direkt olarak etki edecektir.

Dediğim gibi ayrıntılar daha sonra :)

Bizim kurmuş olduğumuz iSCSI cluster yapısında 1GB ram’e sahip makineyi 10sn gibi bir sürede QM ile diğer node’a taşıyabiliyoruz.

Aşağıdaki tablo ise storage bağlantı teknolojileri ve VM üzerindeki ram miktarına göre bazı ortalama rakamları yansıtmaktadır. iSCSI tarafındaki rakamlara takılmayın, süreler çok daha aşağılara çekilebiliyor.

VM Memory 1 GbE iSCSI 2 Gb FC 4 Gb FC
512 MB ~8 seconds ~4 seconds ~2 seconds
1 GB ~16 seconds ~8 seconds ~4 seconds
2 GB ~32 seconds ~16 seconds ~8 seconds
4 GB ~64 seconds ~32 seconds ~16 seconds
8 GB ~2 minutes ~64 seconds ~32 seconds

Quick Migration işlemi biz yöneticiler tarafından başlatılır ve geçiş süresince VM’in erişilemez durumda olacağı bilinir. Bu nedenle QM’i planlı kesintiler sınıfına sokabiliriz.

Şimdi kurmuş olduğumuz failover cluster yapısında QM (Quick Migration)’i nasıl yapıyoruz bir bakalım. Hem de yapıyı test etmiş olalım.

10.1.2. Quick Migration Nasıl Yapılır?

HV-Node1 üzerinde Failover Cluster Management konsolunu açıyoruz.

QM işlemini Failover Cluster konsolu üzerinden yapabileceğimiz gibi SC Virtual Machine Manager 2008 ile de yapabiliriz.

Services and  Applications altındaki Virtual Machine servisine sağ tıklıyoruz ve Move virtual machine(s) to another node altındaki Move virtual machine(s) to node ‘HV-Node2’ seçiyoruz.

Bu komut ile Virtual Machine servisi içerisinde eklemiş olduğumuz ve şu an HV-Node1 tarafından sahiplenilmiş olan VM’i/VM’leri, HV-Node2 üzerine QM yapıyoruz (biz bir adet eklemiştik: Cluster-XP).

Komutu verdikten sonra işlem hemen başlıyor. Aşağıda da gördüğüz gibi öncelikle VM save ediliyor yani saved state durumuna geçiyor.

Bu esnada ilgili VM’in sahibi (Current Owner) HV-Node1. VM HV-Node1 üzerinde çalışıyor. Bunu da aşağıda görebiliyoruz.

Saving işlemi saniyeler içinde tamamlandıktan sonra ilgili VM artık diğer node’a (bizim yapımızda HV-Node2) devrediliyor ve owner’lık değişiyor.

VM HV-Node2 üzerinde start olmaya başladı. Artık Current Owner HV-Node2.

Kısa bir süre içerisinde işlem tamamlanıyor ve Cluster-XP isimli makine diğer HV-Node2 üzerinde çalışmaya devam ediyor.

Bu noktada HV-Node1 yani Cluster-XP’nin eski sahibi olan node üzerinde Hyper-V Manager konsolunu açarsanız, Cluster-XP’nin yer almadığını görebilirsiniz. Çünkü artık diğer node üzerinde.

HV-Node2 üzerinde ise Hyper-V Manager konsolunu açtığınızda Cluster-XP’nin yer aldığını görebilirsiniz.

Hatırlarsanız Cluster-XP VM’i HV-Node1 üzerinde çalışırken, clustered diskler de HV-Node1 üzerinde direkt olarak erişilebilir durumdaydı.

Şu an ise clustered diskler den birisi (VM’in yer aldığı disk) otomatik olarak HV-Node2 üzerinde erişilebilir duruma geçti.

Diğer clustered disk yani quorum bilgisinin tutan disk ise hala HV-Node1 üzerinde çalışıyor çünkü HV-Node1 up durumda. QM işleminde quorum diskin yeri değişmez.

Disk sahiplik durumlarını Failover Cluster Management konsolunda Storage bölümünde daha net görebilirsiniz.

Quick Migration başlatmadan hemen önce network üzerinden Cluster-XP sanal makinesine ping atmaya başlamıştım.

QM bitene kadar olan ping istatistiği aşağıdaki gibidir.

Görüldüğü gibi 5 ping paketi kaybı sonrasında VM tekrar network üzerinde erişilebilir hale gelmiş.

Şimdi VM’i tekrar eski yerine taşıyalım. Yani HV-Node2 üzerinden yine HV-Node1 üzerine alalım.

Yine Failover Cluster Management konsolu üzerinde Services and  Applications altındaki Virtual Machine servisine sağ tıklıyoruz ve Move virtual machine(s) to another node altındaki Move virtual machine(s) to node ‘HV-Node1’ seçiyoruz.

Eğer cluster yapımızda başka node’lar olsaydı onları da burada görüyor olacaktık.

Bu komut sonrası yine VM hızlıca save ediliyor.

Ve HV-Node1 üzerinde tekrar start ediliyor.

Taşıma işlemi bittiğinde current owner olarak HV-Node1 görünüyor ve VM online/running durumda.

Quick Migration işlemi bu kadar. Gördüğünüz gibi birkaç küçük tıklama ile VM’leri cluster üyesi sunucular arasında rahatlıkla dolaştırabiliyoruz :)

10.2. VM Failover (Sanal Makine Hata Telafisi)

10.2.1. VM Failover Nedir?

Cluster yapısına eklenmiş Host ve VM’ler için failover yeteneği temelde bir HA (High Availability) özelliğidir.

Cluster üyesi Node’lardan birinin başına bir şey geldiğinde (donanımsal bir başarısızlık nedeni ile sunucunun down olması gibi), down olan node üzerindeki servis ve uygulamanın (bizim yapımızda Virtual Machine servisi) up durumda olan diğer node üzerinde hizmet vermeye devam etmesi durumudur.

Yine küçük bir senaryo ile örneklendirelim.

Yapımızdaki Cluster-XP makinesi şu an HV-Node1 üzerinde çalışıyor. Diğer cluster üyesi node ise HV-Node2 ve şu an pasive node konumunda bekliyor.

Gün içerisinde HV-Node1 üzerinde bir donanım arızası oluşuyor ve sunucu bir anda down oluyor. Kısa bir süre içerisinde telefonlar yağmaya başlıyor çünkü HV-Node1 üzerinde hizmet veren VM ve servislere erişilemiyor ve bu hizmetleri kullanan kullanıcılarımız hemen telefona sarılıyor :)

Hatırlarsanız makalenin ilk bölümlerinde heartbeat isimli bir network ten bahsetmiştik. Bu network için farklı bir ip config yaparak public networkten ayırmış ve cluster üyesi sunucuların bu network üzerinden birbirlerini yokladıklarını, up durumda olup olmadıklarını kontrol ettiklerini söylemiştik. İşte bu network üzerinden yapılan kontroller sırasında down olmuş bir node tespit edilirse, otomatik olarak gerekli aksiyon alınabiliyor.

Senaryomuza dönersek, HV-Node1 down olduğu zaman HV-Node2 bunu kısa süre içerisinde fark edebiliyor çünkü sunucular heartbeat network üzerinden sürekli birbirlerini kontrol ediyor. Daha sonra HV-Node2 gerekli cluster kaynaklarını ve HV-Node1 üzerinde çalışan servisleri otomatik olarak kendi üzerine alıyor yani VM’ler otomatik olarak HV-Node2 üzerinde failover oluyor (hata telafisi).

Bu noktada geçen süre, node’un down olduğuna karar verilmesi ve ilgili kaynakların diğer node üzerine taşınması gibi işlemler ile birlikte ortalama 1-2 dakikadır (değişkenlik gösterir). Node’lar arası kontrol süresini çok kısa tutmak sağlıklı değildir çünkü heartbeat network üzerinde meydana gelebilecek anlık ve ya kısa süreli geçici problemlerde node’lar birbirine ulaşamaz ise ortalık bir anda karışabilir :)

Bir sunucunun down olması durumu biz yöneticilerin isteği dışında gerçekleşen bir olay olduğu için plansız kesintiler sınıfına sokuyoruz.

Şimdi failover aksiyonunu test edelim.

10.2.1. VM Failover Nasıl Yapılır?

Yapılması gereken ekstra bir ayar yok. Daha önceden kurmuş olduğumuz failover cluster yapısı dahilinde bu özellik otomatik olarak etkin durumdadır. Cluster yapısına Services and  Applications olarak Virtual Machine servisinin eklenmesi ve ilgili VM’lerin seçilmesi yeterli (biz bunu zaten yapmıştık).

HV-Node1 üzerinde Failover Cluster Management konsolunu açtığımızda Virtual Machine servisinin sahibinin HV-Node1 olduğunu görebiliyoruz ve servis şu an online durumda.

Nodes altında HV-Node1’e baktığımızda her iki clustered disk’in ve virtual machine servisinin HV-Node1 üzerinde olduğunu açıkça görebiliyoruz.  Yani aktive node durumunda.

Ayrıca node up durumda.

Şu an HV-Node2 ye baktığımızda ise üzerinde hiçbir cluster kaynağının olmadığını görüyoruz. Yani pasive node durumunda.

Ayrıca o da up durumda.

Şimdi herhangi bir nedenden dolayı HV-Node1’in down olduğunu düşünelim. Ben test için HV-Node1’in fişini çekiyorum :)

Cluster ortamı hemen HV-Node1 de bir problem olduğunu anlıyor. Aşağıdaki görüntüde HV-Node-1 üzerindeki küçük kırmızı uyarıyı görebilirsiniz.

Ayrıca şu an Virtual Machine servisinin sahibi hala HV-Node1.

Saniyeler içerisinde servis pending duruma geçiyor ve HV-Node2’ye aktarılıyor.

İşlem tamamlandığında servisin yeni sahibi HV-Node2 ve Cluster-XP online olmuş durumda.

HV-Node1 şu an kapalı durumda bekliyor ve üzerinde hiçbir cluster kaynağı olmadığını görebiliyorsunuz.

HV-Node2 ise tüm cluster kaynaklarını kendi üzerine almış durumda ve sistem çalışmaya devam ediyor.

Storage bölümünden baktığımızda ise iki diskin de HV-Node2 tarafından sahiplenildiğini görüyoruz.

QM işlemini hatırlayın, sadece VM’in olduğu diskin sahipliği değişiyordu çünkü planlı bir kesintiydi ve diğer Node up durumdaydı.

Failover da ise HV-Node1 down olduğu için quorum diski de diğer node üzerine taşınmış durumda.

Şimdi down durumda olan HV-Node1’i tekrar açıyorum.

Cluster yapısı hemen HV-Node1’in up olduğunu anlıyor ve bu durumu Failover Cluster Management konsolu üzerinde görebiliyoruz.

Şu an VM’i QM ile eski yerine yani HV-Node1 üzerine alabiliriz yada bu şekilde bırakabiliriz.

HV-Node1 üzerine almak için Move virtual machine(s) to node ‘HV-Node1’ dememiz yeterli.

Saving …

Ve Starting…

Sonrasında Virtual Machine servisinin sahibi tekrar HV-Node1 olur.

Quorum disk ise hala HV-Node2 üzerindedir çünkü QM ile quorum yada diğer clustered disklerin taşınmadığını söylemiştik.

Quick Migration ve Failover(HA) özelliklerini test ettikten sonra iSCSI Storage ile Hyper-V Failover Cluster makalemizin sonuna gelmiş olduk.

Bu makalede öğrendikleriniz ile fiber channel storage kullanarak ta aynı yapıyı kurmanız mümkün. Belki bazı konfigürasyon adımlarında değişiklikler olabilir ancak olayın mantığı tamamen aynı.

Bu yapı üzerinde Hyper-V R2 ile gelen Live Migration özelliğini de kullanabilirsiniz. Ekstra bir şeye gerek yok. QM yaparmış gibi LM yapabilirsiniz. Sadece Host sistemlerin Windows Server 2008 R2 yada Hyper-V Server 2008 R2 olması gerekiyor.