Cluster mimarisi ya da cluster yapılar en yalın tanımıyla; belirli konfigürasyonlar ile yapılandırılarak aynı amaç için birlikte ya da yedekli çalışan sunucu kümeleridir.
Cluster yapıdaki her bir kümeyi oluşturmak için birlikte çalışan ve “node” olarak adlandırılan iki veya daha fazla sunucuya ihtiyaç duyulmaktadır.
Bu çalışma prensibiyle birlikte cluster yapıdaki bir küme, tek bir sunucu kullanılarak elde edilene göre daha fazla kullanılabilirlik (availability), güvenilirlik (reliability) ve ölçeklenebilirlik (scalability) sağlamaktadır.
Son kullanıcılar açısından bakıldığında ise kullanıcıların, çalışan sistemin cluster yapıda olup olmadığını anlamaları (aldıkları kaliteli servis dışında) çoğu zaman mümkün değildir.
Uygun planlama ile cluster mimarisinin uygulanabileceği servisler neredeyse sınırsız gibidir. Ancak pratikte en çok kullanılan bazı servisleri şu şekilde sıralayabiliriz;
Cluster yapılar, çalışma sistemleri açısından ise “aktif/aktif” ve “aktif/pasif” olarak sınıflandırılabilir. Cluster yapılar içerisinde çalışan aktif sunucular gelen istekleri karşılama görevi gören sunuculardır. Pasif sunucular ise aktif sunucularda meydana gelebilecek donanımsal veya yazılımsal sorunlarda aktif sunucuların yerini almak üzere bekleyen sunuculardır.
Bu sistematikte baktığımızda aktif/aktif cluster mimariler, load balance (yük dengeleme) odaklı çalışırken, aktif/pasif mimariler oluşabilecek hatalarda yedekli yapı sağlama odaklı çalışırlar.
Bu aşamada, aktif/pasif yapılar özelinde, otomatik geçiş planlanan olasılıklarda pasife geçen sistem bir kere kullanıldığında dahi artık “eski“ olmuş aktif sisteme geri dönmesi bir insan kontrolüne bırakıldığında conflict işlemleri engelleyecektir.
Donanımsal veya yazılımsal hatalar hızla algılanır ve sorunun olduğu node’un işlemleri başka bir node tarafından gerçekleştirilir. Bu özelliğiyle de cluster yapılar, özellikle kritik öneme sahip süreç ve uygulamalarda HA (high availability) konusunda oldukça önemlidir.
Cluster yapılarda bir node’un işlemleri başka bir node’a kolaylıkla taşınabildiğinden planlı bakım çalışmalarında istemcilerin kaynaklara ve hizmetlere erişimlerinde yaşanabilecek kesintiler azalacaktır.
Uygulamalar birden çok sunucuya dağıtıldığından yanıt sürelerinde iyileşmeler gözlenebilir.
Cluster üzerinde çalışan tüm node’lar ve kaynaklar, tek bir sunucuda barındırılıyormuş gibi yönetilebilir.
Cluster yapılar en genel çerçevede high availability ve load balancing clusterlar olarak 2 ana başlığa ayrılabilir.
High availability (HA) clusterlar, isimlerinden de anlaşılacağı üzere erişilebilirliği artırarak yüksek erişim sağlamak üzerine kurgulanmıştır. Bu sistemde single point of failure yani tek noktadan doğacak hataları yönetebilmek ve kritik öneme sahip servislerin minimum kesinti ile çalışması öncelikli amaçtır.
HA clusterlarda yapı içerisinde çalışan bir server yazılımsal ya da donanımsal herhangi bir hata ile karşılaştığında diğer sunuculardan biri görevi devralır ve arızaya müdahale edilirken servis kesintisiz olarak çalışmaya devam edebilir. Bu çalışma prensibine “failover” adı da verilmektedir.
Clusterın 2 sunucu (node) ile oluşturulduğu düşünüldüğünde bu sunuculardan bir tanesi aktif, bir tanesi ise pasif konumda çalışmaktadır. Bu noktada node sayısının artırılması kesinti ihtimalini düşüreceğinden servis sürekliliğini artıracaktır. Ancak fazla sayıda sunucunun pasif konumda yapılandırılması da maliyet açısından dezavantajlar yaratacaktır.
Bu açıdan bakıldığında HA clusterlar yapılandırılırken iyi bir planlama ile sistemin hayata geçirilmesi önemli noktalardan birisidir.
Load balancing (LB) clusterlarda öncelikli amaç ağır yük altında çalışan servislerin yüklerinin birden fazla sunucu arasında dengelenmesi ve bu sayede performans artışı sağlanmasıdır.
LB clusterlarda servis üzerine gelen istekler yapı içerisinde bulunan sunuculardan, hız, performans, iş yükü, arıza durumu gibi etkenlere bağlı olarak işlem için en uygun olanına yönlendirilir ve darboğazların oluşması engellenerek servisin çalışması sağlanır.
Doğru bir şekilde yapılandırılmış LB clusterlar, anlık olarak yüksek oranda trafik alan, e-ticaret siteleri gibi web siteleri için önemli bir mimari olarak karşımıza çıkmaktadır.
HA ve LB cluster mimariler haricinde uygulanacak projenin ihtiyaçları dahilinde bu iki yapının bir arada kullanıldığı mimariler ya da daha özel planlamalar yapabilmek mümkündür.