10 Temmuz 2008 Perşembe

WebFarm / Internet Information Server Clustering (Bölüm-2)

Network Load Balancing(NLB)
Network Load Balancing, adından da anlaşılacağı gibi ağ üzerinden akan veri yükünü dengelemek için kullanılan bir teknolojidir. Network Load Balancing donanımsal ya da yazılımsal olarak sağlanabilir.
Clustering konusuna tekrar değinirsek aktif ve pasif kavramlarından bahsetmemiz gerekir. Cluster yapıları Aktif/Aktif ya da Aktif/Pasif çalışabilir. Aktif durumdaki sunucu cluster yapısı içerisinde, cluster yapısına gelen isteklere doğrudan cevap veren sunucudur. Pasif olan sunucu ise cluster yapısı içerisinde Aktif durumdaki makinede donanımsal ya da yazılımsal bir sorun olması durumunda onun yerine geçebilecek şekilde hazırda bekleyen sunucudur. Buradan şu sonuca varabiliriz; Aktif/Aktif Cluster yapısı ağ(dolayısı ile sunucular) üzerinde yük dengeleme işlevini yerine getirir. Aktif/Pasif Cluster yapısı ise hata toleransını sağlamaya yöneliktir. Aktif/ Aktif Cluster yapısına Load-Balancing Cluster, Aktif/Pasif Cluster yapısına ise Fault-Toleranced Cluster denilebilir.
Bu açıklamalarla NLB’nin Aktif/Aktif Cluster yapısında olduğunu söyleyebiliriz. Ancak girişte de bahsettiğimiz gibi Network Load Balancing donanımsal ya da yazılımsal olarak sağlanabilir. Donanımsal Load Balancing cihazları NLB’yi Aktif/Aktif yaparlarken Microsoft Server 2003 işletim sistemi içerisinde NLB Manager ile Load Balance yapılandırılırken Aktif/Aktif ya da Aktif/Pasif Cluster yapılabilir.
İlk makalede de bahsedildiği gibi bir webfarm yapısı düşünüldüğünde Cluster Node’larından her biri değerinden bağımsız bir şekilde kendi sabit diskinde web sitesi için aynı verileri tutar. Böylece Node’lardaki veriler aynı olduğu için kullanıcı NLB Cluster yapısına istekte bulunduğunda NLB yapısı kullanıcıyı hangi sunucuya yönlendirirse yönlendirsin kullanıcı aynı siteyi görür. Bu olay kullanıcının bilgisi dahilinde olmadan arka planda NLB yapısı içerisinde gerçekleşir. Elbette ki NLB Cluster Node’ları içerisindeki veriler farklı olursa kullanıcının arka arkaya girişlerinde ya da farklı kullanıcıların girişlerinde farklı sitelerle karşılaşılacaktır. O zaman NLB yapısında belli bir replikasyon mimarisi olmalı ve NLB Cluster Node’ları olacak IIS web sunucular arka planda data’larını eşitlemelidir. Replikasyon mimarisi için RoboCopy gibi araçlar kullanılabilir ya da dinamik bir şekilde güncellenmeyen sitelere uygulanacaksa, webmaster’lar ya da sistem yöneticileri tarafından her seferinde el ile yapılabilir. Ancak bir replikasyon mimarisinden söz ederken için bu iki durumda verimli olmayacaktır. Windows işletim sisteminin File Replication Servisi bu durumda oldukça avantajlıdır. Distriubuted File System özelliği altından IIS’lerdeki web sitelerinin verilerini barındıran dosyalar replication partner olarak ayarlanınca DFS, FRS servisi üzerinden replikasyonu gerçekleştirecektir. FRS servisinin asıl amacı Domain ortamında Domain Controller’lar arasında SYSVOL paylaşımını replike etmektir. İkincil bir rol olarak DFS için replikasyon yapabilir. Ancak yine de FRS servisi video vb. büyük boyutlu verilerin replikasyonunda sorun çıkarabilmektedir. Bu yüzden Windows Server 2003 R2 ile beraber gelen DFS Management özelliği beraberinde kendi DFS Replication Servisini kullanmaktadır. Böylelikle FRS sadece SYSVOL replikasyonu yaparak yükü hafiflemekte ve DFS Replication Servisi ile Replikasyon Mimarisi de performans kazanmaktadır. Bu açıklamalardan sonra NLB yapısında sağlıklı replikasyon mimarisi için Windows Server 2003 R2, DFS Management ve DFS Replication servisi kullanılacaktır.
Aslında doğası gereği NLB stateless bir yapıdadır. Biraz daha açarsak kullanıcıların session(oturum) bilgileri NLB yapısında tutulmaz. Statefull bir yapı isteniyorsa, yani session bilgileri tutulmak isteniyorsa Microsoft Clustering Service (MSCS) tercih edilmelidir. Internet Information Service(IIS) ile Cluster yapılacaksa NLB, MS-SQL, MS-Exchange gibi session tutması zorunlu uygulamalarda ise MSCS kullanılmalıdır. MSCS tarafında Aktif/Aktif cluster Microsoft tarafından tavsiye edilen bir yapı değildir. MSCS ile Aktif/Akfit Cluster, Network ve Sunucular üzerinde aşırı fragmantasyon yaratacağından performans açısından verimli olmayacaktır. MSCS ile Cluster kelimeleri yan yana getirdiğimizde aklımıza gelen Fault-Toleranced Cluster olacaktır.



NLB ve Session
Buraya kadar her şey güzel, teorik olarak web sunucular üzerinde NLB yapılandırırsak, sunuculardan istekte bulunan 1000 adet kullanıcı varsa, 2 sunuculu bir yapıda 500 tanesi bir sunucuda, diğer 500 tanesi diğer sunucuda tutulacak. Böylelikle NLB Cluster yaparak sunucular üzerindeki yükü dengelemiş olacağız. Arka planda replikasyon mimarisinin de performanslı çalıştığını düşünürsek sitedeki değişiklikler sunuculardan birinde değişiklik yapıldığında otomatik olarak gerçekleşecek. Fakat sunucular için bu performanslı Load-Balancing yapısından vazgeçmek istemiyorsak ve sunuculardaki sitelerin kullanıcıların session bilgilerini tutmaları gerekiyorsa durum ne olacak?
NLB’nin stateless yapıda olup session bilgilerini tutamadığını daha önceden söylemiştik. Bu yüzden session bilgilerini IIS Sunucuları yapılandırarak tutmamız gerekir. Web Uygulamaları için session bilgileri IIS tarafından asp.net yardımı ile tutulabilir. Session verilerini tutmanın 3 türlü yöntemi vardır:
1- In Process Mode(inProc)
2- State Server Mode
3- Out of Process – SQL Server Mode(outProc)
inProc moda session bilgileri aspnet_wp.exe dosyasına bağlı olarak her sunucu içinde bireysel olarak tutulur. State Server Mode’da ise session bilgileri serileştirilerek sunucuların RAM’lerinde bir birinden bağımsız process’ler olarak tutulur. SQL Server Mode’da session bilgileri serileştirilmiş yani serializable bir şekilde SQL sunucuda tutulur.
Sunuculardaki birbirinden bağımsız verileri oluşturduğumuz replikasyon yapısı ile eşitleyebiliyoruz ancak session bilgilerini tutabiliyorsak bunları da eşitleyebilmemiz ya da sunucuların ortaklaşa kullanabilecekleri bir lokasyonda tutmamız gerekir. Çünkü kullanıcıların WebFarm yapısı üzerindeki sitelerde dolaşırken session’larını tutmamız gerekir. Session tutmadığımız durumda kullanıcının NLB yapısından kaynaklanan bir şekilde bir sunucuya ya da diğer sunucuya gönderilmesi sonucu session bilgileri kaybolacaktır. Örneğin kullanıcı, sunuculardan birinde, sayfalardan biri için şifre girdiğinde sayfa içerisindeki linklerden birine basarak başka bir sayfaya gitmek istediğinde, NLB yapısı bu istek sonucu kullanıcıyı başka bir sunucuya yönlendirirse web browser kullanıcıya tekrar şifre soracaktır. Yoğun bir sitede (ki WebFarm yapıldığına göre mutlaka yoğun bir sitedir.) kullanıcının sunucular arası arka planda gezmesiyle, kullanıcıya devamlı şifre sorulacak ya da kullanıcı tarafından girilen bilgiler, kullanıcıdan sunucu tarafından edinilen kaybolacaktır. Kısaca siteler içinde gezinmek hiç verimli olmayacaktır. Session tutmak bunu gerektiren siteler için çok önemlidir.
Session tutmak önemli olduğunu ve 3 türde tutulabildiğini söylemiştik. inProc mode cluster oramı için uygun değildir. State Server Mode’da ise session verilerini sunucunun RAM’inde tuttuğuna göre, sunucular arasında session verilerinin eşitliğini sağlayabilmemiz mümkün değildir ve bu durumda session’u tutamayız. Çünkü RAM replikasyonu diye bir durum söz konusu değildir. Session verilerini sunucuların ortak erişebileceği bir alanda outProc yöntem ile SQL sunucu üzerinde tutmamız gerekir. Böylelikle session verilerini sunucuların her ikisinin de erişebileceği ve kullanabileceği bir lokasyon tutmuş böylece session verileri için replikasyon yapmamış oluruz.
Bu durumda Windows Server 2003 R2 ve SQL Server 2005 uygulamaları WebFarm Cluster yapısını gerçekleştirebilmek için yeterli gözüküyor. Ancak sunucuların ve network yapısının performansının Cluster yapısının performansını doğrudan etkileyeceği gözden kaçırılmamalıdır.
Session verilerini SQL sunucu üzerinde tutabilmek için IIS sunucuların webconfig dosyasını düzenlememiz gerekir. Makalenin ilerleyen bölümlerinde bu uygulama anlatılacaktır.

Ahmet TOPRAKÇI
BilgeAdam IT Academy
System & Network Beşiktaş


14 Mart 2008 Cuma

nLite

nLite Windows kurulumlarını özelleştirmek için kullanılan bir programdır. Sahip olduğu arayüz ve adım adım ilerleyen yapısı kullanımını oldukça kolaylaştırmaktadır. Ayrıca istenilen amaca yönelik (Windows boyutunu küçültmek, güncelleme (update-hotfix) bütünleştirmek, katılımsız (unattended) kurulum hazırlamak, kurulum tamamlandığı zaman Windows’un hangi görünümde olacağını ve hangi servislerin ya da ayarların aktif olacağını belirlemek) Windows kurulumları hazırlanmasına yardımcı olur.nLite programını kurmak oldukça kolaydır. nLite ücretsiz bir yazılım olduğundan İnternet'ten kolayca indirilerek kullanılabilir. Programın kendi resmi internet sitesine burayı tıklayarak ulaşılabilir. Bu makalede programın "nLite v1.3.5" sürümü kullanılmıştır. nLite’ın kurulan sistemde çalışabilmesi için Microsoft .Net Framework 2.0 gereklidir. Boyutu 21Mb civarındadır. (Microsoft .Net Framework 2.0 ’ı indirmek için buraya tıklayınız.)nLite’ın desteklediği Windows kurulumları Windows 2000 Pro / Server / Advanced Server, Windows XP Pro / Home / MCE / N / x64 Pro, Windows Server 2003 Standart / Web / Enterprise / x64 / R2 'dir. Türkçe dahil birçok dil için desteği vardır. nLite ile yapılabilecekler genel olarak aşağıda sıralanmıştır. Bunlar haricindeki uygulamalar makalenin en sonunda yer almaktadır.
  • Servis paketi bütünleştirebilme: Microsoft'un Windows XP için çıkarmış olduğu toplu yamaların [SP1, SP2] Windows kurulumuna eklenmesini sağlar.
  • Güncelleme eklenebilmesi: Microsoft'un Windows XP için çıkarmış olduğu kritik güncelleme ve düzeltme paketleri (hotfix ve update knowledge base, .exe dosyaları) kuruluma ilave edilebilir.
  • Sürücü bütünleştirebilme: Sık kullanılan ve Windows XP ile beraber gelmeyen donanım sürücülerini kuruluma ekleyerek kurulumun yapıldığı sırada donanımların otomatik olarak çalışır hale gelmesi sağlanabilir.
  • Windows bileşenlerini kaldırabilme: Windows XP’nin standart kurulumuna dahil olan ancak kişisel kullanımda ihtiyaç duyulmayan ya da kullanıcılar tarafından kullanılmasına gerek olmayan bileşenleri kaldırarak kurulumun boyutunda önemli azalmalar sağlanabilir. Bu özellik kurulumun hızlı tamamlanmasının yanısıra farklı medyalara (256mb kapasiteli USB bellek) kayıt edilebilmesine olanak tanır.
  • Katılımsız (unattended) kurulum: nLite programının kullanılmasının en önemli avantajıdır. Windows’un kendi araçları ile de hazırlanabilen katılımsız Windows kurulumlarının, kurulum sırasında karşılaşılanan tüm soruları tek seferde kendi arayüzü üzerinden yanıtlanmasına olanak tanıyarak oldukça pratik bir şekilde yapılmasını sağlar.
    İnce ayar: Windows’un kullanım esnasındaki performansını artırmaya yönelik ayarlar oldukça detaylı bir şekilde ince ayarlar bölümünden yapılabilir. Ek olarak yama özelliği ile TCP/IP'nin maksimum eş zamanlı dosya indirme yaması, USB frekansı, UXTheme.dll yaması ve Windows Dosya Koruması (SFC) yaması eklenebilir.
  • Ek Seçenekler (Tweaks): Yönetici ve konuk hesabının adını değiştirme, eski BIOS bilgilerini silebilme, CD'den açılış mesajını silebilme, geçici klasörü, kullanıcı profillerinin tutulduğu yolu değiştirebilme gibi işlemler kurulum için özelleştirilebilir.
    Açılabilir ISO oluşturmak: nLite programının arayüzünden yapılan ayarlamalar ve özelleştirmeler program tarafından ISO dosyası haline getirilerek, açılabilir CD biçiminde yine programın kendi arayüzü üzerinden CD yazıcı ile yazdırılabilir.

nLite Kullanımı

nLite’ın karşılama ekranı yukarıda görüldüğü gibidir. Buradan kullanılmak istenen dil seçilerek kurulumun oluşturulmasına devam edilebilir. Makale boyunca kavramlarda karışıklığı önlemek için varsayılan İngilizce arayüz üzerinden anlatım yapılacaktır.

Hazırlanacak olan Windows kurulumunun dosyalarının yer alacağı daha önceden oluşturulan klasör Gözat (Browse) seçeneği yardımı ile seçilir ya da daha önceden hazırlanmış bir Windows kurulumu varsa ve üzerinde çeşitli değişiklikler yapılmak isteniyorsa bu klasör yine Gözat ile bulunarak seçilir ve devam edilir.


Bu aşamada Windows’un kurulum dosyaları, Windows’un kurulum CD’sinden ya da Windows kurulumuna ait ISO dosyasından bilgisayarda oluşturulan ya da seçilen yeni klasörün içine kopyalanır.

Klasöre kopyalanan Windows kurulumu ile ilgili genel bilgiler aşağıdaki ekranda görülmektedir.


Daha önceden hazırlanmış olan bir kurulum varsa; bu ekranda belirlenilen bir ad olduğu durumda bu adla, olmadığı durumda “son oturum” adıyla görülecektir. Hazırlanan bir kurulum yoksa ekran yukarıda olduğu gibi boş görülecektir.

Aşağıdaki pencere görev seçimi yapmayı sağlamaktadır. Kurulum hazırlanırken yapılmak istenilen görevler bu ekrandan seçilerek kurulum özelleştirilebilir. Burada dikkat edilmesi gereken nokta Katılımsız Kurulum (Unattended) seçeneğidir. Daha önceden hazırlanmış olan bir kurulum varsa bu seçenek aktif duruma getirildiğinde hazırlanan katılımsız kurulum dosyalarının üzerine yeni katılımsız kurulum dosyaları yazılır. Önceki kuruluma ait katılımsız kurulum ayarları korunmak istenirse bu seçenek işaretlenmemelidir.

Kuruluma Service Pack eklenmesi bu pencerede sağlanmaktadır. Bu pencereden yapılan Service Pack ekleme işleminde kullanılacak dosyalar Service Pack adı altında Microsoft tarafından yayınlanan toplu güncelleme paketleri olmalıdır. (Örneğin: Windows XP için SP1 ve SP2) Bu güncelleme paketleri Microsoft’un resmi Web sitelerinden edinilebilir.


Service Pack ekleme penceresinden sonra karşılaşılan bu ekranda, yayınlanmış güncelleme paketlerinden sonra çıkan yeni güncellemelerin eklenmesi amaçlanmıştır. Bu aşamada sadece (KB******.exe) ve (.cab) biçimindeki dosyalar desteklenmektedir.


Varsayılan Windows kurulumlarına dahil olmayan sürücülerin kuruluma eklenmesi işlemi bu pencere üzerinden gerçekleştirilmektedir. Donanımın .inf uzantılı kurulum dosyası seçildiğinde donanımla ilgili tüm sürücü dosyaları nLite tarafından kuruluma bütünleştirilecektir.

Aşağıdaki pencere kendisinden bir sonra gelen bileşen kaldırma penceresi için bir hazırlık aşaması niteliğindedir. Bir sonraki pencerede kullanımına gerek duyulmayacak uygulamaların kaldırılarak Windows kurulumunun boyutunun küçültülmesi amaçlandığından bu pencerede kurulumun uyumluluğu belirtilir. Sonraki pencerede seçilen uygulamalarla ilişkili dosyalar nLite tarafından işaretlenerek, kurulumdan çıkarılmaması konusunda nLite uyarıda bulunur.

Bu pencerede kurulumdan kaldırılmak istenen dosyalar işaretlenir. Windows kurulumunun boyutu kullanılmak istenen amaç doğrultusunda oldukça küçültülebilir. Bileşenlerden bir tanesi işaretlendiği zaman pencerenin sağ tarafında açıklaması görülecektir. Bu açıklamalar dolayısıyla, kaldırılmasından emin olunmayan uygulamalar konusunda yeterli bilgi edinilebilir.

nLite programının asıl kullanım amacı olan katılımsız kurulum hazırlama işlemi bu pencere ile beraber başlamaktadır. General sekmesinde katılımsız kurulumun tam otomatik, kurulum sayfalarını gizleyerek, varsaylanları destekleyerek ya da onarma modu gibi çeşitli şekillerde gerçekleştirilmesi sağlanabilir. Oem Preinstall kısmında dağıtım klasörlerinin yolu belirtilerek kurulum sırasında oem için önyükleme gerçekleştirilmesi sağlanabilir. Program Files klasörünün yolu değiştirilebilir. CD anahtarı yazılarak kurulum sırasında otomatik olarak algılanması sağlanır. Bilgisayar tipi seçilerek kurulumun ne türde bir bilgisayar (işlemci mimarisi -birden çok işlemcili vb.) üzerine yapılacağı belirtilerek kurulum dosyaları hazırlanır. Windows Güvenlik Duvarı kapatılabilir. Hibernate (uyku modu) özelliği devre dışı bırakılabilir. Sistem geri yüklemesi için gerekli servisler açılarak kaplayacağı alan ve bilgisayar üzerinde ne kadar süre saklanacağı belirtilebilir.

Bu sekmede kurulumun tamamlanması ardından bir kereye özel olmak kaydıyla çalıştırılmak istenen programların yolları yukarıda ekran çıktısındaki örnekteki gibi verilebilir. Örnekte Windows ekran klavyesinin yolu verilmiştir. %systemroot% Windows klasörünü belirtmektedir. Windows vaysayılandan farklı olarak C sürücüsünün altından başka bir yerde tutuluyorsa %systemdrive% komutu ile o sürücünün etiketi belirtilir.

Aşağıdaki sekmede kullanıcılar ile ilgili tanımlamalar yapılarak hangi kullanıcının otomatik olarak oturum açacağı ya da toplamda kaç kere otomatik oturum açılabileceği belirtilebilir.


Bu sekme ile kurulum etki alanı üzerinde çalışacak bir bilgisayar için hazırlanıyorsa gerekli etki alanı bilgileri girilerek kurulumun tamamlanmasının ardından bilgisayarın etki alanı üzerinde faaliyet göstermesi sağlanabilir.


Kurulum aşamasında karşılaşılan bölgesel ayarlar, dil, klavye seçenekleri bu sekmede bir defada yanıtlanarak kurulum sırasında otomatik olarak işlenir.


Bu sekmede Windows kurulumunun yapılacağı bilgisayardaki ağ kartlarının adaptörlerine belirlenecek IP adresi, DNS, WINS adresleri, ağ geçidi bilgisi, alt ağ maskesi, MAC adresi verilerek kurulum sırasında otomatik olarak yapılandırılması sağlanır.

Masaüstü temaları bu sekmede kuruluma eklenerek kurulum tamamlandığında Windows’un istenilen temada görüntülenmesi sağlanır. Temalar kurulumun hazırlandığı bilgisayardan “Insert all local” tuşu ile katılımsız kurulum dosyasının içerisine aktarılır.

Kurulumun tamamlanmasının ardından Windows ortamından da yapılabilecek olan Otomatik Güncellemeler ile ilgili ayarlar bu sekmede kurulum sırasında düzenlenmek üzere yapılandırılır. Güncellemelerin hangi gün ve saatte yapılacağı, bilgisayar üzerinde yönetici olanların bu güncellemeleri yapıp yapamayacağı bu sekmede ayarlanabilir.

Aşağıdaki sekmede görüntü ayarları yapılarak kurulumun tamamlanmasının ardından ekran görüntüsünün çözünürlüğü ve renk derinliği belirtilebilir. Bu aşamada dikkat edilmesi gereken kurulum sırasında ekran kartının tanınmayabileceği, dolayısıyla sürücüsünün yüklenemeyebileceği göz önünde bulundurularak genel bir yapılandırma seçmektir. Ancak sürücüler penceresinde ekran kartı sürücüleri kuruluma eklenmişse istenilen çözünürlük seçilebilir.

İnternet Bilgi Servisleri ve Güvenlik Yapılandırması Sihirbazı (SCW – Security Configuration Wizard) bileşenlerinin kurulup kurulmayacağı bu sekmeden belirlenir. SCW Windows 2003 Server için gerekli olan bir özelliktir.


Bu pencerede Windows kurulumu gerçekleştirildikten sonra kullanıma yönelik ayarlar seçilir. Bu seçenekler işeretlendiği zaman pencerenin alt tarafında kalan bölmede bu seçeneklerle ilgili açıklamalar görülecektir. Aynı dosyaları sil, sürücü .cab dosyalarını birleştir, eski BIOS bilgisini silmek gibi kullanışlı uygulamalar bu pencereden ayarlanabilir.


Bu pencerede Windows’a ait ince ayarlar detaylı olarak yapılandırılabilmektedir. Daha önceki pencerelerde de görüldüğü gibi işaretlenen seçeneklerle ilgili bilgi bu pencerenin alt bölümünde yeralmaktadır.


İnce ayarlar penceresinin servisler sekmesinde Windows altında hangi servisin çalışıp çalışmayacağı ya da oturum açılmasıyla beraber açılıp açılmaması yapılandırılabilir.

Bu pencere ile beraber nLite yapılan ayarlara uygun olarak kurulum dosyasını oluşturmaya başlar. Gerekli güncellemeleri kuruluma ekler, kurulumdan çıkarılan dosyaları kurulumun dışında bırakır.

Aşağıdaki pencerede kurulum dosyası oluşturulmuş haldedir. Kurulum dosyasının boyutu, kuruluma eklenen temaların boyutu ve kurulum dosyasının ne kadar büyüdüğü ya da küçüldüğü gösterilir.

En son aşama olan aşağıdaki pencerede hazırlanmış olan Windows kurulumu doğrudan CD ya da DVD gibi bir medya üzerine yazdırılabilir. Doğrudan yazdır seçeneği yerine imaj oluştur seçeneği seçilerek bilgisayar içinde belirlenen bir klasörün içine ISO dosyası şeklinde imajı alınabilir.

nLite oldukça yararlı ve kullanımı kolay bir programdır. Uzun zaman alan kurulum aşamasını otomatik olarak gerçekleştirir ve kurulum sonrasında ayrı ayrı yapılması gereken ayarların tek seferde yapılmasını sağlar.

Ahmet TOPRAKÇI
MCSE+S+M / MCTS /MCT

9 Mart 2008 Pazar

WebFarm / Internet Information Server Clustering (Bölüm-1)

Kurumların büyüme ölçeklerini göz önünde bulundurarak söylemek gerekirse internet ya da intranet üzerinden verdikleri/verecekleri hizmetler bakımından sürekli artan bir ihtiyaç söz konusudur. Kurum içinde bu hizmetleri kullanacak personel sayısı arttıkça ya da kurumun dışarıya vermek istediği hizmetlerin boyutu -ister kullanıcı, isterse teknoloji bazlı olsun- arttıkça kurumlar server hizmetleri bakımından yeni yapılara ihtiyaç duyarlar. Günümüzün bu konudaki gözde teknolojilerinden biri “cluster” (küme) yapılardır. Bu makalede internet/intranet yani web üzerinden verilecek sistemlerdeki kullanılabilirlik, ölçülebilirlik ve performans açısından Web Server’ların Cluster yapısı anlatılacaktır.

Web Sunucularının cluster(kümeli) şeklinde çalışması için çeşitli tasarımlar geliştirilmiştir. Bu yapılar “WebFarm” şeklinde isimlendirilir. Birden çok sunucu ile ya da aynı anda birden çok süreç üzerinde eş zamanlı olarak çalışmak söz konusu olunca bu konuda çeşitli terimler ortaya konmuştur. Burada durumu biraz daha netleştirmek için Webfarm Cluster yapısının haricindeki “WebGarden” denilen başka bir yapıyı da açıklamakta fayda görüyorum. Bu yapı WebFarm’dan farklı olarak tek bir sunucu üzerinde aynı web hizmetinin devamlılığını sağlamak için birbirine eş birden fazla process oluşturarak belli bir application pool’da bulundurur ve bu yöntemle hataya karşı dayanıklılığı (Fault tolerancy) sağlar. WebFarm yapısı bundan tamamen farklı olarak birden fazla server ile “Fault tolerancy-Scalability- High Availability” ögelerini yerine getirir. Bu makelenin tümünde Windows Server 2003 R2 işletim sistemi kurulu olan sunucular kullanılmıştır. Ayrıca Internet Information Server 6.0 (IIS-6.0), Network Load Balancing Manager (NLB), Disturbed File System Management (DFS), SQL-2005, Windows XP/Vista ayrıca çeşitli scriptler senorya gereği kullanılmıştır. Bu clustering senaryosu yukarıda sözü geçen uygulamaların başka sürümlerinin kombinasyonları ile de kullanılabilir, makale boyunca yeri geldiğince bu konuya ve bunu gerçekleştirirken karşılaşılabilecek sorunlara değinilecektir.
Konuya doğrudan girmek yerine bu bölümde cluster konusunda temel bilgiler vermeyi daha doğru buluyorum.

Cluster(kümeleme) yöntemi, yukarıda WebFarm üzerine bahsettiğim gibi birden çok sunucunun belli bir amaç için beraber ya da duruma göre sırayla, belirlediğimiz sunusu kümesi içerisinde toplanarak çalıştırılmasıdır(kümelenmesidir). Bu sunucu kümesinin üyesi olan her sunucudan birine “Node”(düğüm) denir. Cluster uygulamasında yer alan node’lar tek bir birim gibi çalışarak Microsoft Internet Information Services (IIS), Exchange Server gibi uygulamalara yönelik hizmetleri yüksek kullanılabilirlik(high avaibility) ile kullanıcılara sunar. Böylelikle küme oluşturmak cluster içindeki node’ları tek tek yönetmek yerine, uygulamaya yönelik olarak tek bir sistem halinde yönetilmesini sağlar. Bunun yanı sıra bu durum kullanıcı tarafı temel alınarak incelenirse, kullanıcılar sistemin cluster şeklinde çalışıp çalışmadığını çoğu durumda sezemezler, bu da cluster içindeki sunucuların tek bir sistem şeklinde çalıştığının kanıtıdır ki cluster yapmanın en önemli amaçlarından biri budur.

Cluster uyumlu olan uygulamalara örnek vermek gerekirse:
· DFS (distributed File System)
· DHCP
· Exchange Server
· File Server görevleri (dosya paylaşımları)
· IIS (Internet Information Services)
· Microsoft Distributed Transaction Coordinator (MS-DTC)
· MSMQ (Microsoft Message Queuing)
· NNTP (Microsoft News Transfer Protocol)
· Printer Pooling
· SMTP
· SQL Server
· WINS

Bu uygulamalar farklı cluster tipleri ile uygulanabileceği gibi beraberce de belli bir sistem için kullanılabilirler. Bunların yanında farklı uygulamalar da kümeli çalışabilirler(Oracle Server vs.) Cluster ortamının oluşabilmesi için IP tabanlı protokollere ihtiyaç vardır. Uygulamalar iletişim kurmak için IPX NetBEUI tarzındaki protokolleri kullanamazlar.

Daha önceden WebFarm senaryosunda kullanılacak uygulamalardan bahsederken Windows Server 2003 (R2) demiştik, burada bu Server2003’ün desteklediği 3 çeşit cluster tipi vardır:

1- NLB (Netwok Load Balancing), sunuculara gelecek olan yükü network üzerinde, belirlediğimiz kurallara yönelik olarak (affinity) paylaştıran, ağ yükünün dengelenmesi şeklinde gerçekleşir. NLB ile TCP (Transmission Control Protocol) haricinde UDP (User Datagram Protocol) ve GRE (Generic Router Encapsulation) tarfikleri için de yük dengelemesi sağlanabilir. Webfarm uygulamasında kullanacağımız cluster tipi budur. Ayrıca Microsoft, Web Sunucuları için cluster yaparken en uygun yöntemi NLB olarak önerir.

2- CLB (Component Load Balancing), COM+ kullanan uygulama bileşenlerinin dinamik bir şekilde yük dengelemesini sağlar. Yine yüksek kullanılabilrlik-ölçeklenebilirlik(scalability) açısından birçok Node üzerinde yük dengelemesi sağlar.

3- MSCS (Server Clustering), Sunucu kümesi olarak adlandırılabilir. Cluster Administrator arayüzü kullanarak yapılandırılır. Yüksek kullanılabilirlik-Ölçeklenebilirlik-Güvenilirlik açısından uygulamalar üzerinde hataya karşı dayanıklılık (fault tolerancy) sağlar. Arka uç sunucularda (SQL Server vs.) kullanımı uygundur.

Her küme oluşturma teknolojisinin belirli bir amacı vardır ve farklı gereksinimleri karşılayacak şekilde tasarlanmıştır. NLB, web hizmetleri nedeniyle oluşabilecek kısıtlamaları engellemek amacıyla tasarlanmıştır. CLB, web tabanlı uygulamaların ölçeklenebilirlik ve yüksek kullanılabilirlik ihtiyaçlarını karşılayabilmek için tasarlanmıştır. MSCS, veri bütünlüğünü korumak(integrity) ve yerinde çalışma desteği sağlamak amacıyla tasarlanmıştır.
Konuya daha geniş bir açıyla bakarsak, bu cluster hizmetleri beraberce kullanılabilir ve çoğu durumda da bu sistemin planlanan verimde çalışması için bir gerekliliktir. Yukarıda bahsi geçen üç cluster tipinin beraberce kullanılabileceği en genel senaryo bir web sitesinin yayınlanması olacaktır. Webfarm’ın adından işte burada söz etmeye başlayarak örneklerle devam edelim. Ön uç sunucular olan Web sunucularda (IIS) NLB yani Webfarm, orta katman sunucularda CLB ve arka uçta olan veri tabanı hizmetlerinde MSCS kullanılarak (SQL Clustering) bir sistem tasarlanabilir. Bu sistem genel hatlarıyla aşağıdaki taslağa benzeyecektir, zaten ilerleyen bölümdeki uygulamaları bu taslak üzerinden yola çıkarak yapacağız.


Cluster yapıları, Farm (çiftlik) ya da Paket adı verilen ikili gruplar olarak kullanılır. WebFarm bu gruplardan Farm yapısının Web uygulamalarına yönelik olarak kullanılış biçimi olduğu için bu şekilde isimlendirilir. Farm yapıları, benzer sistemler çalıştıran ama genelde veri paylaşmayan bir sunucu grubudur. Bunlara “Farm” adı verilmesinin sebebi, kendilerine iletilen tüm istekleri, verilerin sucular üzerinde yerel disklerde saklanan birebir kopyalarını kullanarak işlemeleridir. Verileri paylaşmak yerine birebir kopyalarının kullandıkları için node’lardan her biri özerk biçimde çalışır ve bunlara “Copy” (kopya) adı verilir. Paket ise bir arada çalışan ve bölümlenmiş verileri paylaşan bir grup sunucudur. Bunlara Paket denmesinin sebebi ise hizmetleri yönetmek ve korumak için birlikte çalışmalarıdır. Bir paketin üyeleri bölümlenmiş verilere erişimi paylaştığı için, işletim modları benzersizdir ve genelde paketin tüm üyelerinin bağlı olduğu disk sürücülerindeki paylaşılan verilere erişirler.

Çoğu durumda Web ve Uygulama(Application) hizmetleri Farm olarak, Arka uç veri tabanları ve kritik destek hizmetleri ise paket olarak düzenlenir. WebFarm yapısı birden fazla Farm’ın bileşimi olarak tasarlanabilir. Aynı veriler farm yapısındaki tüm Node’larda çoğaltılır ve her sunucu, kendisine gönderilen istekleri verilerin yerel kopyalarını kullanarak işleyebilir. Örneğin, NLB kullanan ve her birinde web sitesine ait olan verilerin yerel kopyası bulunan çok sayıda web sunucusu vardır. Elbetteki bir Farm içindeki sunucu sayısında da bir üst sınır vardır, bu konudan önümüzdeki paragraflarda bahsedeceğim. Biz oluşturduğumuz taslak üzerinden çalışma devam edeceğiz. Senaryomuzda WebFarm içerisinde iki adet web sunucuyu kümeli olarak çalıştıracağız. Aşağıdaki şema konu hakkında genel bir bilgi verecektir.



Paketi de kısaca açıklamak gerekirse, SQL Server çalıştıran ve bölümlenmiş veri tabanı görünümleriyle MSCS kullanan veri tabanı sunucuları bunlara örnektir. Bu durumda, paketin üyeleri verilere iletişimi paylaşır ve tüm istekleri işlemek yerine, verilerin ya da mantığın belirli bir bölümünü işlerler. Örneğin iki adet Node barındıran SQL Server cluster yapısında, bir sunucu A-M harfleri ile başlayan diğer sunucu ise N-Z harfleri ile başlayan hesapları işliyor olabilir.

Cluster mimarisi kullanan sunucular genelde üç katmanlı bir yapı kullanılarak tasarlanır bu yapı bahsettiğimiz şekilde,
Katman1- NLB’nin kullanıldığı ön uç Web sunucuları
Katman2- CLB’nin kullanıldığı çeşitli Uygulama sunucularını içeren orta katman sunucuları
Katman3- MSCS’nin kullanıldığı arka uçta yer alan veri tabanı sunucularını ya da dosya, kritik destek alanında görev yapan sunucuları içerir.

Cluster yapısı hazırlanırken bu şekildeki katmanlı bir yapı izlenmesinin asıl nedeni, cluster yapmanın asıl amaçlarından biri olan ölçeklenebilirliktir(scalability). Bu ölçeklenebilirlik istenilen katmana yeni sunucular ekleyerek ölçeğin artırılmasıyla gerçekleşebilir. Burada kritik nokta kullanılan sunucu işletim sistemidir.

· Windows Server 2003’ün tüm sürümleri, en fazla 32 Node’dan oluşan bir NLB Cluster destekler.
· Enterprise ve Datacenter Edition, en fazla 8 Node’lu bir CLB cluster destekler.
· Enterprise ve Datacenter Edition, en fazla 8 Node’lu bir MSCS cluster destekler.
İşlemci ya da RAM ekleyerek ölçek artırılmak isteniyor ise
· Standart Edition, en fazla 4 işlemci ile 32bit sistemlerde 4gb RAM ve 64bit sitemlerde 32gb RAM destekler
· Enterprise Edition, en fazla 8 işlemci ile 32bit sistemlerde 32gb RAM ve 64bit sitemlerde 64gb RAM destekler
· Datacenter Edition, en fazla 128 işlemci ile 32bit sistemlerde 64gb RAM ve 64bit sitemlerde 512gb RAM destekler

Ölçeklenebilirlik gereksinimleri belirlenirken kuruluşun “live” sitemdeki ve piyasadaki ileriye dönük gereksinimleri göz önünde bulundurulmalıdır. Doğru Windows sürümü ile uygun ölçeklenebilirlik sağlanabilir. Buna ek olarak, işlemciler ve bellek (RAM), sunucuların çalıştıracağı uygulama ve hizmetlerin yanı sıra, eş zamanlı olarak gerçekleştirilecek kullanıcı bağlantı sayısına uygun olarak boyutlandırılmalıdır. Eş zamanlı kullanıcı sayısı özellikle WebFarm senaryosunda dikkat edilmesi gereken önemli bir noktadır.

Bir sonraki bölümde NLB hakkında genel açıklamalar ile WebFarm senaryosu için yapılandırılmasını ve uygulanmasını anlatacağım.

KAYNAK:
-Microsoft/Technet
-Server2003 Inside/Out –William R. Stanek

Ahmet TOPRAKÇI
MCSE+S+M / MCTS/ MCT