HAProxy Load Balancer Kurulum ve Konfigurasyonu (SharePoint 2013 & SQL Server 2012 Yedekli Kurulumu Bölüm-4)

By | 16/12/2014

Merhaba,

Bu makalemizde sizlere yedekli yapıda çalışan sunucu sistemlerinizin ön tarafında konumlandırıp sunucularınıza erişmek isteyen kullanıcılarınızı istediğiniz kurallar çerçevesinde arka tarafta çalışan sunucularınız üzerine belirleyeceğiniz kurallar çerçevesinde erişmesini sağlayacak olan Network Load Balancer (NLB) ürünü olarak HAProxy yazılımını ücretsiz olarak nasıl kurup kullanabileceğinizi anlatmaya çalışacağım.

Bu makale aynı zamanda daha önce yazmış olduğum SharePoint Server 2013 ve SQL Server 2012 Olarak Kurulum ve Yapılandırma makalesinin 4’üncü ve son bölümü olarak hazırlanan makaledir.

Kısaca bu makaledeki test ortamımızdan bahsetmek istiyorum, ( SharePoint 2013 yedekli yapı makalesini okuyan arkadaşlarımız yapıyı ezberledi zaten J )benim ortamımda ürünü konumlandıracağım test ortamımda kullanıcılarımı yönlendirmem gereken 2 adet SharePoint Server 2013 sunucu mevcut. Ben HAProxy (NLB) yazılımıma 192.168.56.10 IP adresini vererek SharePoint Farmıma erişmek isteyen kullanıcılarımın SharePoint sunucularıma erişmek için kullandıkları isimleri DNS Server üzerinde bu IP adresine yönlendirip kullanıcılarımın SharePoint erişim isteklerinin önce HAProxy’nin karşılamasını sağlayacağım.

HAProxy üzerinde yapacağım ayarlar ile kullanıcı isteklerini HAProxy arkasında çalışan 2 adet SharePoint Server 2013 sunucusuna eşit olarak dağıtmasını aynı zamanda bu sunuculardan birisinde sorun yaşandığında gelen tüm isteklerin eksiksiz olarak çalışır durumda bulunan SharePoint Server 2013 sunucusuna yönlendirilmesini sağlayacağım. Bu şekilde hem sunucularım üzerindeki yükü eşit olarak dağılmış olacağım aynı zamanda bir sunucumda sorun yaşandığında HAProxy bunu anlayarak kullanıcı istekleri sadece aktif durumdaki sunucumuz üzerine yönlendirerek herkesin kesintisiz olarak sisteme erişmesini sağlayacaktır.

Bu makalede kurulumunu yapacağımız yapının görünümü aşağıdaki gibi olacaktır.

HA_PRX_01

Kurulumunu anlatacağım HAProxy’nin VMware sanallaştırma ortamınızda açıp çalıştırabileceginiz SUSE Linux üzerinde kurulmuş ve sanal sunucu olarak paketlenmiş olarak sunlan virtual appliance halini aşağıdaki linkten indirebilirsiniz. Ben kurulumlarımı ve testlerimi VMware Workstation 10 ortamımda yaptım.

https://susestudio.com/a/R42GDM/vmtoday-vmware-view-load-balancer

Bu paketi sanallaştırma ortamınıza açtıktan sonra ihtiyacınız olacak olan üzerinde tanımlı olan kullanıcı hesapları ve şifreleri aşağıdaki gibidir.

root : LB@VmV!ew5
haproxy : HA@VmView5

Sunucu açılırken kaşınıza çıkacak olan SUSE Lisans sözleşme sayfasından çıkmak için q harfini kullanınız ve y ile kayıt ederek kuruluma devam ediniz.

HAProxy Appliance sunucumuz sorunsuz olarak açılacaktır, açıldıktan sonra yapılacak işler sırası ile aşağıdaki gibidir.

HAProxy appliance root kullanıcı hesabı ile logon olunuz. Mevcut kullanıcı hesaplarının default şifrelerini değiştirmek isterseniz passwd komutunu kullanabilirsiniz.

Root kullanıcı hesabı yeni şifresini herhangi bir bölüme eklemenize gerek yok ama, eğer haproxy isimli kullanıcı şifresinide değiştiriseniz, HAProxy NLB sunucunuzun durumunu uzaktan web konsolundan izleyebilmek için kullanılan bu kullanıcının yeni şifresini haproxy.cfg konfigurasyon dosyasında da değiştirmeniz gerekektedir. Bu dosyayı nasıl edit edebileceğimizi birazdan anlatıyor olacağız yeni şifre ekleme işleminide biraz sonra yapabilirsiniz.

1-      HAProxy Network Ayarları:

HAProxy Applicance açıldıktan sonra, ilk önce HAProxy Appliance network ayarlarını yaparak sabit IP adresi tanımlamamız gerekmektedir.

HAProxy Appliance sunucumuzun network kartı ayarlarını yapmak için yast komutu ile açabileceğiniz aşağıdaki ekrandaki YAST konfigurasyon tool’u ile düzenleyebilirsiniz.

HA_PRX_02

Ayarları yaptıktan sonra YAST’den çıkınız, ifconfig komutu ile network ayarlarının son durumunu görebilirsin.

Network kartı ayarlarını tamamladıktan sonra HAProxy Appliance reboot komutu ile yeniden başlatınız.

2-      DNS Server Ayarları:

Ortamınızdaki DNS server üzerinde SharePoint Sunucularına erişmek isteyen kullanıcılarınızı HAProxy sunucusuna yönlendirecek olan aşağıdaki kayıtları oluşturunuz.

Bizim test ortamımızda kullanıcılarımız SharePoint Server sunucularımıza http://sharepoint ve http://portal.recepyuksel.net adreslerini kullanarak erişebiliyorlar.

DNS Server üzerinde sharepoint ve portal kayıtlarını HAProxy’nin IP adresine 192.168.0.10 yönlendiriniz.

portal    192.168.0.10
sharepoint         192.168.0.10

SharePointServer1: 192.168.0.51
SharePointServer2: 192.168.0.52

HA_PRX_03

DNS ayarlarının doğru çalışıp çalışmadığını test etmek için sharepoint ve portal isimlerine ping attığınızda 192.168.0.10 IP adresinden cevap aldığınızı test ediniz.

 HA_PRX_04

3-      HAProxy Appliance Ayarlarının Yapılması:

HAProxy sunucumuzun devreye alabilmek için yani istediğimiz şekilde kullanıcıları karşılayıp SharePoint Server 2013 sunucularımıza yönlendirebilmesi için gerekli olan ayarları yapacağımız bu adımdan sonra işlemlerimiz bitmiş olacaktır.

HAProxy’nin hangi IP adresini dinleyeceği ve kullanıcıları hangi sunuculara yönlendireceğine haproxy.cfg isimli konfigurasyon dosyası içine ekleyeceğimiz satırlar ile ayarlamış olacağız.

Haproxy.cfg dosyası /etc/haproxy/ adresi altında bulunmaktadır. Bu dosyayı vi editor aracılığı ile edit edip gerekli düzenlemeleri yapacağız.

Bu işleme başlamadan önce vi editor kullanımı sırasında ihtiyacınız olacak bazı komutlar aşağıdaki gibidir.

vi Kullanımı Hakkında:

X delete satır siliyor

İ insert satıra ekleme yapabilmeniz için kullanabilirsiniz ekleme işlemi bitince insert işleminden çıkmak Esc tuşunu kullanınız.

:wq Düzenleme işlemleriniz bitince yaptığınız değişiklikleri kayıt edip çıkmak için bu komutu kullanınız.

Haproxy.cfg dosyamızı vi editor aracılığı ile açmak için aşağıdaki komutu kullanabilirsiniz.

vi /etc/haproxy/haproxy.cfg

 

FRONTEND bölümü altında ön tarafta dinlenecek portumuzu, hangi platform için dinlediğimize ait gerekli ayarları yapmamız gerekiyor.

Ben burada SharePoint sunucularım için bu dinleme işlemini yaptığım için SHAREPOINT-WEB ismini verdim.

Frontend SHAREPOINT-WEB

Bind ön tarafta dinleyeceğimiz IP adresi ve portunu bu bölüme yazmamız gerekiyor. Biz 192.168.0.10 IP adresi üzerinde 80 numaralı TCP portu dinleyeceğimiz için aşağıdaki şekilde düzenleyelim.

Bind 192.168.0.20:80

Desteklenen maksimum bağlantı sayısını girmemiz gerekiyor. Ben burada 40.000 olarak belirlemek için aşağıdaki şekilde düzenledim bu satırı.

Maxconn 40000

Bu bölümde enable etmemiz gereken 4 satır ise default_backend satırıdır. Bu satıra yazdığımız isim alt taraftaki BACKEND bölümü altında yaratacağımız sunucu konfigurasyonu altında aranacak ve bu isim altında yaptığınız ayarlara göre burada belirleyeceiniz sunucularınıza belirlediğiniz kurallar çerçevesinde yönlendirilecektir erişim istekleri.

Frontend SHAREPOINT-WEB
maxconn 40000

bind 192.168.0.10
default_backend SHAREPOINT-WEB

 HA_PRX_05

Ben düzenleme yaptığım satırları burada sarı renkli olarak belirtmeye çalıştım.

BACKEND bölümünde ayarlarımızı aşağıdaki gibi yapalım.

Yukarıda FRONTEND bölümünde isteklerin yönleneceği sunucular kısmı için yazdığımız ismin aynısını burada kullanmamız önemli,

NLB içindeki sunucuların erişim bilgileri ve sunucu ayaktamı diye kontrol etme zamanlarını server tabındaki sunucu isminin sonuna ekleyelim. 10s 10’sn bir kontrol edecek eğer 5 kontrolun2 sinde fail alırsa bu sunuucuya erişim olmadığını anlayıp tekrar sunucuya erişene kadar bir daha kullanıcı yönlendirmesi yapmayacak tüm kullanıcıları ayaktaki cevap aldığı sunuculara yönlendirecektir.

backend SHAREPOINT-WEB
mode tcp
option tcplog
balance leastconn
server SPAPP 192.168.0.51:80 check id 1 inter 10s rise 5 fall 2
server SPAPP1 192.168.0.52:80 check id 1 inter 10s rise 5 fall 2

Kullanmayacağımız satırların başındaki # işareti kalması gerek. Bunlar şimdilik dursun silmeyelim ilerde belki başka ayarlar yapmak istediğinizde kullanabilirsiniz.

HA_PRX_06

Düzenleme işlemi bittikten sonra vi editöründen yaptığımız ayarları saklayıp çıkmak için :wq komutunu kullanarak çıkalım ve HAProxy bir kez restart etmenizi tavsiye ederim.

Şimdi hep SharePoint sitemize erişmeyi deneyelim tekrar ve HAProxy nasıl çalışıyor hep birlikte görelim.

http://portal.recepyuksel.net adresine erişelim ve sitemize erişebiliyormuyuz görelim. Sayfamız aşağıdaki gibi açılacaktır.

HA_PRX_07

Sayfamız yukarıdaki gibi açılmıştır, şimdi HAProxy’nin control ekranına erişip nasıl çalıştığını görmek için HAProxy IP ve 1936 numaralı porttan erişip nasıl çalıştığını gözlemleyebiliriz.

Aşağıdaki HAProxy kontrol ekranında Frontend’in durumunu Backend sunucuların durumunu takip edebilirsiniz. Frontende tabında session kısmında şuanda kaç adet session’un açık olduğunu görebilirsiniz. 1 adet istemiğimiz var.

Alttaki Backend tabında SharePoint sunucularımızın durumunu ve isteklerin bu sunucular üzerinde nasıl dağıtıldığını görebilirsiniz. Benim biraz önce yaptığım bağlantım SPAPP isimli sunucuya yönlendirilmiş.

HAProxy stats/admin ekran erişim adresi aşağıdaki gibidir.
http://applianceipaddress:1936/haproxy?stats

HA_PRX_08

Şimdi bakalım Load Balancer düzgün çalışıyormu diye test edelim, SPAPP isimli sunucuyu kapattım ve HAProxy izlemeye devam ediyorum. Önce sunucu kapandıktan sonra önce bu sunucuya erişimde sorunlar yaşamaya başladığı için bu sunucunun izlendiği bölüm sarı oldu. Halen bu sunucuya erişmeye çalışıyor ama bir sorun olduğunu fark etti, biraz sonra burası kırmızı olacak…. Benim SharePoint sitesi bağlantımın SPAPP1 isim sunucuya gönderildiğini burada görebilirsiniz.

HA_PRX_09

Ben SharePoint içerisinde dolaşmaya devam ediyorum ve siteye erişim kesilmedi ve SPAPP1 isimli sunucuya otomatik olarak HAProxy tarafından yönlendirildim ve siteye erişimde bir sorun görmüyorum. Bağlantım sorunsuz olarak çalışmaya devam ediyor. HAProxy kurarken amaçlarımızıdan birisi bu idi bu işlemde bir problem yok çalıştığını görmüş olduk.

HA_PRX_10

Yaklaşık 1 dk. sonra HAProxy ekranını yeniden kontrol ettiğimde kapanan SPAPP isimli sunucunun erişim durumunun kırmızı ile renklendirildiğini görebilirsiniz. Bu sunucuya artık kullanıcılar yönlendirilmeyecektir. Sunucu açıldıktan ve erişim sağlandıktan sonra burası yeniden yeşil olacak ve kullanıcılar bu sunucuyada otomatik olarak yönlendirilmeye başlayacaktır.

HA_PRX_11

Siz herhangi bir zamanda sunucularınızda bakım vs. yapacağınız zaman HAProxy izleme ekranının en altındaki Choose the action to perform on the checked servers bölümündeki seçeneklerden birisini kullanarak buradaki Disable, Enable, Soft Stop ve Soft Start seçenekleri ile bazı sunucularınıza yönlendirmeleri buradan kendiniz manuel olarak kapatıp sonra çalışmanız bittiğinde tekrar açabilirsiniz.

HA_PRX_12

Bu noktada makale serimizin başında bahsetmiş olduğumuz full yedekli yapı kurulumunu tamamlamış bulunuyoruz. Buraya kadar sabırla okuduğunuz için hepinize teşekkür ederim. Bir başka makale serisinde buluşmak dileklerimle hepinize güzel günler dilerim.

Faydası olması dileklerimle.

Recep YÜKSEL