PERFORMANS
/ Devamlılık - Yük Paylaşımı (L7)
Yük Paylaşımı & Devamlılık
Load Balancing (Layer 4) & Failover
Tanım olarak yük paylaşımı, bir sunucunun tek başına yapması
gereken iş miktarını iki ve ya daha fazla sunucuya paylaştırarak
aynı zaman diliminde daha fazla veri sunabilmek ve dolayısıylada
kullanıcıların daha hızlı yanıt almasını sağlamaktır. Yük paylaşımı
donanımsal, yazılımsal ve ya bazen her ikisinin kombinasyonu
ile gerçekleştirilebilir.
Genel olarak yük paylaşımının ciddi miktarlarda trafik üreten
web sitelerinin yükünü hafifletmek amacıyla kullanılması gereken
bir çözüm olduğu yönündeki düşünceler bu konudaki yaklaşımlardan
sadece bir tanesini oluşturur. Çünkü yük paylaşımın yanıt sürelerini
düşürüp sunucu başına düşen yükü azaltarak performansta artış
sağlamasından belkide daha önemli bir sorunu çözdüğü göz önünde
bulundurulmalıdır. Tek bir sunucuya bağlı web dahil herhangi
bir servisin beklenmedik bir donanımsal ve ya yazılımsal hata
oluştuğunda kesileceği ve sorun giderilene kadar o servise
bağlı tüm diğer servislerin aksayacağı ve ya duracağı, hatta
ciddi ekonomik kayıplara sebep olacağı (Ör: E-Ticaret siteleri)
muhakkaktır. Bunun yanı sıra zorunlu bakım/onarım ve ya periodik
yeniden başlatma (restart) gibi yönetimsel (administrative)
müdahalelerde de tek sunucu ile yürütülen servisin aynı şekilde
kesileceği düşünüldüğünde aslında yük paylaşımının performans
odaklı yaklaşımın aksine devamlılık odaklı
yaklaşımla ele alınması gerektiği anlaşılabilir. İki ve ya
daha fazla sunucu ile gerçekleştirilecek yük paylaşımı sözünü
ettiğimiz beklenmedik arıza, planlanmış bakım ve onarım çalışmalarında
öncelikle hizmetin devamlılığını garanti ettiği gibi bir taraftan
servisin kalitesinide standartların üzerinde tutacaktır.
Sunucuya yöneltilen her bir isteği sırasıyla alan adı sistemi
(DNS) tablosu içerisindeki farklı host adresine yönlendirme
olarak tabir ettiğimiz round-robin yöntemi
geleneksel yük paylaşımı metodlarından bir tanesidir. Ancak
günümüzde yük paylaşımı sadece gelen istekleri sırasıyla paylaştırmak
işleminden daha anlamlı ve verimli algoritmaları içerir. Yük
paylaşımını gerçekleştirecek olan cihaz, arkasında yer alan
ve yükü paylaştıracağı sunucuları Ping, TCP, URL ve ECV bağlantıları
ile sürekli olarak kontrol ederek servise uygun olmayanları
yük paylaşımı listesinden çıkarır. Ayakta ve sorunsuz çalışmakta
olanlarına ilişkin ise en az paket (Least Packets), en az bantgenişliği
(Least Bandwidth), en az bağlantı (Least Connections), en uzun
canlı kalan (Long Lived), yanıt verme süresi (Response Time),
hashing (URL, Domain, Source IP, Destination IP, Custom ID)
değerlerini tartarak hangisinin servise ne derece elverişli
olduğunu göz önünde bulundurmak suretiyle paketleri yönlendirmede
takip edeceği politikayı belirler. Yük paylaştırıcı cihazlarda
başından sonuna dek sağlık kontrolü ve yük paylaşımı otomatize
edilmiş olup insan müdahalesine gerek kalmaksızın yürütüldüğü
için servis dışı kalan bir sunucu tekrar servise hazır hale
geldiğinde onu otomatik olarak devreye alır ve onun servis
ortalamalarında gerçekten hizmete hazır olduğuna emin olana
kadar ona daha az paket yönlendirerek ısınmasına yardımcı olur
(warming up procedure).
Yük paylaşımı genellikle aynı lokasyon ve ağ bölgesinde gerçekleştirilen
bir çözüm olmasına rağmen çok geniş ölçekli servis ve uygulamalarda
farklı coğrafi bölgelerde konuçlanmış sunucular arasında da
gerçekleştirilebilir. Örneğin Netscaler Application Switch
GSLB (Global Server Load Balancing) özelliği sayesinde istekler
en yakındaki bir başka coğrafi lokasyona transparan bir biçimde
yönlendirilerek servis ve uygulamanın devamlılığı ve performansı
daha geniş bir alanda sağlanmış olur.
Bugün özellikle kritik servis ve uygulamalarda meydana gelecek
kesintiler maddi olduğu kadar itibar kayıplarınada yol açtığından
yük paylaşımı bir ihtiyaçtan çok gereklilik halini almıştır
diyebiliriz. Sektörde sık karşılaştığımız bir yaklaşımı örnek
olarak sunmak yerinde olacaktır; finansal ve operasyonel nedenlerle
bir yük paylaşımı çözümünü erteleyerek sunucular üzerinde
oluşturulan RAID sistemlerin büyük bir ölçüde devamlılık için
yeterli bir önlem olduğu inancını benimsemek, bunun networksel
bir erişim devamlılığı, stabilite ve ya performans sürekliliği
anlamına geldiği değil sadece veri depolama ve kullanma sürekliliği
olduğunu görmezden gelmek demektir. Zaman zaman kritik noktalarda
hizmet veren sunucuların anakart, RAID controller, SCSI controller,
NIC (Network Interface Card), Güç Ünitesi hatta üzerinde çalışan
işletim sistemi gibi hayati parçalarından herhangi bir tanesinin
aniden arızalanması sanıldığı kadar küçük bir ihtimal değildir.
|