Clustering Türleri III — Network Load Balancing

24 Eyl
2009

Cluster konulu makale serisinin son adımında Network Load Balancing’ten bahsedeceğim.

NLB bir quorum kullanmadığı için node’larda depolama ve ağ gereksinimlerine ihtiyaç duymaz. Cluster içindeki bir node çöktüğünde NLB otomatik olarak yeni gelen istekleri diğer node’lara yönlendirir. Eğer bakım için bir node’u devre dışı bırakırsanız NLB, node devre dışı olmadan önce var olan oturumların tamamlanmasına izin verir. Bu da son kullanıcıların bu durumdan zarar görmesini engeller. NLB aynı zamanda gelen istekleri uygun gördüğü tarafa yönlendirerek güçlü donanıma sahip sunucular ile yetersiz haldeki sunucuların bir arada kullanılabilmesini sağlar, eldeki tüm donanımların etkin kullanımına yardımcı olur.
 

NLB genellikle firewall’lar, proxy, FTP veya web sunucuları için sağlamlık ve ölçeklenebilirlik sağlamada kullanılır. NBL’yle cluster yapılan diğer uygulamalar sanal VPN noktaları, streaming media sunucuları ve terminal servisleridir. Her Windows 2003 sürümünde bulunur ve 32’ye kadar node’tan oluşan clusterlarda uygulanabilir.
 

NLB yapılandırması Network Load Balancing Manager snap-in’i veya wlbs.exe ya da nlb.exe adlı konsol araçlarıyla gerçekleştirilir.
 

Temel olarak, NLB açıldığında, NLB sürücüsü NIC sürücüsü ile IP protokolü arasına yerleşir ve tüm cluster node’larına gelen her paketi alıp inceler. Paket kablodan kümeye geldiğinde her node paketi alır, inceler ve cluster çapında belirtilmiş kurallara göre paketi üst katmanda bulunan IP protokolüne iletir veya paket daha NLB sürücüsündeyken dışarı atılır. Böylece trafik nodlar arasında paylaştırılır. Kısaca tüm node’lar clustera  gelen trafiği alır; ama bazıları cevap verir.
NLB clusterları iki farklı modda çalışabilir. Birincisi, aynı zamanda varsayılan mod olan Unicast Mode’dur. Unicast mode’da clusterı oluşturan node’larca kullanılan bir tek sanal MAC adresi vardır. Bu adres daima 02-BF ile başlar. Tüm cluster üyelerinin bu tek adresi NLB sürücüsü sayesinde kullanması ağ kartı üzerinden görüşebilmelerini engeller. Örneğin; node a node b’ye bir paket gönderirken hedef ve kaynak MAC adreslerini aynı yazar. Bu paketi alan nod b kaynak MAC adresi ile paketin hedefi olan kendi MAC adresini karşılaştırınca bunların aynı olduğunu görüp bir hata oluştuğunu düşünerek paketi atar. Sonuç olarak unicast mode’ta çalışan NLB kümesi üyeleri NLB çalıştıran ağ kartı üzerinden birbirleriyle görüşemezler. Bu sorunu ortadan kaldırmak için iki yöntem vardır. Birincisi node’lara ikinci bir ağ kartı takmaktır. İkinci ağ kartı NLB clusterıyla aynı ağa veya farklı ağa bağlı olabilir. Node’lar arasında ek bir bağlantı yapılması yeterlidir. İkinci çözüm ise Multicast mode’u kullanmaktır.

Multicast mode’dayken node’lar hem sanal MAC adresini hem de kendi MAC adreslerini kullandığından node üzerinde bir tek ağ kartının bulunmasına rağmen birbirlerine gönderdikleri paketleri işleyebilirler. Multicast mode’da paylaşılan ortak ve sanal MAC adresi daima 03-BF ile başlar.

Sistemdeki sürekliliğin sağlanması için cluster node’larının birbirleriyle sürekli haberleşmesini sağlamak gerekir. NLB algoritması clusterdaki node sayısı, varsa belirlenen port kuralları ve cluster IP’lerini göz önüne alarak hesaplamaları yapar ve gelen trafiğin node’lar tarafından kabul veya red edilmesini sağlar. Bu hesaplama sürecine Yakınsama (Convergence) adı verilir. Yakınsamada Heartbeat (nabız) denilen paketler kullanılır. Bu paketler her node’ta yalnızca NLB çalıştıran ağ kartı tarafından saniyede bir kez atılan 1,5 kb’lık broadcast paketleridir. Bu süre registry’den değiştirilebilir ancak tüm node’larda aynı olmalıdır. Varsayılan ayarlara göre eğer node arka arkaya 5 heartbeat kaçırırsa clusterdaki diğer üyeler o node’un devre dışı olduğuna, kümeden düştüğüne karar verirler. Ardından yeni üye sayısına göre NLB algoritması yeniden hesaplanır, yakınsama başlar ve 3 saniye sürer. Bu değer de registry’den değiştirilebilir ancak her node’ta aynı olmalıdır.

Özet olarak, clustera yeni bir node eklendiğinde bunun tespit edilip gelen yükün clustera tekrar paylaştırılması 3 saniye sürer. Bir node devre dışı kaldığında ise bunun diğer node’larca fark edilmesi ve yakınsamaya başlanması için 5 heartbeat yani 5 sn. daha geçer. Toplamda 8 sn. sonunda yakınsama tamamlanacak ve sistem yeni yapısına göre hareket etmeye başlayacaktır.

NLB’nin yakınsama hesaplamasında bir diğer önemli etken ise affinity yani eğilim ayarıdır. None, Single ve Class C olmak üzere 3 seçeneği olan affinity değerine bakarak NBL; node’lara gelen IP paketlerinin kabul edilip edilmeyeceğine karar verir. Affinity ‘None’ olarak ayarlandığında gelen paketler kaynak port ve kaynak IP’lerine bakılarak işlenir. Web sunucusu çalıştıran clusterlarda  bu ayar kullanılır. Single affinity ise gelen trafiği sadece kaynak IP adresine göre dağıtır ki bu tür terminal sunucular için en uygunudur. Son seçenek olan Class C ayarında ise aynı C sınıfı alt ağındaki IP adresine sahip kaynaklardan gelen tüm paketler aynı node’a yönlendirilir. Bu da genellikle proxy sunucuların yük dengelemesinde yarar sağlamaktadır.

Cluster makalelerinin sonuna geldik. Bu seride uygulama yapmak yerine daha çok teorik adımlardan bahsettim. Sizden gelen istekler doğrultusunda Server Cluster ya da Network Load Balancing konularında uygulamalarda gerçekleştirebilirim. Umarım yararlı bir seri olmuştur. herkese iyi çalışmalar.

Clustering Türleri II – Server Cluster

23 Eyl
2009

Bir önceki makalemde cluster nedir ve cluster türleri nelerdir bunlara değinmiştim. Bu makalemde ise cluster türlerinden Server Cluster’ı anlatacağım. Server Cluster’da önce cluster içinde node yani birim olarak rol oynayacak olan 2 ila 8 arasında sunucu yapılandırılır. Ardından cluster yapılacak uygulamanın ihtiyaç duyduğu kaynaklar yapılandırılır. Bu kaynaklar ağ isimleri, IP adresleri, uygulamalar, servisler veya disk sürücüleri olabilir. Sonuç olarak cluster çalışmaya başlar ve gelecek istekleri işlemeye başlar.

Çoğu cluster yapılmış uygulama ve onlara bağlı kaynaklar tek bir zamanda sadece bir cluster node’una işlenmek üzere atanır. Eğer Server Cluster ilk node’un bakım, çökme gibi herhangi bir nedenden ötürü devre dışı olduğunu belirlerse yedekteki diğer node’ta uygulama çalıştırılır ve istek hemen bu yedekteki node’a aktarılarak hatanın önüne geçilir.

Cluster yapılan servislerin çoğu genellikle tek bir zamanda sadece bir node’ta çalıştırılmasına rağmen aslında bir cluster aynı anda birçok servisi donanımdan daha çok yararlanmak için çalıştırabilir. Microsoft SQL Server gibi bazı uygulamalar birçok cluster node’unda eş zamanlı olarak çalışabilmektedir.

Cluster’daki node’lar cluster yapılmış uygulamanın kime ait olduğunu izlemek için bir quorum kullanır. Quorum cluster işlemine tabi tutulmuş bir uygulama için birincil node tarafından yönetilmesi zorunlu olan bir depolama aygıtıdır ve tek bir zamanda sadece bir node onu yönetebilir. Fail-over durumunda ise yedekteki node quorum’un yönetimini devralır. Tüm cluster node’ları tek bir depolama aygıtına bağlandığında quorum bu aygıt üzerinde yaratılır. Bu tür clusterlara Windows 2003’te single quorum device server cluster yani tek quorum’lu server cluster denmektedir.

Node’ların tek bir depolama aygıtına bağlanması verinin yönetiminin yedek node’a aktarılmasındaki zorluğun ortadan kalkmasını sağlar ancak bu yöntemin de zayıflıkları vardır. Eğer depolama aygıtı bozulur veya çökerse tüm cluster çöker. Aynı şekilde storage area network (SAN) yani depolama alanı ağı çökerse tüm cluster çöker. Depolama aygıtı veya SAN; her ikisinin de asla çökmeyeceğini garanti etmeye kalksak dahi çökecek bir şey daha vardır o da sistemin bulunduğu ortamda meydana gelebilecek sel, yangın, deprem, elektrik kesintisi gibi felaketlerdir.

İşte bunun da önüne geçmek için Majority Node Set (MNS) server cluster adlı yapıya başvurulur.Quorum bu defa her bir node’da doğrudan yerel olarak bağlanır ve her bir node’taki quorum’da ağdaki replikasyon sayesinde aynı veriler depolanır. Şekilden de anlaşılabileceği üzere node’lar sadece tek bir ağa ihtiyaç duyduğu için ağ LAN, WAN veya uzak şehirlerdeki cluster node’larını cluster’a bağlayan VPN yapısına sahip olabilir, bu da clusterın coğrafik engelleri aşmasını sağlar. Bununla birlikte etkin bir fail-over başarımı için MNS yapısında clusterdaki node’ların en az yarısından çoğunun sürekli çalışır halde olma zorunluluğu vardır. Oysa single quorum device server cluster’da bir tane node’un çalışır olması yetmektedir.

Server Cluster makalesinin de sonuna geldik. Cluster türlerinden Network Load Balancing ile cluster makale serimi tamamlayacağım. İyi çalışmalar.