Load balancing; sunuculara gelen client isteklerinin yükünü sunuculara dağıtma işlemidir. Netscaler, client isteklerinin dağıtımı işlemini yaparken belirli bir sıra, metod ve kayıt göz önünde bulundurularak yapmaktadır. Load Balance işleminin yapılabilmesi için Netscaler üzerinde 3 temel tanımın yapılması gerekmektedir. Bunlar ; Virtual Server , Service ve Server tanımlarıdır.
Virtual Server – (VS)
Virtual Server; client isteklerinin geldiği ve kendisine bind edilmiş sunuculara client isteklerini ileten, ne şekilde iletileceğinin kararını veren sanal sunucudur.
Tanımdan da anlaşılacağı gibi, clientlar bütün isteklerini virtual server (VS) lara iletirler, VS ler ise gelen client isteklerini altında bulunan sunuculara belirlenen metod ve persistence ayarına göre iletirler. Client lar VS lere VS in IP, port ve protokol bilgisine uygun olmayan istekler gönderdiği durumda VS ler client isteklerini sunucu tarafına iletmezler.
Service
Service; fiziksel sunucuların IP-Port-Protokol olarak ihtiyaca uygun olarak tanımlanmış hali ya da sunucu üzerinde çalışan bir uygulamanın Netscaler üzerinde tanımlanmış halidir.
Bir fiziksel sunucu için birden çok service tanımlanabilmektedir. Örneğin; bir sunucuda HTTP, FTP ve birçok farklı TCP uygulama çalışıyor olabilir. Bu uygulamaların her biri için aynı IP – farklı port ve protokol den oluşmak kaydıyla farklı farklı service ler oluşturulabilmektedir.
Service ler, yukarıda bahsedilen şekilde tanımlandıktan sonra VS lere bind edilerek VS üzerinden client isteklerinin sunuculara gelmesini ve yanıtların geri iletilmesini sağlamaktadır.
Virtual Serverların çalışma mantığı Şekil-1 de basitçe gösterilmiştir. Bu örnekte Netscaler üzerinde 10.10.0.3 ipli Virtual Server oluşturulmuş ve bu virtual server a 10.10.0.1 ve 10.10.0.2 ipli serverların ilgili port ve protokolleri seçilerek oluşturulmuş servisler bind edilmiştir. Netscaler 192.168.10.44 ipli clienttan 10.10.0.3 ipsine yapılan istekleri servisleri arkadaki sunuculara tanımlı olan method ve persistence kurallarına uygun olarak dağıtır.
Server
Server; Netscaler tarafından kullanılan ya da trafiğin yönlendirildiği gerçek sunucuları temsil etmektedir. Netscalerda bir service oluşturulduğunda otomatik olarak aynı Ip adresi ile bir server oluşturulur.
HTTP LOAD BALANCING
Http Load Balancing client lardan gelen HTTP isteklerini sunuculara dağıtma işlemidir. HTTP isteklerini karşılayacak Virtual Server ve bu server a bind edilecek servicelerin oluşturulmasını adım adım aşağıda anlatılacaktır.
Virtual Server Oluşturma
1.Load Balancing –>Virtual Server sekmesine tıklanılır.
2.Add butonuna tıklanılarak virtual server oluşturma sayfası açılır.
UYARI: Üzerinde sarı ünlem olan özellikler disable durumunda demektir. Load Balancing sekmesinde de sarı ünlem işareti görüyorsanız sekme üzerinde sağ tık yapıp bu özelliğin enable edilmesi gerekmektedir.
Add butonuna tıkladıktan sonra virtual server ı oluşturduğumuz sayfa açılacaktır.
3.Name kısmına Virtual Server a vermek istediğimiz ismi yazıyoruz.
4. Ip Address kısmına Virtual Server’a vermek istediğimiz ip adresini giriyoruz.
5. OK butonu ile Virtual Server tanımını tamamlıyoruz.
NOT: Protokol kısmında oluşturmak istediğimiz Virtual Serverın özelliklerine göre değişik protokoller seçebiliyoruz. Drop down listte virtual server oluşturabileceğimiz tüm protokolleri görebilirsiniz. Biz HTTP virtual server oluştaracağımız için protokol kısmında bir değişiklik yapmadık.
Virtual Serverı tanımladıktan sonra bu virtual servera load balance yapılacak service leri eklememiz gerekmektedir. Bunun için aşağıdaki şekilde bir servis oluşturarak virtaual servera bind edeceğiz.
1. Load Balancing –> Services sekmesine tıklanılır.
2. Add butonuna tıklanılarak service oluşturma sayfası açılır.
3. Name Kısmına service e vermek istediğimiz ismi yazıyoruz.
4. Ip Address kısmına service e vermek istediğimiz ip adresini giriyoruz.
5. Bu service için kullanmak istediğimiz profile seçiyoruz. Drop down liste kullanabileceğimiz bütün protokoller yer almaktadır. Biz HTTP için tanım yaptığımız için HTTP seçeneğini değiştirmiyoruz.
6. Bu servis için kullancağımız port bilgisini giriyoruz. Protokollerin kullanıkları port bilgileri protokü seçinde bu Alana yansımaktadır. HTTP 80, FTP 21, SSL 443 vs.
7. OK seçeneği ile servisimizi oluşturuyoruz.
Bu işlemden sonra oluşturduğumuz servisi virtual servera bind ediyoruz. Öncelikle oluşturduğumuz virtual serverin üzerine sağ tıklayıp edit seçeneğine tıklıyoruz. Şekil -7 deki ekranda kırmızı ile işaretli alana tıkladığımızda Şekil-8 deki ekran sağ tarafta karmıza çıkıyor. Bu ekranda kırmızı kutunun içindeki alana tıkladığımızda var olan bütün servisler karşımıza çıkıyor. İlgili servisi seçip OK’ e tıkladığımız zaman Şekil-8 deki sayfa select service kısmı seçtiğimiz service olacak şekilde tekrar karşımıza geliyor. Burada Bind seçeneğine tıkladığımız zaman Şekil-7 deki ekrana dönüyoruz ve DONE seçeneği ile virtual server servisimizi bind ediyoruz. Bu işlemlerden sonra en basit haliyle bir virtual server oluşturmuş oluyoruz.
Method & Persistence
Virtual serverlar load balance yaparken Method & Persistence ayarlarına göre aksiyon alırlar.
Method
Virtual server altında birden fazla service tanımlanmışsa kendine gelen istekleri load balance ederken tanımlanan method configini baz alarak load balancing işlemini gerçekleştirir.
En sık kullanılan Load Balance Methodları aşağıdaki gibidir ;
- Round Rubin : En basit load balance metodudur. Bu metotta sunucular üzerindeki yüklere bakılmaksızın istekleri sırasıyla 1.,2.,3. Sunuculara gönderir. Son sunucuya da istek gönderildikten sonra gelen isteği 1 numaralı sunucuya gönderir. Eğer seçilen methoda göre sunucuların response ları aynı değerdeyse denge bozulana kadar round robin özelliğiyle trafiği load balance eder.
- Least Connection : Aktif transaction sayısı az olan sunucuya trafiği aktarır. Aktif transaction;response bekleyen request demektir. Netscaler default load balance yöntemi least connectiondır.
- Least Response Time : En kısa sürede cevap dönebilen sunucuya isteği ileterek load balance yapma mantığıyla çalışmaktadır. En fazla kullanılan methottur.
Persistence
Persistence; bir sunucudan istekte bulunan bir client ın 2. isteğini Netscaler a gönderdiğinde isteğinin yine aynı sunucuya iletilmesini sağlayan parametredir. Persistence sunucu tarafında session bilgisi tutuluyorsa yapılması gereken bir ayardır.
En çok iki adet persistence ayarı kullanılmaktadır. Bunlar;
- Source IP: Clientın IP bilgisini time-out süresi boyunca tutarak persistence in sağlanmasıdır. Eğer Sunucu tarafında aynı IP li sunucu varsa ya da clientlar tek bir IP den NAT lanarak geliyorsa bu persistency efektif değildir; çünkü istekler farklı clienttan geliyor olsa bile her defasında aynı IP gözüktüğü için aynı sunucuya gönderilecektir.
- Cookie Insert: Client a atanan cookie bilgisiyle persistence in sağlanmasıdır. Time-out süresi boyunca cookie bilgisini Eğer time-out değerine 0 girilirse session netscaler tarafında hiçbir zaman expire edilmez; fakat expire zamanı client yazılımına da bağlı olduğundan client browserini kapattığı zaman cookie expire olmuş olur.
Method & Persistence Çalışma Mantığı
Birden fazla service tanımlanmış bir virtual serverda hem method hem de persistence ayarının olması en ideal konfigürasyondur. Bir virtual server da hem method hem de persistence ayarı yapıldığındaki çalışma mantığı şöyledir:
Virtual server a ilk defa istek gönderen client lar belirlenen method a göre bir service e atanır. Persistence ayarına göre (persistence type, time-out) persistence tablosunda kayıt altına alınır. Kayıt altına alınan clientların 2. ve sonraki istekleri ise method a bakılmaksızın persistence tablosundaki kayıt referans alınarak yine aynı service e iletilir.
Ek Load Balance Çözümleri
Yukarıda klasik Load Balance konfigürasyonlar işleminden bahsedilmiştir. Bu kısımda load balance ile ilgili alınması gerekli bazı önlemlerden bahsedilmektedir.
Virtual serverlar altında bulunan servisler sunucuların down olması ya da networksel problemlerden dolayı down olabilmektedir. Netscalerda virtual serverların down olması durumunda dahi client isteklerinin karşılanması veya clientların başka bir hata sayfası ya da URL ‘e yönlendirilmesi gibi aksiyonların alınmasını sağlayan yöntemler bulunmaktadır. Bunlar:
- Redirect URL: Virtual server ın down olması durumunda clientların belli bir URL’e yönlendirilmesi için kullanılmaktadır. Genellikle bu kısım bir hata sayfasına yönlendirme yapmak için kullanılmaktadır.
- Backup Virtual Server: Adından da anlaşılacağı gibi virtual serverın down olması durumunda clientların başka bir virtual server a yönlendirmek için kullanılır.
NOT: Bir virtual server a hem Redirect URL hem de Backup Virtual Server ayarı girilmişse virtual server down durumdayken ilk önce Backup Virtual Server a yönlendirme yapılır. Bu virtual server da down ise Redirect URL devreye girer ve client lar ilgili URL’e yönlendirilir.
Bu işlemleri virtual server altında Protection tabı altında yapıyoruz. Aşağıda gördüğümüz 1 numaralı alana yönlendirme yapılacak URL adresini yazıyoruz. 2 numaralı alandaki drop-down listte ise Backup Virtual Server ı seçiyoruz.