Merhabalar,

Makalemde sizlere Windows Server 2012 R2 üzerinde Network Load Balancing servisinden bahsedeceğim. Network Load Balancing'den makalem içerisinde NLB olarak bahsedeğim. NLB sayesinde yük dengelemesi yapabiliriz ve hata toleransını düşürmek için bir çok sunucuya dağılımları gerçekleştiririz. Ben makalemde Web Server üzerinde NLB nasıl yapılır'ı sizlere anlatıyor olacağım. NLB'yi web server dışında FTP ve Exchange Server üzerinde de kullanabiliriz.

NLB üzerinde Windows yük dengelemedeki amaç client, müşteri veya dış ortamdan gelen yoğun istekleri sunuculara dağıtarak oluşabilecek darboğazı engellemektir. Gelen istekleri birden çok sunucu üzerinde dağıtarak sunucular üzerindeki yükün eşit olarak dağıtılarak tek bir sunucunun fazla yük sebebi ile duracak seviyeye gelmesini engellemektir amacımız. Örnek olarak microsoft.com'un yayınlandığı sunucunun tek bir adet olsa ve bütün herkes aynı sunucuya istek gönderse mutlak bir yerde duracaktır o sunucu, veya sunucuya bakım yapılacağı zaman kapalı kaldığında erişim kesilecektir.

Hata Toleransı ise aynı işlevi yapan birden çok sunucu olduğu için bakım yaparken tüm sistem kapatılmaz dolayısı ile herşey işleyişine devam eder veya sunucumuzun birisi hizmet veremez konuma gelirse diğer sunucularımız bu işlevi yerine getirir.

Kısa bilgiden sonra yapımdan bahsetmek istiyorum

1 adet Windows Server 2012 R2 (DC- IIS-NLB ) /192.168.1.1/24 - Server Ismi: X
1 adet Windows Server 2012 R2 (Domain Member- IIS-NLB ) /192.168.1.2/24 - Server Ismi: Y


İlk yapmamız gereken IIS ve NLB bileşenlerini yüklemek.



Role Based or Feature-based installation yapıyoruz .






Server Roles altında Web Server(IIS) seçiyoruz.



Features sekmesinden ise Network Load Balancing seçiyoruz ve kuruluma devam ediyoruz.






Kurulum bittikten sonra [C:\web] dizini içerisine index.html açıyorum ve içerisine test ortamımızda hangi sunucuya bağlandığımızı kolayca anlayabilmemiz için HasanDimdik1 yazıp kayıt ediyorum.



Daha sonra ise IIS'i açıp Add Website diyoruz.




Site Name : Opsiyoneldir 

Physical Path : Web klasör dizinimizi gösteriyoruz.

Binding kısmında ise 

Ip adress kısmına : Benim yapım için All Unassigned seçiyorum.

Hostname Kısmına : www.hasan.local yazıyorum.




Daha sonra DNS açıp eklemiş olduğum web siteme ait Host A kaydı altında IP bilgisi ile birlikte yazıyorum. (Bunu NLB yapılandırdıktan sonra sileceğim)



Daha sonra testimizi yapıyoruz. 



NLB için diğer sunucumda da buraya kadar olan adımları aynen izliyoruz  ve DNS bilgisini giriyoruz. ( Buradaki DNS bilgisine de daha sonra sileceğiz )



İkinci sunucumdaki yapılandırmama HasanDimdik2 vermemin sebebi ise NLB yapılandırdıktan sonra hangi sunucuya bağlandığımı net olarak anlayabilmem için bu şekilde yapıyorum. Gerçek yapıda tabiki böyle birşey yok :). Tüm sunuculardaki bilgilerin aynı olması gerekir gerçek ortamlarda.





Şimdi Gelelim konumuz olan NLB yapılandırmaya:

Feature altında yüklemiştik açtığımızda gördüğünüz gibi sade bir sayfa bizi karşılıyor .





New Cluster ile yeni bir Cluster yaratıyoruz.





Host kısmına ekleyeceğimiz server IP adresi yada host ismini girip connect diyoruz ve daha sonra next ile devam ediyoruz.




Bu bölümden kısaca bahsedelim ;

  • Priority (unique host identifier ) : Burada birden çok sunucu olacağı için gelen istekler ilk hangi sunucuma yönlenmesini istiyoruz 1 seçersek ilk olarak bu sunucuma yönlendirilmiş olur .
  • Initial Host State :  Sunucular cluster da hangi konumda olsun buradan ayarlayabiliriz.
  • Retain suspended state after computer restarts : Bu seçenek seçilirse server restart olduğunda servis durur.




Burada verdiğimiz IP adresi sanal bir IP. Şöyle düşünelim, 20 sunucumuz cluster içerisinde yer alsın ve ip leri (1,2....20) gidiyor. Bizim burada vermiş olduğumuz 192.168.1.100 ip si sanal olarak dış ortama gözüken ip olmuş oluyor. Bir nevi güvenlik önlemide almış oluyoruz aslında.





Burası bizim için önemli. Dış ortama gözükecek sanal bir ip'm var ve fark ettiyseniz, Mac adreside eklenmiş ( MAC'te sanal ). Burada bahsetmek istediğim yer ise

Cluster Operation Mode ;

  • Unicast :  Eğer çift ethernet kartınız var ise  seçmelisiniz .Eğer tek ethernet varken seçerseniz NLB makinaları birbirleri ile konuşamazlar. Çünkü Hearhbeat için interfacelerin biri kullanılır .Bunun içinde iki farklı Mac adresi olmalı ( Benim tek ethernet olduğu için seçmiyorum)
  • Multicast : Tek ethernet e sahipseniz bu mod kullanılır tüm işlemler tek hat üzerinden yapılır dezavantajı ise  trafiği yorar .
  • IGMP Multicast : Bunu kullanabilmeniz için switch'in IGMP BROADCASTdesteklemesi gerekiyor.

Buradaki en önemli nokta ise clusterların bu sanal MAC'i algılıyabiliyor olması fakat switchlerin algılamıyor olmasıdır, yapmamız gereken işlem MAC adresini static ARP olarak switch e tanımlamaktır.




Bu adımda da dikkat etmemiz  gereken yerler var kısaca bahsedecek olursak 

Port Range :
Ben sadece web için NLB yapacağım için sadece 80 portuna izin veriyorum.(Açılan gereksiz port her zaman güvenlik problemidir )
  • Protocols: Burada NLB yapağımız özelliğin hangi protokolü kullandığını belirtiyoruz.
Filtering Mode ;

  • Single Host : Bu seçili olursa priority değeri küçük olan hizmet verir ve diğer sunucular hizmet vermez .
  • Multiple Host : Birden çok sunucu kullacağımız için şeçiyoruz.
Affinity ;

  • None : Burdaki mantık sıralama mantığıdır ilk şu sunucuya ikinci gelen şu sunucuya diye dağıtım yapar.
  • Single : Örneğin ilk olarak x sunucusundan cevap gelirse hep x sunucusuna bağlanmış olurum . 
  • Network : Burada ise cevapları network ayarlıyor. İlk isteğimde x sunucusuna yönlendiriliyor olabilirim. Belki dördüncüsünde y sunucusuna yönlendirilebilirim.



Gördüğünüz gibi ilk sunucum aktif hale geldi. İkinci sunucumuda eklemem gerekiyor.



Cluster altında Add Host to Cluster seçeneği ile devam ediyoruz.



Fark ettiyseniz bütün işlemleri aynı sunucu üzerinde yapıyorum. Host olarak diğer NLB özelliği kurduğum server IP adresi olan 192.168.1.2 yazdım.





Burada ben yük dengelemelerini eşit oranlarda dağıttım. Fakat siz yapınıza göre veya sunucu gücünüze göre oranları değiştirebilirsiniz.



Gördüğünüz gibi yapımız hazır hale geldi. Son olarak ise 192.168.1.100 ip üzerinden websitemize bağlanılması için DNS kayıtlarını açmalıyım.






Şimdi websitemize bağlanmayı deneyelim, Ilk bağlanmamda 1 sunucuya HasanDimdik1, Ikinicisinde ise 2 sunucuya otomatik olarak yönlendirildim ve HasanDimdik2 'ye bağlandım .






Umuyorum faydası dokunmuştur.

Hasan DİMDİK