Clustering (Kümeleme)

Birbirinden bağımsız olan Disk, Sunucu ve İşletme Alanlarının çeşitli amaçlar için, tek bir yapı gibi kullanılabilmesine yarayan yöntemler bütünüdür. Kümeleme işlemi veri kaybını, ağ bağlantısı kesintileri veya işlemlerden meydana gelen hataların önüne geçmek için tercih edilebilir. Kümeleme yapılan sistemlerden herhangi biri bozulduğu zaman, kümeleme yapısı o anda yükü diğer çalışan sistemlerin üzerine atar ve sistem kesintisiz çalışmasına devam eder. Eğer kümeleme asimetrik kümeleme olarak düzenlenmiş ise, yedekte tutulan sistem çalışıyor iken görev yapmaz ve hazırda bekler, sadece sistem çöktüğü zaman devreye girer. Asıl sistem taleplere tek başına cevap verdiği için de performans ve verimlilik üst düzeyde olur. Kümeleme yapılan diğer sistemler ana sistem kadar güçlü bir yapıya sahip olması da gerekmediği için maliyet olarak düşüktür. Simetrik kümeleme yapısında ise tüm sistemler yapı içinde çalışır ve yapıları eşit olması gereklidir bu maliyeti arttırır. Gelen talepleri ve işlemleri yaparken, veri okurken/yazarken süre biraz daha uzar. Cluster, basit anlamda benzer bir amaç için belirli bir konfigürasyon yapılarak aynı görevi birlikte ya da yedekli çalışmasını sağlayan servistir. Kümeleme (Cluster) farklı amaçlarla oluşturulabilir fakat son kullanıcı tarafından her zaman tek bir bilgisayar gibi gözükecektir. Bir cluster oluşturmak için en azından iki adet sunucuya ihtiyaç vardır ve bir cluster içindeki her bir sunucu “node” olarak adlandırılır. İhtiyaç olan hizmete göre çeşitli sayıda node’lar bir araya gelerek clusterları oluşturmaktadır. Bir cluster oluşturmak için gerekli sebepler daha fazla performans ihtiyacı, yüksek erişilebilirlik (high availability) ya da her ikisi birlikte olabilir.

Yüksek Erişilebilirlik (High-Availability) Clusterları

Bu tip cluster yapısında öncelik erişilebilirliği arttırmadır. Bunu tek bir sunucunun görevini herhangi bir donanım ya da yazılım problemi oluştuğunda diğer bir sunucunun otomatik olarak devralması olarak özetleyebiliriz. Böylece özellikle kritik önem içeren hizmetler (Veri tabanı ya da web servisleri) kesintisiz ya da minimum kesinti süresiyle hizmet vermeye devam edecektir. Cluster içindeki arızalı sunucuya müdahale edilip tekrar cluster ortamına dahil edilebilmesi sırasında hizmet kesintisiz olarak devam edecektir. Bu özelliği “failover” olarak adlandırıyoruz. Yine görüyoruz ki cluster ortamında ne kadar çok node olur ise verilen hizmette ya da serviste kesinti olabilme ihtimalinin de o denli düşeceğidir. Bu cluster yapısında en yaygın olan konfigürasyon iki node ile oluşturulan cluster’dır. Aktif-pasif şekilde çalışır. Bu demektir ki bir sunucu sürekli hizmet sağlarken diğeri pasif bir biçimde birinci sunucuda oluşabilecek olası bir soruna karşı arka planda beklemektedir. Bir sunucunun sürekli bir şekilde pasif halde beklemesi pahalı bir çözüm gibi görülebilir fakat olası bir hizmet kaybında ne kadar sürede sunucu tekrar devreye alınabilir ve bu süre kaybı ilgili kuruluşta yaratacağı maddi ve müşteri gözünde itibar kayıpları ne olacaktır, bunların değerlendirmesi dikkatli bir biçimde yapılmalıdır.

Yük Dağıtımlı Clusterlar (Load-Balancing Clusters)

Bu tarz clusterlar da ise yine birden fazla sunucu belirli bir servis ya da hizmeti, oluşan işlem yükünü ortak bir biçimde paylaşarak kullanırlar. Burada aynı hizmeti veren birden fazla sunucu Network Load Balancing ile sanal bir ip adresi oluşturarak ortak bir havuzda toplanır ve bu ortak ip adresine gelen tüm istekleri NLB tarafından havuzdaki sunuculara yönlendirilir. Sıradaki isteğin havuzda bulunan hangi sunucuya ileteceğine NLB karar verir. Sunucumuz şu anda tüm isteklere karşılık verebilecek kadar güçlüde olsa sonuçta bir tek fiziksel bileşeni temsil ettiğinden oluşabilecek herhangi bir problemde hem hizmet dağılımı hem de failover yapabilmeniz hizmet kalitenizi büyük oranda arttıracaktır. Burada yine sunuculardan birinin devre dışı kalmasını, son kullanıcılarınız fark etmeyecektir.