Citrix NetScaler Load Balancing Algoritmaları

Citrix NetScaler ürününün belki de en çok bilinen özelliği load balance özelliğidir load balancing işlemi için lab ortamında deneme yaptığım 1.yazıya buradan, 2.yazıya buradan ulaşabilirsiniz.

NetScaler ürünü müşteriden gelen talepler doğrultusunda kendi içinde barındırdığı algoritmalar yardımı ile load balancing işlemi gerçekleştirmektedir.En yaygın olarak kullanılan ROUNDROBIN algoritmasıdır.

Algoritmaların bazıları web sitelerinde ki trafiği yönetmek için bazıları daha karmaşık yapılar içindir.Bu yazıda NetScaler Algoritmalarının hepsini anlatmaya çalışacağım.

  • LEASTCONNECTION: Netscaler üzerinde default olarak seçili olan algoritmadır.Gelen istekleri trafiği en az olan sunucuya yönlendirir.
netscaler least connection ile ilgili görsel sonucu
  • ROUNDROBIN: En yaygın olarak kullanılan ve anlaşılması en kolay algoritmadır.Gelen istekleri sırasıyla sunuculara dağıtır.
netscaler round robin ile ilgili görsel sonucu
  • LEASTRESPONSETIME: Gelen istekleri trafiği en az veya response  time’ı en düşük olan sunucuya yönlendirir.Metrikler her 7 saniye de bir hesaplanmaktadır.Bu algoritma sadece HTTP ve SSL servisleri için seçilebilmektedir.
netscaler least response time ile ilgili görsel sonucu
  • URLHASH: HTTP URL’inin hash değerini baz alarak çalışan bir algoritmadır.NetScaler URL hash değerini önbelleğe alır ve aynı URL için gelen istekleri bu önbellekte bulunan hash’i baz alarak aynı hizmete yönlendirir.Default olarak NetScaler URL’in ilk 80 baytını temel alarak hash’i hesaplar farklı uzunlukta bir hash hesaplamak isterseniz bunu NetScaler’a belirtmeniz gerekir.Eğer ki NetScaler gelen istekleri düzgün bir şekilde ayrıştıramaz ise load balancing işlemine devam etmek adına ROUNDROBIN algoritmasını uygular.
Ä°lgili resim
  • DOMAINHASH: HTTP isteğindeki domain adının hash değerine göre çalışır.Domain adı, gelen URL’den veya HTTP isteğinin hostname header’ından alınır.Domain adı hem URL hemde Host Header’ında geçiyorsa NetScaler URL’i kullanacaktır.DOMAINHASH algoritmasını yapılandırdığınız da gelen isteğin URL’i veya Host Header’ı bir domain ismi içermiyorsa NetScaler default olarak ROUNDROBIN algoritmasını kullanacaktır.
  • DESTINATIONIPHASH: Bu algoritma yapılandırıldığı zaman NetScaler hedef ip adresinin hash değerini temel alır.Hedef IP adresini maskelemek ve daha sonra hash değerini hesaplamak için subnet mask parametresini kullanabiliriz.Farklı ağlardan gelen talepler NetScaler’a ulaştığa zaman, subnetmask kullanarak bir subnet’e ait istekleri tanımlar ve istekleri aynı sunucuya hash değerine göre iletir.Bu yöntem NetScaler’ın cache redirection özelliği ile kullanımı için uygundur.
  • SOURCEIPHASH: İstemci IPv4 veya IPv6 adresinin hash değerini baz alan bir service seçer.
  • SRCIPDESTIPHASH: Kaynak ve hedef IP adreslerinin hash değerine dayanarak bir service sağlar.Hashing simetriktir, bu yüzden kaynak ve hedef IP adresleri tersine çevrilirse aynı değeri verir.Bu, belirli bir istemciden aynı hedefe akan tüm paketlerin aynı sunucuya yönlendirilmesini sağlar.
  • CALLIDHASH: SIP Header’ında Call ID’nin hash değerine dayanarak service seçer.Böylece belirli bir SIP session’ı aynı proxy sunucusuna yönlendirilir.Bu yöntem SIP load balancing için geçerlidir.
  • SRCIPSRCPORTHASH: Gelen IP adresinin kaynak IP’sini ve gelen isteğin kaynak portunun hash değerini temel alarak service seçer.Bu, belirli bir bağlantıdaki tüm paketlerin aynı sunucuya yönlendirilmesini sağlar.
  • LEASTBANDWIDTH: Ölçülen an az miktarda trafiğe hizmet veren service’i seçer.Bu ölçüm her saniyede megabit cinsinden yapılır.
netscaler least bandwidth ile ilgili görsel sonucu
  • LEASTPACKETS: Son 14 saniye içerisinde en düşük paketlere hizmet veren service’i seçer.
netscaler least packets ile ilgili görsel sonucu
  • CUSTOMLOAD: Çok aktif olmayan service’leri seçer.Service’ler aktif işlemlerle uğraşıyorsa NetScaler yüküne göre bir hizmet seçer.Load monitor olarak bilinen özel bir monitor tipi vardır ve bu monitor yük hesaplamaları yapar ancak service state üzerinde işaretleme yapmaz.Custom Load Balancing, CPU kullanımı, RAM ve Response Time gibi sunucu parametrelerinde gerçekleştirilir.
  • TOKEN: İstemci isteğinden çıkarılan Token değerine dayanan bir service seçer.Token konumu ve boyutu yapılandırılabilir.TCP, HTTP, HTTPS service türleri için farklı şekillerde çalışır.
netscaler token algorithm ile ilgili görsel sonucu
  • LRTM: Aktif bağlantısı en az olan ve monitor response time’ı en düşük olan service’i seçer.

Load Balancing işlemi protokolüne bağlı olarak NetScaler istemci ve sunucu arasındaki her bağlantıyı kurar.Bu bağlantı yöntemi 3 tür olarak yapılır. 

  • request-based
  • connection-based
  • time-based

Request-based: 

  • Http veya Https
  • Her HTTP isteği için, TCP bağlantılarından bağımsız olarak yeni bir service seçilir.Tüm HTTP isteklerinde olduğu gibi, web sunucusu isteği yerine getirdikten sonra bağlantı kapatılır.

Connection-based: 

  • HTTP dışındaki TCP ve TCP tabanlı protokoller
  • Her yeni TCP bağlantısında bir service seçilmiştir.Bağlantı service veya istemci tarafından sonlandırılana kadar devam eder.

Time-based:

  • UDP ve diğer IP Protokolleri
  • Her UDP paketi için yeni bir service seçilmiştir.Bir servisin seçimi üzerne, service ile belirli bir süre için bir müşteri arasında oturum oluşturulur.Süre dolduğunda, bu paketler aynı müşteriden gelse bile, oturum silinir ve herhangi bir ek paket için yeni bir service seçilir.

Bir sonraki yazıda görüşmek üzere…



Leave a Reply

Your email address will not be published.

*
*
*