Windows Server - Network Load Balancing Yapılandırması

 

Merhaba. 

Bu konuda 2 farklı server ile Network Load Balancing yapılandırması gerçekleştireceğiz. 

Örnek uygulama için yukarıdaki ortamı oluşturacağım. 

Node1 ve Node2 sunucularına Network Load Balancing isimli feature'ı yüklüyorum.

NLB'yi Node1 ya da Node2 üzerinden yönetebileceğiniz gibi NLB konsolunu farklı bir sisteme yükleyerek de yönetebilirsiniz. 

Ben dc isimli makineye NLB konsolunu yükleyeceğim. 

İlgili konsolu yüklemek için: Features > Remote Server Administration Tools > Network Load Balancing Tools'ü seçip adımları takip ediyorum. 

Yükleme işlemi tamamlandıktan sonra Server Manager > Tools > Network Load Balancing Manager'a tıklayıp konsolu açıyorum. 

Sol taraftaki NLB Clusters'a sağ tıklayıp gelen seçeneklerden New Cluster'a tıklıyorum. 

Makine adını yazıp ilerliyorum. 

NOT: Makinede birden çok Network Interface (NIC) varsa, bu ekrandan NLB için kullanılacak NIC'i seçip ilerlemeniz gerekmektedir. 

Priority kısmından Node1 isimli makinenin NLB hizmetindeki önceliğini belirleyebilirsiniz. 

Initial host state kısmından Node1 makinesinin NLB hizmeti için başlangıçtaki durumunu belirleyebilirsiniz. Default seçenek olarak started'ı seçip ilerliyorum. 

Bu ekrandan cluster için ortak bir IP adresi belirlemeniz gerekecek. Add butonuna tıklayarak cluster'ım için 192.168.2.100/24 IP adresini tanımlıyorum. 

Full Internet Name kısmına nlb.vatanci.int adresini yazıp operation mode seçeneklerinden Multicast'ı seçip ilerliyorum. 

Unicast: NLB'de heartbeat ve data trafiği için farklı NIC'ler kullanılacaksa tercih edilmelidir. 

Multicast: Heartbeat ve data trafiği için aynı NIC'ler kullanılacaksa tercih edilir. Eğer sunucularda tek NIC kartı varsa bu seçenek kullanılır.

IGMP multicast: Ortamdaki switch, IGMP multicast desteğine sahipse bu seçenek kullanılabilir. 

Port Rules ekranından NLB yapılandırmasının çalışacağı portları ve çalışma algoritmasını belirleyebilirsiniz. 

Filtering Mode seçeneği ile host durumunu belirleyebilirsiniz. 

Multiple Host: NLB için konsolda çalışır halde bulunan tüm Node'lar hizmet verebilir. 

Single Host: Tüm istekler tek bir Node'a yönlendirilir. 

Disable this port range: Bu seçenekte NLB hizmeti çalışmaz. 


Multiple Host kısmında yer alan Affinity seçenekleriyle Node'ların çalışma algoritmasını belirleyebilirsiniz. 

None: NLB'ye ulaşan bağlantı talebi sunucuların öncelik değerine göre yük durumu en uygun sunucuya bu talep iletilir. 

Single: Eğer bir istemci daha önceden NLB üzerinden bir sunucuya istek atmışsa, tekrar istek attığında yine aynı sunucunun yanıt vermesini istiyorsanız bu seçeneği kullanabilirsiniz. Bu özellik genellikle aktif oturum gerektiren hizmetler ile birlikte kullanılacağı ortamlarda tercih edilir. 

Network: Eğer ortamda birden çok ağ yapılandırması varsa (Örn: 192.168.1.0/24, 2.0/24 ... ya da Internet/Intranet gibi) NLB'e iletilen bağlantı isteklerinin Network'lere göre ayrılmasını sağlar. Bu durumu basit bir örnekle açıklayacak olursak; ilk talep 192.168.1.0 ağından geldi diyelim. Bu istek sunucuların öncelik değerine göre priority değeri en düşük olan sunucuya iletilecektir. 2.0 ağından gelen yeni istek ise öncelik değeri en düşük olan 2. sunucuya iletilecektir. Bu aşamadan sonra 2.0 ağından gelecek yeni bir talep yine 2. sunucuya iletilecektir. 

Timeout değeri ise, Single ve Network seçenekleri için cache süresini belirlemek için kullanılır. 

Node1 isimli makineyi NLB altyapımıza eklemeyi başardık. 

nlb.vatanci.int'e sağ tıklayıp Add Host To Cluster seçeneği ile Node2 makinesini ekleyeceğim. 



Node'lar için farklı ayarlar belirleyemezsiniz. Bu nedenle daha önceden yaptığımız ayarlar değiştirilemez olarak karşımıza çıkıyor. 

Finish butonuna tıklayarak Node2'yi Network Load Balancing'e dahil ediyorum. 

Node'larımız sistemde Converged (tümleşik) olarak gözüküyor. Yani her şey ok. :)

nlb.vatanci.int için DNS'te A kaydı oluşturuyorum. Böylece bu DNS'ten hizmet alan tüm client'lar nlb.vatanci.int adresi üzerinden hizmete erişebilecekler. 

Node'lar üzerinde dosya paylaşarak yapılandırmayı test edeceğim. 


Paylaşım klasörlerinin içerisinde Dosya.txt isimli bir dosya oluşturup bu dosyaların içine de bilgisayarların adını yazıyorum. Böylece Client tarafından yapılan erişimlerin hangi sunucuya iletildiğini gözlemlemeye çalışacağım.



Client üzerinden nlb.vatanci.int'in paylaşımına erişiyorum. 

Node1'in priority değeri en düşük olduğundan yaptığım tüm erişim istekleri Node1'e yönlendirilecek. 

NLB'yi test etmek için Node1'in NIC'ini Disable yapıyorum. 

Heartbeat paketleri kesintiye uğrayacağı için NLB konsolunda Node1 makinesi Unreachable duruma düşecektir. 

Client üzerinden nlb.vatanci.int'e tekrar erişmeye çalışıyorum. NLB beni bu kez Node2'ye yönlendiriyor.


Node1'i tekrar aktif ettiğimde ise NLB tarafından yine priority değerinden dolayı Node1'e yönlendiriliyorum.