Kas 01

Bir önceki makalemizde Windows Server 2003 üzerinde NLB kurulumu ve konfigürasyonunu anlatmıştım. Bu makalede ise windows server 2008 üzerinde nlb kurulum ve konfigürasyonundan bahsedeceğim. Ama öncelikle microsoft cluster terminolojisinden biraz bahsetmek istiyorum.

Cluster

Network üzerinde tek bir sistem olarak görünen bir grup server.

Node (Cluster üyesi)

Cluster üyesi olan bağımsız bir server.

Failover

Cluster grubunda aktif nodan diğer bir noda geçiş işlemi.

Resource (kaynak)

Cluster tarafından tanımlanan ve izlenen en küçük birim. Örneğin fiziksel disk, IP adresi, network adı, dosya paylaşımı, print spool, jenerik servisi ve uygulama. Kaynaklar grup haline getirilir ve Kaynak Grubu (Resource Group) olarak adlandırılır. Cluster her kaynağın durumunu takip eder ve failover gerekip gerekmediğini bilir.

Cluster resource (Cluster kaynağı)

Cluster uygulaması tarafından yönetilen network uygulaması ya da servisi. Örneğin IP adres, diskler ve dosya paylaşımları.

Cluster resource group (Cluster kaynak grubu)

Cluster kaynakları cluster içinde “cluster resource group” olarak adlandırılan bir mantıksal bir küme olarak yer alır. Ayrıca “cluster group” olarak da adlandırılır. Cluster grupları cluster içindeki failover birimleridir. Bir cluster kaynağı fail olduğunda (çöktüğünde) diğer cluster nodu devreye girer (failover).

Cluster virtual server

Bir network adı ve IP adresi olan bir cluster kaynak grubudur. Virtual server kaynaklarına domain name system (DNS), NetBIOS ad çözümleme ya da doğrudan IP adresiyle erişilir.

Cluster heartbeat

Cluster heartbeat; cluster nodları arasında, nodun durumunu belirlemek için yapılan iletişimdir.

Quorum Resource (Quorum Kaynağı)

Cluster log verilerini ve uygulama verilerini saklar ve cluster’lar arasında durum bilgisinin taşınmasını sağlar. Cluster servisi tarafından hangi nodun çalıştığını ya da çalışması gerektiğini belirlemek için kullanılır. Quorum kaynağını türü ve cluster türü cluster kurulumu sırasında belirlenir ve daha sonra değiştirilmez.

Cluster quorum disk

Cluster quorum disk cluster konfigürasyon verisini saklar. Cluster servisi quorum disk ya da diskleri kullanarak cluster konfigürasyon verisine sürekli olarak erişim sağlar. Quorum, hangi server nodunun cluster içinde aktif olduğunu da içerir.

Bir cluster node quorum’e erişemezse, Cluster Service o nodu fail eder. Tipik cluster tasarımında quorum kaynağı paylaşılan bir disk üzerinde (storage device) yer alır.

Lokal quorum kaynağı

Quorum kaynağı gibi, lokal quorum cluster configuration verisini saklar. Ancak standart quorum genellikle bir shared disk üzerinde saklanırken, lokal quorum nod üzerinde saklanır.

Generic cluster kaynağı

Generic cluster kaynağı cluster-unaware uygulamalar (cluster üzerine otomatik olarak kurulamayan) için yaratılır. Bu kaynak sayesinde nodun çökmesi (fail) durumu cluster’a bildirilir. Generic cluster kaynağı generic uygulama, generic script ve generic servis kaynaklarını içerir.

Cluster-aware application (Cluster-uyumlu uygulamalar)

Cluster tarasımına göre kurulabilen ve çöktüğün cluster tarafından başlatılabilen ya da diğer noda aktarılabilen uygulamalar. Örneğin Exchange Server.

Cluster-unaware application (Cluster-uyumsuz ugulamalar)

Cluster üzerinde çalışan, ancak çökmesi durumunda cluster tarafında otomatik olarak algılanıp diğer noda geçilemeyen uygulamalar.

Virtual Server

Cluster kaynak grubu için client tarafından kullanılan network kaynakları. Network adı ve IP adresi . Microsoft Cluster Server virtual server ya da bir IIS tarafından sağlanan servisler.

Convergence

NLB cluster durumunun belirlenmesi ve yükün dağıtılması sürecidir

İşin terminolojik kısmından bahsettikten sonra Windows Server 2008 üzerinde NLB yapılandırmasına başlayalım.

table

Örneğimizde kullanacağım her iki serverda da bir tane network adaptörü bulunmaktadır. (İki network kartına sahip server’lar üzerinde de nlb yapılandırmasını gerçekleştirebilirsiniz. Bunun için yapmamız gerekenleri makalenin ilerleyen adımlarında anlatacağım.)

Node1 üzerinde NLB Konfigürasyonu

Windows Server 2008 Server Manager konsolu üzerinde Features kısmından Add Fetaures butonuna tıklıyoruz.

1

Select Features ekranında"Network Load Balancing" seçeneğini işaretleyip next ile devam ediyoruz.

2

Install butonuna basarak Network Load Balancing kurulumunu gerçekleştiriyoruz.

3

Network Load Balancing özelliğini servermanagercmd.exe komut satırı uygulamasını kullanarak kurmak isteyenler ise ; servermanagercmd -install nlb komutunu kullanabilirler.

Buraya kadar yaptıklarımızın aynısını node2 üzerinde de gerçekleştiriyoruz.

Node1 için NLB Yapılandırması

Network Load Balancing Manager konsolunu başlatmak için Start=>All Programs=>Administrative Tools=>Network Load Balancing Manager yolunu izleyebilir ya da nlbmgr komutunu kullanabiliriz.

4

Network Load Balancing Manager konsolunda Cluster menüsünün altında yer alan New seçeneğini tıklıyoruz.

5

Cluster yapılandırmamıza ilk nodu eklemek için Host kısmına node1′in ip adresini yazdıktan sonra connect butonuna tıklıyoruz.

6

Priority değerini 1 olarak giriyoruz. (Priority her bir node için unique olmalıdır)

Birden fazla network adaptör’ümüz varsa "Dedicated ip address" kısmında doğru adaptörü seçtiğimizi kontrol ediyoruz.

Initial host state kısmıda ise başlangıç durumunu started olarak seçiyoruz ve next ile devam ediyoruz.

7

Add butonuna tıklayıp cluster ip adresini ve subnet mask bilgilerini giriyoruz.

8

9

Cluster için ip adres seçimini yapıyoruz ve "Full Internet Name" kısmında cluster’a erişim kullanacağımız bir isim tanımlıyoruz.

10

"Cluster operation mode" kısmında Unicast seçeneğini işaretliyoruz. Buradaki seçenekleri detaylı olarak anlatmayacağım çünkü windows server 2003 nlb kurulumu ve konfigürasyonu makalesinde bu seçeneklere detaylı olarak değinmiştim.

Port Rules tabında ise şu anda gerçekleştirdiğimiz işlem sadece örnek bir yapılandırma olduğu için herhangi bir işlem yapmadan ok diyerek devam ediyorum.

11

NLB Manager konsolunda yapılandırdığımız nodun durumunu Converged olarak görüyorsak yapılandırmamız başarılı olmuş demektir ve node2′yi yapılandırmaya geçebiliriz.

12

NODE 2 için NLB Yapılandırması

NLB Manager konsolunda cluster adının üzerinde sağ tıklayıp Add host to cluster’ı seçiyoruz.

13

Cluster’a eklemek istediğimiz nodun adını ya da ip adresini Host kısmına yazdıktan sonra Connect butonuna tıklıyoruz.

14

Node1 için priority değerini 1 olarak belirlediğimizden Priority değerini 2 olarak giriyoruz

15

Birden fazla network adaptör’ümüz varsa "Dedicated ip address" kısmında doğru adaptörü seçtiğimizi kontrol ediyoruz.

Initial host state kısmıda ise başlangıç durumunu started olarak seçiyoruz ve next ile devam ediyoruz

16

Port Rules tabında ise şu anda gerçekleştirdiğimiz işlem sadece örnek bir yapılandırma olduğu için herhangi bir işlem yapmadan Finish butonunu tıklayarak işlemi tamamlıyoruz.

17

NLB Manager konsolunda her iki nod için Converged durumunu görüyorsak yapılandırmamız başarıyla gerçekleşmiş demektir.

18

Ayrıca yapılandırmamızı komut satırından test etmek için wlbs query komutunu kullanabiliriz.

19

Böylece Windows Server 2008 NLB kurulum ve konfigürasyonu makalesinin sonuna geldik. Umarım yararlı olmuştur.

Yazar ceyhun çamlı \\ tags: , ,

Eyl 24

Cluster konulu makale serisinin son adımında Network Load Balancing’ten bahsedeceğim.

NLB bir quorum kullanmadığı için node’larda depolama ve ağ gereksinimlerine ihtiyaç duymaz. Cluster içindeki bir node çöktüğünde NLB otomatik olarak yeni gelen istekleri diğer node’lara yönlendirir. Eğer bakım için bir node’u devre dışı bırakırsanız NLB, node devre dışı olmadan önce var olan oturumların tamamlanmasına izin verir. Bu da son kullanıcıların bu durumdan zarar görmesini engeller. NLB aynı zamanda gelen istekleri uygun gördüğü tarafa yönlendirerek güçlü donanıma sahip sunucular ile yetersiz haldeki sunucuların bir arada kullanılabilmesini sağlar, eldeki tüm donanımların etkin kullanımına yardımcı olur.
 

NLB genellikle firewall’lar, proxy, FTP veya web sunucuları için sağlamlık ve ölçeklenebilirlik sağlamada kullanılır. NBL’yle cluster yapılan diğer uygulamalar sanal VPN noktaları, streaming media sunucuları ve terminal servisleridir. Her Windows 2003 sürümünde bulunur ve 32’ye kadar node’tan oluşan clusterlarda uygulanabilir.
 

NLB yapılandırması Network Load Balancing Manager snap-in’i veya wlbs.exe ya da nlb.exe adlı konsol araçlarıyla gerçekleştirilir.
 

Temel olarak, NLB açıldığında, NLB sürücüsü NIC sürücüsü ile IP protokolü arasına yerleşir ve tüm cluster node’larına gelen her paketi alıp inceler. Paket kablodan kümeye geldiğinde her node paketi alır, inceler ve cluster çapında belirtilmiş kurallara göre paketi üst katmanda bulunan IP protokolüne iletir veya paket daha NLB sürücüsündeyken dışarı atılır. Böylece trafik nodlar arasında paylaştırılır. Kısaca tüm node’lar clustera  gelen trafiği alır; ama bazıları cevap verir.
NLB clusterları iki farklı modda çalışabilir. Birincisi, aynı zamanda varsayılan mod olan Unicast Mode’dur. Unicast mode’da clusterı oluşturan node’larca kullanılan bir tek sanal MAC adresi vardır. Bu adres daima 02-BF ile başlar. Tüm cluster üyelerinin bu tek adresi NLB sürücüsü sayesinde kullanması ağ kartı üzerinden görüşebilmelerini engeller. Örneğin; node a node b’ye bir paket gönderirken hedef ve kaynak MAC adreslerini aynı yazar. Bu paketi alan nod b kaynak MAC adresi ile paketin hedefi olan kendi MAC adresini karşılaştırınca bunların aynı olduğunu görüp bir hata oluştuğunu düşünerek paketi atar. Sonuç olarak unicast mode’ta çalışan NLB kümesi üyeleri NLB çalıştıran ağ kartı üzerinden birbirleriyle görüşemezler. Bu sorunu ortadan kaldırmak için iki yöntem vardır. Birincisi node’lara ikinci bir ağ kartı takmaktır. İkinci ağ kartı NLB clusterıyla aynı ağa veya farklı ağa bağlı olabilir. Node’lar arasında ek bir bağlantı yapılması yeterlidir. İkinci çözüm ise Multicast mode’u kullanmaktır.

Multicast mode’dayken node’lar hem sanal MAC adresini hem de kendi MAC adreslerini kullandığından node üzerinde bir tek ağ kartının bulunmasına rağmen birbirlerine gönderdikleri paketleri işleyebilirler. Multicast mode’da paylaşılan ortak ve sanal MAC adresi daima 03-BF ile başlar.

Sistemdeki sürekliliğin sağlanması için cluster node’larının birbirleriyle sürekli haberleşmesini sağlamak gerekir. NLB algoritması clusterdaki node sayısı, varsa belirlenen port kuralları ve cluster IP’lerini göz önüne alarak hesaplamaları yapar ve gelen trafiğin node’lar tarafından kabul veya red edilmesini sağlar. Bu hesaplama sürecine Yakınsama (Convergence) adı verilir. Yakınsamada Heartbeat (nabız) denilen paketler kullanılır. Bu paketler her node’ta yalnızca NLB çalıştıran ağ kartı tarafından saniyede bir kez atılan 1,5 kb’lık broadcast paketleridir. Bu süre registry’den değiştirilebilir ancak tüm node’larda aynı olmalıdır. Varsayılan ayarlara göre eğer node arka arkaya 5 heartbeat kaçırırsa clusterdaki diğer üyeler o node’un devre dışı olduğuna, kümeden düştüğüne karar verirler. Ardından yeni üye sayısına göre NLB algoritması yeniden hesaplanır, yakınsama başlar ve 3 saniye sürer. Bu değer de registry’den değiştirilebilir ancak her node’ta aynı olmalıdır.

Özet olarak, clustera yeni bir node eklendiğinde bunun tespit edilip gelen yükün clustera tekrar paylaştırılması 3 saniye sürer. Bir node devre dışı kaldığında ise bunun diğer node’larca fark edilmesi ve yakınsamaya başlanması için 5 heartbeat yani 5 sn. daha geçer. Toplamda 8 sn. sonunda yakınsama tamamlanacak ve sistem yeni yapısına göre hareket etmeye başlayacaktır.

NLB’nin yakınsama hesaplamasında bir diğer önemli etken ise affinity yani eğilim ayarıdır. None, Single ve Class C olmak üzere 3 seçeneği olan affinity değerine bakarak NBL; node’lara gelen IP paketlerinin kabul edilip edilmeyeceğine karar verir. Affinity ‘None’ olarak ayarlandığında gelen paketler kaynak port ve kaynak IP’lerine bakılarak işlenir. Web sunucusu çalıştıran clusterlarda  bu ayar kullanılır. Single affinity ise gelen trafiği sadece kaynak IP adresine göre dağıtır ki bu tür terminal sunucular için en uygunudur. Son seçenek olan Class C ayarında ise aynı C sınıfı alt ağındaki IP adresine sahip kaynaklardan gelen tüm paketler aynı node’a yönlendirilir. Bu da genellikle proxy sunucuların yük dengelemesinde yarar sağlamaktadır.

Cluster makalelerinin sonuna geldik. Bu seride uygulama yapmak yerine daha çok teorik adımlardan bahsettim. Sizden gelen istekler doğrultusunda Server Cluster ya da Network Load Balancing konularında uygulamalarda gerçekleştirebilirim. Umarım yararlı bir seri olmuştur. herkese iyi çalışmalar.

Yazar ceyhun çamlı \\ tags: , , , , ,

Eyl 23

Bir önceki makalemde cluster nedir ve cluster türleri nelerdir bunlara değinmiştim. Bu makalemde ise cluster türlerinden Server Cluster’ı anlatacağım. Server Cluster’da önce cluster içinde node yani birim olarak rol oynayacak olan 2 ila 8 arasında sunucu yapılandırılır. Ardından cluster yapılacak uygulamanın ihtiyaç duyduğu kaynaklar yapılandırılır. Bu kaynaklar ağ isimleri, IP adresleri, uygulamalar, servisler veya disk sürücüleri olabilir. Sonuç olarak cluster çalışmaya başlar ve gelecek istekleri işlemeye başlar.

Çoğu cluster yapılmış uygulama ve onlara bağlı kaynaklar tek bir zamanda sadece bir cluster node’una işlenmek üzere atanır. Eğer Server Cluster ilk node’un bakım, çökme gibi herhangi bir nedenden ötürü devre dışı olduğunu belirlerse yedekteki diğer node’ta uygulama çalıştırılır ve istek hemen bu yedekteki node’a aktarılarak hatanın önüne geçilir.

Cluster yapılan servislerin çoğu genellikle tek bir zamanda sadece bir node’ta çalıştırılmasına rağmen aslında bir cluster aynı anda birçok servisi donanımdan daha çok yararlanmak için çalıştırabilir. Microsoft SQL Server gibi bazı uygulamalar birçok cluster node’unda eş zamanlı olarak çalışabilmektedir.

Cluster’daki node’lar cluster yapılmış uygulamanın kime ait olduğunu izlemek için bir quorum kullanır. Quorum cluster işlemine tabi tutulmuş bir uygulama için birincil node tarafından yönetilmesi zorunlu olan bir depolama aygıtıdır ve tek bir zamanda sadece bir node onu yönetebilir. Fail-over durumunda ise yedekteki node quorum’un yönetimini devralır. Tüm cluster node’ları tek bir depolama aygıtına bağlandığında quorum bu aygıt üzerinde yaratılır. Bu tür clusterlara Windows 2003’te single quorum device server cluster yani tek quorum’lu server cluster denmektedir.

Node’ların tek bir depolama aygıtına bağlanması verinin yönetiminin yedek node’a aktarılmasındaki zorluğun ortadan kalkmasını sağlar ancak bu yöntemin de zayıflıkları vardır. Eğer depolama aygıtı bozulur veya çökerse tüm cluster çöker. Aynı şekilde storage area network (SAN) yani depolama alanı ağı çökerse tüm cluster çöker. Depolama aygıtı veya SAN; her ikisinin de asla çökmeyeceğini garanti etmeye kalksak dahi çökecek bir şey daha vardır o da sistemin bulunduğu ortamda meydana gelebilecek sel, yangın, deprem, elektrik kesintisi gibi felaketlerdir.

İşte bunun da önüne geçmek için Majority Node Set (MNS) server cluster adlı yapıya başvurulur.Quorum bu defa her bir node’da doğrudan yerel olarak bağlanır ve her bir node’taki quorum’da ağdaki replikasyon sayesinde aynı veriler depolanır. Şekilden de anlaşılabileceği üzere node’lar sadece tek bir ağa ihtiyaç duyduğu için ağ LAN, WAN veya uzak şehirlerdeki cluster node’larını cluster’a bağlayan VPN yapısına sahip olabilir, bu da clusterın coğrafik engelleri aşmasını sağlar. Bununla birlikte etkin bir fail-over başarımı için MNS yapısında clusterdaki node’ların en az yarısından çoğunun sürekli çalışır halde olma zorunluluğu vardır. Oysa single quorum device server cluster’da bir tane node’un çalışır olması yetmektedir.

Server Cluster makalesinin de sonuna geldik. Cluster türlerinden Network Load Balancing ile cluster makale serimi tamamlayacağım. İyi çalışmalar.

Yazar ceyhun çamlı \\ tags: , , , ,

Eyl 17

Clustering yani kümeleme Türkçe çevirisinden de rahatça anlaşılacağı üzere bir araya getirilmiş, kümelenmiş belli sayıdaki bilgisayarın ortak uygulamaları birlikte çalıştırması, uygulamaya ya da istemciye kendilerini tek bir bilgisayarmış gibi göstermesidir. Ben cluster konusunu üç adımda anlatmayı planlıyorum ve ilk makalemde cluster’ın ne olduğunu anlatacağım.

Cluster işleminin üç temel amacı vardır.
 
Bunların başında süreklilik (continuity) gelir. Süreklilikten kast edilen hata toleransını (fault tolerance) bir başka deyişle sistemin her daim ayakta ve çalışır durumda kalmasını sağlamaktır. Dünya üzerindeki büyük internet sitelerini bir düşünün. Amazon, ebay, Google, Paypal gibi sitelerin down olması yani erişilemez hale gelmesi, çökmesi bu şirketlerin prestij kaybına uğramasının yanı sıra, çok büyük müşteri ve hesap sorunları ortaya çıkmasına sebep olacaktır.
 
Bir diğer amaç ise yük dengeleme yani load balancing’tir. Buradaki amaç eldeki bilgisayarlardan olabildiğince yararlanabilmek, işlerini daha hızlı görüp yanıtı daha hızlı gönderebilmelerini sağlamak için işin paylaşılması, gelen yüklerin cluster içindeki bilgisayarlara eşit oranda dağıtılmasıdır. Cluster içindeki 3 bilgisayardan 2’si başka işlerle meşgul olduğunda sistem yeni gelen yükü boşta olan bilgisayara yönlendirir.
Yüksek performansı amaçlayan cluster’lar ise adı üstünde çok yüksek hesaplama gücü gerektiren programlar, uygulamalar için hazırlanırlar.Örneğin; IBM’in Kasparov’a karşı hazırladığı Big Blue adlı süperbilgisayarı veya sağlık alanındaki genetik araştırmalarda milyarlarca olasılığı hesaplayan bilgisayar clusterları.
 
Birçok proje kendi misyonuna göre bu amaçların belli bir kısmından faydalanır. Bazı clusterlar önceliklerinde sürekliliği en başa alırken bazıları yüksek performansı gözetmek durumundadır. Bu yüzden aşağıdaki cluster  türleri oluşmuştur:
 

  • High-availability clusters (yüksek-süreklilikli kümeler)
  • Load-balancing clusters (yük dengeleyici kümeler)
  • High-performance computing clusters (yüksek performanslı kümeler)
  • Grid clusters (şebekeli kümeler)

Yukarıda anlatılanlara ek olarak bir de şebekeli clusterlar vardır. Şebekeli clusterlar geleneksel clusterlarla aynı mantıkta çalışır ancak bariz farklılıkları vardır. Geleneksel clusterlar aynı ortamda bulundurulan bilgisayarları kullanırken şebekeli clusterlar coğrafik olarak birbirinden uzak ve birbirlerine tam olarak güvenmeyen, trust etmeyen bilgisayar gruplarından oluşturulurlar. Bu konudaki en büyük örnek SETI projesidir. Yeryüzünün her yanına dağılmış 3 milyon civarında ev bilgisayarı Arecibo gözlemevindeki radyoteleskoptan gelen verileri analiz ederek dünya dışı canlılara ilişkin kanıtların bulunması araştırmasına yardımcı olmaktadır.
 
İşletim sistemleri dünyası şu an hepimizin bildiği üzere Microsoft ile UNIX türevlerinin rekabetine sahne olmaya devam ediyor. Unix türevlerinden Linux’ın sunucu sistemlerinde Microsoft’a kafa tuttuğunu hatta önde olduğunu bile söyleyebiliriz. Birkaç yabancı devletin dahi maliyetinin ucuzluğundan ötürü geçtiğimiz yıllarda bilgisayar sistemlerini Linux’a geçirdiğine dair haberler vardır. Sonuçta biz olaylara Microsoft tarafından baktığımızdan Windows Server 2003’le birlikte gelen cluster sistemini inceleyeceğiz.  Araştırdığım kadarıyla dış şirketler tarafından Windows için geliştirilen 3. parti yazılımsal cluster çözümleri de bulunmaktadır.
 
MICROSOFT CLUSTER SERVER
 
İlk kez Windows NT’yle birlikte 1997’de duyurulan Microsoft’un kümeleme çözümü Microsoft Cluster Server “MSCS” bugün Windows Server 2003’te 1.2 versiyonuna ulaşmıştır.

 
Microsoft Cluster Servisi; Server Cluster ve Network Load Balancing (NLB) adı verilen iki teknolojiyi içerir.
Bu teknolojilerden Server Cluster çok kritik uygulamalar için hata durumlarında fail-over yaparak sistemin yüksek sürekliliğini sağlamayı öncelikli olarak hedefler. Fail-over durumunda çöken bilgisayardaki istemciye ait işlem cluster içinde sağlam durumdaki diğer bilgisayarlardan birine aktarılarak işlemin tamamlanması, gerekli yanıtın gönderilmesi sağlanır. Veritabanı, ERP/CRM, OLTP, dosya, yazıcı ve e-posta servisleri genellikle Server Cluster kullanılarak yapılandırılır.
 
NLB ise gelecek client/istemci isteklerini beklemekte olan web sunucusu, proxy sunucusu gibi servisler için cluster içindeki bilgisayarlara (node’lara) dağıtır.
Bu iki cluster işlemi farklı yöntemler kullandığından aynı sunucuda aynı anda kullanılamaz, birinin seçilmesi gerekir.
 
Özelliklerini bir tablo şeklinde özetleyelim:
 Genel olarak cluster yapısından bahsettiğim bu makalenin sonuna geldik. İkinci bölümde Server Cluster yapısını anlatacağım.

Yazar ceyhun çamlı \\ tags: , , ,