Forum
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
Danışman - ITSTACK Bilgi Sistemleri
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız.
Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz.
Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************