Önceki yazılarımızda Hyper-V kurulumu, özellikleri, sanal makine işlemleri gibi temel konuları ayrıntılı bir şekilde incelemiştik.
Bildiğiniz gibi Hyper-V RTM durumda ve pruduction networklerde kullanıma hazır. Kısa bir süre sonra Virtual Machine Manager 2008 ‘inde release olması ile birlikte Hyper-V sanallaştırma yapılarımız çok daha esnek, güçlü ve kullanışlı hale gelecek.
Şimdiye kadar olan makalelerimizde genellikle tek başına çalışan Hyper-V sunuculardan bahsettik. Ama birçok sistemde olduğu Hyper-V sunucular için de kullanılabilecek Cluster (Failover) senaryoları mevcut.
Bu makalemizde, Hyper-V sunucular için uygulayabileceğimiz Failover Cluster senaryolarından bahsedeceğiz. Bu senaryoların uygulama yöntemlerini ise ilerleyen günlerde ele alacağız.
Bildiğiniz gibi Cluster yapılarında bir takım kıstaslar mevcut ki en önemli iki kıstas, ortak bir storage ve Cluster destekli (Enterprise, Datacenter, HPC) bir işletim sistemidir. Çünkü cluster yapılarında depolama biriminin (storage) ortak kullanılması gerekmektedir.
Hyper-V üzerinde uygulayabileceğimiz temelde 6 Farklı Failover Cluster senaryosundan bahsedebiliriz.
1. Fail Server Based Failover Cluster
Bu senaryoda storage olarak kullanabileceğimiz birim bir File Server dır. Evet yanlış okumadınız, File Server üzerinde share edilmiş bir dizini kullanacağız.
Aşağıdaki diagram’ı inceleyelim.
Görmüş olduğunuz gibi iki adet fiziksel Hyper-V sunucumuz var. Bu yapıdaki her bir sunucuyu Node olarak adlandırabiliriz. Yani iki Node’a sahibiz. Ayrıca networkte çalışan bir File Server var (FServer1). Network iletişimi ise IP yani Ethernet üzerinden sağlanıyor. SAN (FC yada İSCSI) tarzı bir depolama birimi kullanılmıyor.
Daha önceki makalelerimizde, VM’lerin (Sanal makine) sanal disklerinin VHD formatında (Virtual Hard Disk) olduğundan bahsetmiştik. Fail Server Based Failover Cluster senaryosunda VHD dosyaları, networkte çalışan File Server üzerinde tutulmaktadır.
Diagram’a göre devam edersek; FServer1 üzerinde C: sürücüsünde VMDisks isimli bir dizin yaratılır ve paylaşıma açılır. Gerekli share ve security izinleri tanımlanır. Daha sonra VHD dosyaları bu dizin içerisine taşınır.
Bir sonraki adım olarak Hyper-V1 yani ilk node üzerinde \\FServer1\VMDisks yolu ağ sürücüsü olarak MAP edilir ve içerisindeki VHD dosyası VM’e gösterilebilir.
Eğer MAP yapmak istemiyorsak, VM üzerinde kullanılacak VHD dosyasını direk \\FServer1\VMDisks olarak ta gösterebiliriz.
Sonuç itibarı ile VM’lerin kullanacağı sanal diskler (VHD) File Server üzerindeki bir paylaşımda duruyor.
Yukarıdaki diagramda görüldüğü gibi \\FServer1\VMDisks\VM1 içerisindeki D1.VHD dosyası, Hyper-V1 üzerindeki VM1 tarafından kullanılmakta.
İkinci Node (Hyper-V2) üzerinde ise herhangi bir VM çalışmıyor. Tabi buradan çalışamayacağı gibi bir sonuç çıkmasın. Kafa karıştırmaması açısından eklemedim. İkinci node üzerinde de VM’ler çalışabilir.
Yapımızı bu şekilde tasarladıktan sonra Windows Server 2008 Failover Cluster Management konsolu ile gerekli configuration’ı yapıyoruz. Yazımın başında da bahsettiğim gibi configuration konusuna bu makalede girmeyeceğiz.
Şimdi tasarladığımız yapı üzerinde bir sorun olduğunu var sayalım. Örneğin Hyper-V1 yani ilk node down oldu!
Bu durumda diagram’ı aşağıdaki gibi değiştiriyoruz.
Görmüş olduğunuz gibi Hyper-V1 üzerindeki VM’de çalışan D1.VHD diski, Hyper-V2 üzerindeki bir VM’de start oldu ve hizmet vermeye devam ediyor. Bir başka tarif ile, Hyper-V1 üzerindeki VM1 sanal makinesi, Hyper-V2 üzerinde VM2 olarak hizmete devam ediyor.
Storage ve Fiber ekipmanları açısından oldukça basit ve maliyetsiz bir yapı.
Tabi buradaki önemli noktalardan biriside performanstır. Bu yapıda yani network üzerinden çalışan VM’ler, asla FC yada iSCSI Storage üzerindeki VM’ler kadar performanslı çalışmaz. Ama 1gbps (1000mbit) network yapısı ile rahatlıkla kullanılabilir. Henüz çok yaygın olmasa da standart olarak kabul edilmiş ve Ethernet üzerinden 10gbps veri iletimi sunan CAT7 (15mt.) ve uyumlu NIC’ler ile (Intel), bu yapı çok daha performanslı olarak kullanılabilir.
2. Parent Based Failover Cluster
Bu senaryo Hyper-V Parent yani host seviyesinde bir Cluster yapısıdır. Bu senaryoda ortak storage olarak kullanacağımız birim bir SAN’dir (Storage Area Network). Bu SAN Fiber Channel yada İSCSI yapıda olabilir. Önemli olan fiziksel Hyper-V sunucularının aynı storage’a erişiyor olması ve VM (Sanal Makine) ‘lerin bu storage üzerindeki uygun LUN’lar üzerinde duruyor olmasıdır.
Aşağıdaki diagram’ı inceleyelim.
Görmüş olduğunuz gibi SAN üzerinde yaratılmış 3 adet LUN bulunuyor. Her iki Hyper-V sunucusu da (Hyper-V1 ve Hyper-V2) bu SAN üzerindeki LUN’lara erişebiliyor ve aralarında Cluster yapılandırılmış şekilde çalışıyor.
SAN üzerindeki LUN2 bölümü, Hyper-V1 üzerinde H:\ sürücüsü olarak çalışıyor ve LUN2 içerisindeki D1.VHD (Sanal Disk) dosyası da Hyper-V1 üzerinde çalışan VM1 tarafından kullanılıyor. Yani VM1 sanal makinesi Hyper-V1 üzerinde çalışıyor ama disk dosyası SAN üzerindeki LUN2 de duruyor.
SAN üzerindeki LUN1 ise yine Hyper-V1 üzerinde M:\ sürücüsü olarak çalışıyor.
Yine tasarladığımız yapı üzerinde bir sorun olduğunu var sayalım ve Hyper-V1 fiziksel sunucumuzun down olduğunu düşünelim. Bu noktada durum aşağıdaki gibi olacaktır.
Görmüş olduğunuz gibi Hyper-V1 üzerinde çalışan LUN1, LUN2 ve VM1 isimli sanal makinemiz, otomatik olarak Hyper-V2 üzerinde erişilebilir duruma geçti. Yani LUN’lar içerisindeki her türlü veriye erişebilirken, VM1 sanal makinemizde hizmet vermeye devam ediyor.
Rahat anlaşılması açısından tek bir VM kullandım ama bu yapıda 10’larca VM yer alabilir. Tamamen fiziksel yapının (donanım) yeterliliği ile alakalı bir durum.
SAN üzerideki VM’ler (özellikle FC SAN üzerindekiler) oldukça hızlı çalışırlar. Özelliklerine, kapasitesine ve iletişim teknolojilerine göre değişiklik gösterse de SAN yapıları genelde maliyetlidir ama bir okadar da performanslıdır.
3. Child Based Failover Cluster
Bu senaryo ise Hyper-V Child yani child partition seviyesinde bir Cluster senaryosudur. VM’ler üzerindeki diskler için, ama Hyper-V sunucular arasındaki bir cluster senaryosu olarak tanımlayabiliriz. Bu yapıdaki ortak storage ise yine bir SAN dir ve iSCSI yapıdadır.
Yine aşağıdaki diagram’ı inceleyelim.
Görmüş olduğunuz gibi iki adet fiziksel sunucumuz yani Node’umuz var (Hyper-V1 ve Hyper-V2) ve her iki node aynı SAN’e erişiyor. Her iki node üzerinde de birer adet VM çalışıyor ve VM’lerin sanal diskleri (system disk) SAN üzerinde değil, direk Hyper-V sunucular üzerindeki local disklerde duruyor.
SAN üzerindeki LUN1 ve LUN2 bölümleri, Hyper-V1 üzerindeki VM1 tarafından sürücü olarak kullanılıyor.
LUN1 -> E:
LUN2 -> D:
Yani biz, SAN üzerindeki bir LUN’ı Hyper-V sunucusu üzerinde bir sürücü olarak kullanabileceğimiz gibi, VM üzerinde de kullanabiliriz.
Bu yapıdaki Hyper-V1 fiziksel sunucusu yada VM1 sanal makinesi üzerinde meydana gelebilecek herhangi bir problemde, LUN1 ve LUN2 bölümleri diğer node üzerindeki VM2 de kullanılabilir olacaktır.
Aşağıdaki diagram’ı inceleyelim.
Görmüş olduğunuz gibi VM1 down oluyor ama üzerindeki LUN1 ve LUN2 bölümleri, diğer node’da çalışan VM2 üzerinde hizmete devam ediyor.
4. Physical/Virtual Failover Cluster
Bu senaryoda herhangi bir fiziksel sunucu ile Hyper-V üzerinde çalışan VM arasındaki failover cluster durumu örneklenmiştir. Yani cluster yapısına sadece Hyper-V sunucuları ya da VM’leri almak gibi bir zorunluluk yok.
Aşağıdaki diagram’ı inceleyelim.
Görmüş olduğunuz gibi Server1 isimli sunucu Hyper-V çalıştıran ya da üzerinde VM tutan bir sunucu değil. iSCSI yani IP networkü üzerinden veri ileten bir SAN’in LUN’larını, kendi üzerinde disk sürücü olarak kullanıyor ( E: ve D: ).
İkinci node olan Hyper-V1 ise, VHD dosyası local diskler üzerinde duran ve VM1 isimli bir sanal makine çalıştırıyor.
Bu senaryoda koruma altına aldığımız birimler, Server1 üzerindeki E: ve D: sürücüleri. Bu sürücüler firmanın ortak belgelerinin tutulduğu, önemli paylaşımların yapıldığı yada bir uygulamanın verilerinin yazıldığı diskler olabilir.
Bu yapıda Server1 üzerinde meydana gelebilecek herhangi bir problem durumda sistem aşağıdaki gibi kendisini koruyacaktır.
Diagram’ı inceleyelim.
Görmüş olduğunuz gibi Server1 üzerinde hizmet veren (ama aslında SAN üzerinde duran) E: ve D: sürücüleri, Server1’in down olması ile birlikte otomatik olarak VM1 üzerinde kullanılabilir oluyor.
Bu yapı fiziksel sistem ile sanal sistem arasında oluşturulabilecek failover senaryoları için güzel bir örnektir.
5. Virtual/Virtual Failover Cluster (Aynı Fiziksel Sunucu Üzerinde)
Bu senaryoda farklı fiziksel sunucular yerine aynı fiziksel sunucu üzerindeki farklı VM’leri kullanacağız. Yani aynı Hyper-V sunucusu üzerindeki iki child partition arasında oluşturabileceğimiz bir failover cluster senaryosudur.
Aşağıdaki diagram’ı inceleyelim.
Görmüş olduğunuz gibi Hyper-V isimli bir sunucumuz ve tek fiziksel node olarak çalışan bir yapımız var. Bu sunucu üzerinde ise iki adet VM çalışıyor. VM’lerin sanal diskleri (system disk ) Hyper-V sunucusu üzerindeki local disklerde duruyor. Ayrıca Hyper-V sunucusunun kullanabildiği iSCSI yapısında bir SAN’imiz var.
VM1 üzerinde F: ve G: olarak çalışan iki sürücü, SAN üzerinde duruyor ve VM1 üzerinde kullanılıyor.
Eğer VM1 üzerinde herhangi bir problem yaşanırsa (yazılımsal yada işletim sisteminden kaynaklanan sorunlar gibi.), F: ve G: sürücüleri VM2 üzerinde hizmet vermeye devam eder.
Aşağıdaki diagram’ı inceleyelim.
Görmüş olduğunuz gibi F: ve G: sürücüleri VM2 üzerinde kullanılabilir durumdalar.
Eğer fiziksel sunucu yani Hyper-V1 down olursa yapacak bir şey yok. Her iki VM ve doğal olarak cluster yapısı çalışmaz. Bu gibi fiziksel durumların önlemlerini yukarıdaki senaryolarda incelemiştik. Bu senaryo aynı fiziksel sunucu üzerindeki VM’ler arasında kullanılan bir senaryodur.
6. Virtual iSCSI SAN Failover Cluster (Aynı Fiziksel Sunucu Üzerinde)
Bu senaryo Technet bloglarında ele alınmış ve production networklerde fazla kullanılmayacak bir senaryodur. Notebook üzerinde yapılan Hyper-V demolarında küçük bir cluster senaryosu göstermek için kullanılabilir.
Bu senaryo tek bir fiziksel Hyper-V sunucusu üzerindeki child partitionlar arasında uygulanıyor ve yine altını çiziyorum; amaç demo ortamlarında basit bir senaryo göstermekten öte değil.
Yapıyı anlamak için aşağıdaki diagram’ı inceleyelim.
Görmüş olduğunuz gibi tek bir Hyper-V sunucusu üzerinde E: olarak çalışan fiziksel bir disk var. Fiziksel E: sürücüsü içinde D1, D2 ve D3 olmak üzere üç adet sanal disk var. VM1, VM2, VM3 olmak üzere bu üç sanal diski kullanan üç adet VM var.
VM1 üzerinde sanal bir iSCSI SAN oluşturulur. Sanal iSCSI SAN için Microsoft iSCSI Software Target kullanılabilir. VM2 üzerindeki F: ve G: sürücüleri, VM1 üzerinde olşuturduğumuz sanal iSCSI SAN üzerinde durur.
Eğer VM2 üzerinde herhangi bir problem olursa (Yazılımsal yada işletim sistemi kaynaklı) F: ve G: sürücüleri VM3 üzerinde kullanılabilir duruma geçer.
Aşağıdaki diagram’ı inceleyelim.
Görmüş olduğunuz gibi F: ve G: VM3 üzerinde çalışır durumda.
Bu senaryoda VM1 down olursa, cluster yapısı işe yaramaz. Aynı şekilde Hyper-V1 yani fiziksel sunucu üzerinde bir problem yaşanırsa yine cluster senaryosu işe yaramaz.
Başta da söylediğim gibi bu senaryoda amaç performans yada kullanımdan öte demo ortamlarında küçük bir gösteri yapmaktan ibarettir.
Şimdilik inceleyeceğimiz failover cluster senaryoları bu kadar. Görmüş olduğunuz gibi cluster konusunda bir çok seçenek var. İlerleyen günlerde bu senaryoların kurulum ve uygulama yöntemlerine değineceğiz.
Hepinize iyi çalışmalar.
Serhat AKINCI – IT Professional