Home > Windows Server > Quorum

Quorum

December 8th, 2009

Microsoft Cluster larda Quorum kullanılır, ama bu tam olarak nedir?  Kelime manası olarak Türkçe ‘’Oy’’ veya ‘’Oy hakkı’’ demektir.  Her cluster quorum kullanmaz, sadece failover/server cluster olarak adlandırdığımız clusterlarda bulbiliriz. Klasik ve basit cluster yapısı iki server dan oluşur, bunlara node denilir. Nodelar arası iletişim için bir private network vardır (heartbeat) ve cluster dışı iletişim için bir public network mevcuttur. Ayrıca her node un erişebileceği bir storage vardır. Storage daki cluster kullanımı için olan bütün diskleri her node görür. Burada yalnız bir shared nothing modeli uyarlanmaktadır; nodeların hepsi bütün diskleri görse de bir anda bir diske sadece bir node ulaşabilir. Mesela highly available bir yazılımınızı çalıştırıyorsunuz. Bu yazılımın kullandığı disk cluster ın shared disklerinden biri olur ve o an o yazılım hangi node da çalışıyorsa o node da o diskin sahibidir. Yazılım da çalıştığı node da IP sini bind eder ve pulic network üzerinden hizmet verir. Private network üzerinden de node lar aralarında statü bilgilerini iletirler. Yazılımınız, onun dedike kullandığı disk ve IP mesela Resource lardır. Bunları Grup olarak toparlarız ve bu Grublarda node lar arası hareket etirebiliriz. Yazılımımız mesela bir node da sorun oluştuğu için çalışamıyorsa cluster o yazılımı başka bir node da başlatır. Şimdi bir split brain senaryosu oluştuğunu varsayalım, yani nodelar arasında hiçbir iletişim yok. Private ve Public bağlantılar üzerinden nodelar aralarında görüşemiyorlar.  Şimdi durum çok kritik, çünkü her node un bakış açısından temel problem resource lar (mesela yazılımımız) ne durumda ve diğer node (lara) güvenebilir miyim?  Mesela Public üzerinden default gateway e ulaşabiliyor muyuz diye bakabiliriz. Ulaşabiliyorsak networksel açıdan hizmet verebileceğimizi var sayabiliriz. Diskimizi yalnız kısa bir an kaybedebiliriz, belki hatta daha yazılımızı bile etkilenebilir (Bu Windows Server 2008 öncesi için geçerli):  Eğer yazılımımız başka bir node da çalışıyorsa biz bu durumda bir scsi bus reset göndeririz ve başka bir node diske sahiplenecek mi diye bekleriz. Sahiplenen olmaz ise diski biz alırız, elbette network sorunumuz olmadığını biliyorsak. Ve yazılımı ayağa kaldırırız. Eğer ama başka bir node diske sahiplenirse onu ele geçirmeyi denemeyiz ve başka bir node un resource u sahiplendiğini varsayarız. Yani biz o an yazılımı çalıştırıyorsak, başka bir node diski elimizin altından çekebilecek mi diye bir kontrol yapar ve bizde diski geri alırız. Bütün bunlar şart ki bir split brain senaryoda yazılımımızın çalıştığını mümkün olduğunca garantileyebilmek için. Windows Server 2008 den itibaren scsi bus resetleri kullanılmıyor. Scsi 3 serial persisten reservation mantığı uyarlanılıyor. Çünkü adı üstünde bu reset den sadece o disk değil aynı bus üzerindeki bütün diskler etkilenebiliyor ve konfigürasyona bağlı olarak her disk için her node dan bir bus reset gönderiliyor olabilir. Cluster o zaman epey bir zamandan sonra kendisini toparlayabiliyor yada resourceları manüel online a çekmeniz gerekebiliyor.  Şimdi, Quorum da Cluster ın kendisi için kullandığı disk.  Quorum u tutan node cluster grubunu da ayağa kaldırır. Bir node hiç Quorum a ulaşamaz, diski göremez ise cluster servisi durdurulur ve konfigürasyona göre node reboot edilebilir.  Quorumun kendisi de yine aynı her türlü problem durumu mantığı çerçevesinde cluster konfigürasyonu tutar. Yani kritik bir durumdan sonra bir node Quorum a sahiplenirse son konfigürasyonda yapılmış olan değişiklikleri de böylece senkrinize edebilir. Bütün bunlar ama Quorum u kullanan cluster lar için geçerlidir. Mesela tek node lu cluster da yapabilirsiniz. Neden? Resource kontrolü için mesela: yazılımınız ile ilgili herhangi sorunlar oluşursa cluster yazılımı restart edebilir. Default konfigürasyonda da bir node bir resource u restart etmeye çalışır ve son hamle olarak başka bir node a verir. Quorum diski ama single point of failure dır. Yani quorum diski kaybedersek bütün cluster ı kaybederiz ve Quorumsuz çalıştırabilmek için müdahale etmemiz gerekir. Tek node lu cluster da lokal quorum oluşturulur.

Ayrı bir mantık da Majority Node Set (MNS) dir. EÄŸer örneÄŸin bir geo clusterınız var ise, yani node lar arasındaki mesafe mesela sigorta ÅŸirketinizin poliçesi veya doÄŸal felaket gereÄŸi, birkaç yüz metre veya onlarca kilometre olabilir. Bu sefer ortak storage ve özellikle Quorum u belki sadece pahalı storage çözümleri ile uyarlayabiliyorsunuzdur veya tamamen imkânsızdır.  Bu durumda MNS ideal bir çözüm olabilir. MNS demokratik bir sistemdir. Quorum da sadece bir oy var ise ve buna sahiplenen cluster a sahiplenebiliyorsa, MNS de çoÄŸunluk cluster a sahiplenir. Mesela 5 node lu cluster da split brain senaryosu yaÅŸanırsa her node toplam kaç node ila haberleÅŸebildiÄŸine bakar. Bir node iki node ile haberleÅŸebiliyorsa, 3 node 5 nodedan çoÄŸunluÄŸu oluÅŸturur ve cluster a shiplenir. DiÄŸer iki node azınlıkta olduklarını anlar ve diÄŸer 3 node un haberleÅŸebildiÄŸini varsayarlar. Çift rakam node sayısı pek mantıklı deÄŸildir. Mesela 2 node da split brain olursa çoÄŸunluÄŸu elde etmek imkânsız olduÄŸundan cluster ı yine kaybederiz.  Şimdi ama diyelim ki bir Fabrika alanın bir köşesine bir node diÄŸer köşesine de ikinci node umuzu koyacağız ve Quorum diskini uyarlayamıyoruz. Sadece tek rakam olsun diye eÅŸit bir sunucu donanımı almak eÄŸer bu ekstra performansa ihtiyacınız da yoksa pahalı olabilir. Bu durumda File Share Witness (FSW) kullanabiliriz. Bu MNS in bir türevi ve sadece 2 node unuz var ise yapabileceÄŸiniz bir çözüm.  MNS de her node un aslında bir quorum, bir oy hakkı var ve çoÄŸunluk oylarını toplayan node grubu cluster ın sahibi ve ondan sorumlu.  FSW de herhangi bir üçüncü sunucu da oy olarak bir paylaşıma açılmış klasör kullanıyoruz. Split brain de network den share e ulaÅŸabilen node çoÄŸunluÄŸu oluÅŸturmuÅŸ oluyor. İki node un share e ulaÅŸma ÅŸansı çok az, çünkü o zaman muhtemelen zaten birbirleri ile görüşüyor olurlardı.  Windows Server 2008 ile yeni bir Quorum modelimiz de var (Node and Disk Majority), bu sefer Quorum diskin kullanımı biraz farklı oluyor: Quorumu node sayısı ile beraber bir oy hakkı olarak kullanıyoruz. Yani MNS gibi, ama 2 den fazla nodelu clusterlar için ve FSW yerine ortak bir disk kullanıyoruz. Yani 4 nodelu bir cluster da 3 node a veya 2 node a artı diske ulaÅŸabilen grup cluster ı alıyor. Diske de artık Quorum demiyoruz , witness disk olarak geçiyor. Windows Server 2008 R2 ile de yepyeni b’r özellik geliyor: Cluster Shared Volume (CSV). Bu bir diskin her node dan aynı anda eriÅŸebilinmesini mümkün kılıyor ve shared nothing modelini bitiriyor. File seviyesinde artık node lar kapışabiliyor, disk seviyesinde deÄŸil. Åžimdilik sadece Hyper-V in sanal makineleri için destekleniyor. Yani diÄŸer tip resource lar hala shared nothing üzerinden yürüyor.
Server clustering high availability ve disaster recovery çözümleri için mantıklıdır.  Bunlar ilginizi çekti ise Server/Failover Cluster bazında çalışan Exchange cluster konfigürasyonlarını da inceleyebilirsiniz.  Buların dışında Microsoft un Network Load Balancing (NLB) ve High Performance Computing (HPC) cluster ları vardır. NLB çok yaygın farklı Tier yapılarında front end olarak veya Terminal Server lar için kullanılır. HPC de temelinde çok zaman alacak hesaplamaların süresini azaltmak için bunları bölerek çok sayıda node a dağıtır.

Başar Güner

Share and Enjoy:
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • Blogplay
Categories: Windows Server
Comments are closed.
UA-2825094-1 model ilanlari model ilanlari