Linux kümelerinin hata toleranslı uygulamalardaki önemi ve bir örnek uygulama
The importance of linux clusters in fault tolerant applications and a sample application
Yazar: GÜRKAN TUNA
Danışman: YRD. DOÇ. DR. ERDEM UÇAR
Trakya Üniversitesi / Fen Bilimleri Enstitüsü / Bilgisayar Mühendisliği Bölümü / Bilgisayar Mühendisliği Ana Bilim Dalı
Derece: Yüksek Lisans, 2008
Konu: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol = Computer Engineering and Computer Science and Control

Özet:
Kümeler yüksek hesaplama gücü, yük dengeleme ve hata toleransı sağlayan ve düğüm adı verilen bilgisayarlardan oluşan paralel işlem yapan süper bilgisayarlardır. Küme yapılarını oluşturan düğümler için özel sunucu veya iş istasyonu gibi yüksek maliyetli bileşenler kullanılması zorunlu değildir. Kümelerin amacı sunulmakta olunan servislerin iyileştirilmesidir.Sunucu kümeleri küreselleşme nedeniyle yaşanan acımasız rekabet ortamında şirketlerin bilgi işlem altyapıları için çok önemlidir. Günümüzde yaşanan acımasız rekabet ortamında en büyük hedef kesintisiz servisler sunabilmektir. Kesintisiz servis sunabilmek şirketin rakiplerine göre avantajlı duruma geçmesini sağlayacaktır.Linux Virtual Server sistemi hata toleranslı, yük dengelemeli ve yüksek erişilebilir küme yapıları oluşturmak için kullanılan bir yazılım grubudur. Tez kapsamında bir yönetici, iki adet sunucu düğümü ve bir adet veritabanı sunucusundan oluşan küme yapısı oluşturulmuştur. Kümede veritabanı sunucusu olarak MySQL ve web sunucusu olarak Apache kullanılmıştır. Apache sunucu üzerine farklı sayfalar ve bir alışveriş sistemi kurularak performans ve hata toleransı testleri gerçekleştirilmiştir.Tezin tamamı yedi bölümden oluşmaktadır. Tezin birinci bölümünde kümeleme, kümelemenin amacı ve önemi ele alınmıştır. Tezin ikinci bölümünde kümeleme konusundaki temel kavramlara değinilmiştir. Ayrıca kümelemenin gereksinimleri, küme bileşenlerinin seçimi ve küme düğümlerinin yapısı detaylı olarak incelenmiştir. Tezin üçüncü bölümünde Linux işletim sistemi, kümeleme yapısında Linux işletim sisteminin önemi, Linux işletim sistemi çekirdek yapısı, Linux işletim sistemi dosya sistemleri, önemli INIT scriptleri, kümeleme için işletim sistemine ince ayar yapılması ve işletim sistemi optimizasyon konusu incelenmiştir. Tezin dördüncü bölümünde Linux kümeleri, Linux kümelerinin diğer kümelere göre avantajları, Linux işletim sisteminde paketlerin işlenmesi, Linux Virtual Server, LVS-NAT kümeleri, LVS-DR kümeleri, LVS-TUN kümeleri, yük dengeleyicinin çalışma prensipleri ve yüksek erişilebilir küme yapılarının tasarımı konuları incelenmiştir. Tezin beşinci bölümünde hata toleranslı uygulamalar ve Linux kümelerinin kullanılabileceği hata toleranslı uygulamalar ele alınmıştır. Tezin altıncı bölümünde tez kapsamındaki küme uygulaması, Linux kümesini meydana getiren bileşenler, Linux hata toleranslı yük dengelemeli küme yapısının kurulması, MySQL veritabanı sunucusunun kurulumu ve ayarları ve rsync ile düğümlerdeki içeriklerin senkronizasyonu ele alınmıştır. Tezin son bölümü olan yedinci bölümünde tez kapsamında kurulumuş olan kümeleme yapısında gerçekleştirilmiş olan performans testleri ele alınmıştır.

Abstract:
Clusters are parallel processing super computers,which provide high computing power, load balancing and fault tolerance, and composed of computers called nodes. It is not required to use high cost components like special servers or workstations for the nodes forming clusters. The aim of clusters is to improve the services currently offered.Clusters are very important for companies? information system infrastructures in the merciless competition environment due to the globalization. Nowadays, in the merciless competitive environment, the biggest aim is to offer uninterrupted services. Being able to offer uninterrupted services will make the company advantageous against its competitors.Linux Virtual Server system is a group of softwares to build fault tolerant, load balancing and high available cluster structures. Within the context of the thesis, a cluster composed of one director, two server nodes and one database server have been set up. In the cluster, MySQL server as the database server and Apache server as the web server has been used. Different web pages and one shopping system have been loaded on the Apache server and performance and fault tolerancy tests have been conducted.The thesis is composed of seven sections. In the first section of the thesis, clustering and the aim and the importance of clustering are addressed. In the second section of the thesis, the main concepts about clustering are mentioned. Moreover, the requirements of clustering, the selection of cluster components and the structure of cluster nodes are examined in detail. In the third section of the thesis, the Linux operating system, the importance of the Linux operating system in clustering, the Linux operating system kernel structure, the Linux operating system file systems, important INIT scripts, fine tuning of operating system for clustering and operating system optimization are examined. In the fourth section of the thesis, Linux clusters, the advantages of Linux clusters against other clusters, packet processing in Linux operating system, Linux Virtual Server, LVS-NAT clusters, LVS-DR clusters, LVS-TUN clusters, working principles of load balancer, and the design of high available cluster structures are examined. In the fifth section of the thesis, fault tolerant applications and the fault tolerant applications that Linux clusters can be used for are addressed. In the sixth section, the cluster application in the scope of the thesis, the components which build the Linux cluster, the installation of Linux fault tolerant load balancing cluster structure, the installation of MySQL database server and the synchronization of nodes? contents with rsync are addressed. In the seventh section, which is the last section, the performance tests that were conducted in the cluster which was built for the thesis are addressed.