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.




Yap