Okan Yalçın

Windows Server 2008 R2′ de Network Load Balancing — 2 Nisan 2013

Windows Server 2008 R2′ de Network Load Balancing

Network Load Balancing (NLB) , ağ yükünün yük dengeleme ve hata toleransına bağlı olarak birden fazla sunucuya dağılımını yapan servisidir. Bu sayede hizmet kesintisine uğramadan istemcilere hizmet sağlayabiliriz. NLB ‘i FTP , WEB , Exchange gibi istemcilerin sürekli etkileşimde olduğu servislerde kullanabiliriz. NLB ‘nin iki temel özelliği vardır.
-Yük Dengeleme : Hizmet veren sunucunun belirli bir kapasitesi ve band genişliği vardır. Bütün istemcilerin tek bir sunucu üzerinden hizmetleri alması performans düşüklüğüne sebep olacaktır. NLB sayesinde aynı işi yapan farklı bir sunucuya da yönlendirme yapabiliriz. Bu sayede performans artacaktır. NLB servisi için Windows Server 2008 R2 ‘de 32 tane sunucu oluşturabiliyoruz.
-Hata Toleransı : Sunuculardan birinin yedeği olduğu için ,herhangi birinin üzerinde güncelleme , bakım işlerini yaparken diğer sunucu hizmet sağlayabilir.
Uygulamamda Web IIS servisini NLB ile kullanacağım. Yapımda DC bir makinem , NLB için iki tane Windows Server 2008 R2 yüklü makine ve Win 7 bir istemcim olacak. Ortamdaki makineler domain dahil ettikten sonra iki sunucumun üzerine IIS rolünü yükledim. Burada dikkat etmemiz gereken nokta yayınını yapacağımız web sitelerin aynı özelliklere sahip olması gerekiyor.
IIS servisi kurulumu sonrası farklı bu sunucularımı kümelemem gerekli bunun için NLB kurulumuna geçiyorum. İki sunucumun üzerine sırasıyla Network Load Balancing özelliklerini ekliyorum. Sırasıyla işlemleri gerçekleştirelim.

a (2)

Feature üzerinden Add Features diyoruz.

a (3)

Network Load Balancing özelliğini seçip Next diyerek yüklemeyi gerçekleştiriyoruz.

a (4)

Kurulum başarıyla gerçekleşti. NLB kurulumunu cmd üzerinden de gerçekleştirebiliriz. Bunun için cmd ‘yi Administrator ile açarak servermanagercmd –install nlb yazıyoruz.

a (5)

İki sunucumuz üzerinde NLB kurulumlarını gerçekleştirdikten sonra istersek bu sunuculardan herhangi birinden veya ortamda bulunan farklı bir sunucu üzerinden Network Load Balancing Manager Tool açabiliriz. Ben ortamdaki DC makinemin üzerinden yönetim yapmak istiyorum bunun için birkaç işlem yapmam gerekli.

a (6)

Sunucumun Features bölümüne gelip Remote Server Administration Tools bölümünden Network Load Balancing Tools seçerek , yönetimimi bu bölümden gerçekleştiriyorum.

a (7)

Administrative Tools üzerinden NLB Manager açarak sunucularımızı kümeleyelim.

a (8)

New Cluster diyoruz.

a (9)

Birinci makinemizin ismini yazarak Connect butonuna basarak bu isme kayıtlı ip adresini bize getirmesini bekliyoruz. İşlem gerçekleştikten sonra Next diyoruz.

a (10)

Bu bölümde NLB için ilk sunucumuz üzerinde ayarlara geçiyoruz.
Priority (Unique host identifier) : Cluster yapımızda birden fazla sunucu olduğu için gelen istemci ilk olarak hangi sunucuya yönlendirileceğini sağlar. Öncelik olarak 1 verdiğimiz için istemci bu sunucuya yönlenecektir. Priority değerlerine bakarsan 32 ye kadardır. Bu da NLB için en fazla 32 makine kurabileceğimiz anlamına gelir.
Initial host state : Sunucuyu kümeye dahil ettiğimizde durumu ne olsun anlamına gelir . Bu bölümde bunu seçeriz. Started , Stopped , Suspended seçenekleri mevcut.
-Started : Kümeye dahil olunca başlatılsın.
– Stopped : Durdurulsun.
– Suspended : Durdulsun ve kullanıcı tarafından başlatılsın.
Retain suspended state after computer restart : Küme üzerindeki sunucular restart olursa servisi durdur .
Değerleri öntanımlı olarak bırakıyorum ve Next diyorum.

a (11)

NLB çalışma mantığında sunucuların iplerinin dışında onlara ortak bir sanal ip veriyoruz. Hizmet bu sanal ip üzerinden gerçekleşecek. İstemci bu sanal ip ye yönlendirilecek ve bu ip üzerinden sunucularımıza ulaşacak. Add butonuna tıklayarak açılan bölümde belirlediğimiz ip adresini giriyoruz.

a (12)

Network Address bölümü bu ip için oluşturulan sanal mac adresidir. Full Internet Name ismini clusterımız için belirlediğimiz adı girip DNS üzerinden Host+ PTR kaydı oluşturmalıyız.
Cluster operation modlara bakmadan önce bilmemiz gereken nokta cluster üyesi makinelerin biribirleri ile konuşması gerektiğidir. Birbirlerini “Ayakta mısın ?” mesajları atıp sürekli birbirlerini kontrol ederler.
Unicast mode : Tek interface sahiplerken birbirleri ile konuşamazlar çünkü aynı MAC adresine sahiptirler. Unicast modda en iyi performansı elde etmek için sunucular üzerinde sadece aralarında iletişimi sağlamak için ayrılmış (HeartBeat) interfaceler varsa o zaman kullanılabilir. Bu durumda farklı Mac adreslerine sahip olduktanlarından dolayı birbirleri ile konuşabilirler.

Multicast mode : Sunucular tek bir interface sahipken hem istemcilere hemde birbirleri arasındaki iletişimi sağlamak için bu interface kullanacaklar. Tek interface sahipsek uygun olan mod budur. Fakat trafik yoğundur.
IGMP Multicast : Switch eğer IGMP Broadcast destekliyorsa sunucular arası iletişimi sağlayan “Orda mısın ?” paketleri multicast şekilde iletilir. Fakat switch IGMP desteklemiyorsa bu paketi flood eder. Yani bütün portlarından yollar.

Ben Multicast seçerek ileri diyorum.

Burada dikkat etmemiz gereken önemli bir nokta ise NLB yapımız için sanal bir MAC adresi oluşturmuştu. Bu MAC adresini switch üzerinde statik ARP kayıdı olarak eklememiz gerekmektedir. Çünkü Cluster için oluşan bu sanal MAC kendini switch üzerinde güncelleyemeyecektir.

a (13)

Port Range : NLB yapacağım port hangisinin olduğunu seçeriz. Sadece web içinse 80. Portu kullanırız.
Disable this port range ile de Port Range bölümünde seçtiğimiz portlar dışındaki portlarla NLB yap demiş oluruz.
Single Host : İle priority hangisinde küçükse ona yönlendirileceğimizi , diğer sunucunun ise hizmet dışında kalacağını belirleriz. Belirli bir sebepten ötürü sunuculardan birisinde sorun olursa onu devre dışı bırakıp gelen isteklere sadece birinin bakmasını sağlayabiliriz.
Multiple Host : NLB yi uygulayacağımızı yani birden fazla sunucu kullanacağımız anlamına gelir.

Affinity

-None : İstemcilerden gelen isteklerin sırayla sunuculara yönlendirilmesini sağlar. Bu bölümdeki sıkıntı ise, üye girişi olan sitelerde kullanıcı girişi sonrası tekrar bir giriş ile diğer sunucuya yöneldirilirse burada da üye girişi yapmak durumda kalır.
– Single : Herhangibir istemci eğer sunucu1 e gelirse isteklerine hep sunucu1 cevap verecektir.None modda yaşanan session problemini önlemiş oluruz.
– Network : İstemcileri belirli bir networkten gelenler olarak ayırıp , istenilen herhangibir sunucuya yönlendirilir. Single modda sadece tek istemci bazlı iken bu bölümde ise network gruplarına ayırıyor.

a (14)

Birinci sunucumuz NLB için hazır hale geldi. Şimdi 2. Sunucumuzu ekleyeceğiz.

a (15)

Add Host to Cluster diyerek diğer sunucumuzu ekliyoruz.

a (16)

İsim çözümleme işlemini gerçekleştiriyoruz. Next diyip devam ediyoruz.

a (17)

Bu sunucu priority olarak 2 den başladı.

a (18)

İkinci sunucumuzda artık hazır hale geldi. Düşünelim ki Server1 makinesi Server2 makinesine göre daha güçlü veya server2 makinesi üzerinde farklı bir servis daha çalışıyor. Server1 makinesinin ağ yükünü Server2 ‘ ye daha fazla yapabiliriz. Bunun için Host Properties tıklıyoruz.

a (19)

a (20)

Açılan pencerede Port Rules sekmesine tıklayıp Edit diyoruz.

a (21)

Equal bölümündeki işareti kaldırıp Load weight bölümünde istediğiniz oranı verebilirsiniz.

NLB ‘nin çalışma mantığında sanal bir ip oluşturulduğunu söylemiştik. Bu sanal ip yi sunucularımızın üzerinde de görebiliriz.

a (22)

a (23)

Bizim kaydımız http://www.okanyalcin.com adlı adresime 192.168.1.50 nolu ip üzerinden bağlanmaları için DNS üzerinde kayıt oluşturmalıyız. İstemci bu adresi yazdıktan sonra 192.168.1.50 ‘ ye yönelecek ve bu ip üzerinden sunucularıma yönelenecek.

a (24)

a (25)

Kayıdı oluşturdum. Şimdi deneyelim 

a (26)

İki farklı bilgisayar üzerinden siteye girişi yaptığımda önceden IIS üzerinde yayınladığım siteler farklı sunucular üzerinden geliyor. Son olarak komut satırından kontrol etmek için ;

a (27)

Takip Et

Her yeni yazı için posta kutunuza gönderim alın.

Diğer 668 takipçiye katılın