Dağıtık mimari tasarımı ve yönetim sistemi geliştirilmesi
- Global styles
- Apa
- Bibtex
- Chicago Fullnote
- Help
Abstract
Dağıtık Sistemler, büyük ölçekli uygulamaların zaman ve alan gereksinimi konusundakarşılaştıkları engelleri aşma yönünde ortaya çıkmış bir mimari türüdür. Dağıtıksistemlere kadar olan zamanda geliştirilen mimariler, uygulamaları hızlandırmayönünde donanım (çok işlemcili sistemler, çok çekirdekli işlemciler vb.) ya dayazılım (istemci / sunucu vb.) alanında bir gelişim gösterse de uygulamalarınbüyüklüklerindeki artış ivmesini yakalayamamışlardır. Diğer yandan başarımkriterlerinin sınırlı sayıda fiziki bilgisayarlar üzerinde gerçekleştirilmek istenmesi,ortaya maliyeti yüksek bir çözüm çıkarmaktadır.Son zamanlarda, akıllı telefon ve tablet bilgisayarların yaygınlaşması, atanmışsistemlere yönelik işlemci, bellek gibi donanımların başarım / fiyat oranlarınınartmasını sağlamıştır. Böylece mevcut geliştirilmiş ya da tasarlanacak düşük maliyetliatanmış sistemlerin birarada kullanılmasıyla, maliyeti yüksek hızlı bilgisayarlardandaha iyi başarım / fiyat oranı elde edilebileceği fikri ortaya çıkmıştır.Hedeflenen çalışmada amaç, büyük ölçekli örnek bir uygulamanın, dağıtık sistemmimarisi vasıtasıyla ayrıştırılıp atanmış bilgisayarlarda çalıştırılmasını sağlamak veelde edilen başarım / fiyat oranının mevcut sistemlerle karşılaştırmasını yapmaktır.Bununla birlikte, sistemdeki donanım sayısının artması, sistemin sürdürebilirliğineait riskleri, donanımlara dağıtmakta, böylece hem güvenilirlik hem de verimlilikanlamında daha iyi bir sistem ortaya çıkmasını sağlamaktadır. Dağıtık sistemlereyönelik olarak yapılan literatür araştırmalarında; ana bilgisayar, istemci / sunucu,dağıtık nesne, bilgisayar kümeleri ve grid mimarileri incelenmiş, üstün ve eksikyönleri irdelenmiştir. Çalışmada, uygulamaların yüksek başarımlı olarak çalıştırılmakistenmesi ve mevcut atanmış bilgisayarların sınırlı kaynaklara sahip olması nedeniyle,çözüme yönelik en uygun mimarinin bilgisayar kümeleri mimarisi olduğu belirlenmişve tez kapsamında tercih edilen mimari olmuştur.Sayılan üstünlüklerine karşın bilgisayar kümeleri mimarisinin en önemli eksikliğiplatform esnekliği sağlamamasıdır. Çalıştırılacak uygulamanın atanmış bilgisayarınsahip olduğu işlemci mimarisi ve işletim sistemi ile uyumlu olması gerekmektedir.Ancak bilgisayar sistemlerinde genel olarak platform bağımsızlığı ile başarım arasındakarşılıklı dışlama durumu hakimdir, yani platform bağımsızlığı beraberinde belirginbir başarım kaybını da getirmektedir. Tezin amacındaki öncelik başarım artırımıolduğundan, platform bağımsızlığı değerlendirme dışında kalmıştır.Bilgisayar kümeleri mimarisinde, ana bir bilgisayar üzerinden merkezi bir yönetimyazılımı vasıtasıyla sistemdeki düğümler yönetilmekte, uygulama alt görevlerinindağıtılıp çalıştırılması sağlanmaktadır. Bu tez çalışmasıyla bir Merkez YönetimYazılımı ve sınamaya yönelik olarak matris çarpımı tabanlı bir matematiksel uygulamageliştirilmiş, bu uygulamanın geliştirilen Merkez Yönetim Yazılımı vasıtasıyladüğümlere aktarılıp çalıştırılması gerçekleştirilmiştir.Benzer çalışmalardan farklı olarak, güvenilirliğin artırılmasına yönelik olarak çokluçalıştırma, birebir yedekleme ve havuz yedekleme yöntemleri incelenmiştir. Havuzyedekleme yönteminde diğer yöntemlere göre daha az sayıda düğümün sürdürebilirlikkümeleri olarak işaretlenip bekletilmesi, bununla beraber diğer yöntemlerden daha iyigüvenilirlik sağlaması, sistemin güvenilirliğinin sağlanması noktasında yeterli imkanısağlamış olup, tez kapsamında tercih edilmiştir.Diğer taraftan verimi artırmaya yönelik olarak, dosya aktarımlarında, MD5bazlı kontroller konularak dosya aktarımı optimize edilmiş ve aynı dosyalarıntekrarlı aktarımı engellenmiş, tasarlanan önceliklendirme algoritması ile düğümlerönceliklendirilmiş, böylece düğümlerde çalıştırılacak uygulama alt görevlerine öncelikdeğeri atama imkanı verilmiş, düğümlerin homojen kullanımı sağlanarak yaşlanmaoranları dengelenmiş, böylece sistemin ilk bozulma anı ötelenmiştir.Haberleşme altyapısının seçimine yönelik çalışmada, Berkeley Soketleri,Mesaj Aktarım Arabirimi, Uzak Yordam Çağrısı ve Dağıtık Paylaşımlı Bellekyapıları incelenmiş, hem kullanılacak atanmış bilgisayarların farklı yapılandırmagereksinimleri, hem de başarım ekseninde yapılan araştırma sonuçlarına göre,geliştirilen uygulamada bilgisayar kümeleri mimarisinde çokça kullanılan MesajAktarım Arabirimi yerine TCP / IP tabanlı Berkeley Soketleri tercih edilmiştir.Haberleşme altyapısı olarak Berkeley Soketlerinin seçilmesinden dolayı, aktarılmakistenen nesnelere ya da dosyalara ilişkin verilerin serileştirilerek mesaj yapısınaeklenmesi ve karşı tarafta aynı verinin mesajdan ayrıştırılarak ilgili nesnelerin ya dadosyaların oluşturulması işlemine ilişkin mesajlaşma yapısı ayrıca tanımlanmış vegeliştirilen Merkez Yönetim Yazılımına entegre edilmiştir.Geliştirilen yazılıma referans olması açısından, OSCAR, ROCKS, WareWulf, xCATve Debian Küme Bileşenleri incelenmiş, farklı yönleri karşılaştırılmıştır.Merkez Yönetim Yazılımı, uygulamanın ayrıştırılarak düğümlerde çalıştırılmasınailişkin tüm süreci dağıtıcı, toplayıcı(lar) ve düğüm(ler) den oluşan üç ana bileşenlegerçekleştirmektedir.Dağıtıcı tüm süreci yönetmek yerine sadece toplayıcı ve düğümleri yönetmekte,böylece hem tüm sürecin yönetimi kolaylaşmakta hem de yazılım içerisinde bileşenbazlı yalıtım sağlanmaktadır. Toplayıcı ve düğümler arası aktarım dağıtıcıdanbağımsızlaştığı için haberleşme ve senkronizasyon gibi ek işler ortadan kalkmıştır.Toplayıcı, uygulamanın bulunduğu bilgisayarda çalışıp, uygulamaya ilişkinparalelleşmiş alt görevlerin tanımlandığı kural dosyalarını çözmekte ve alt görevlerindüğümlere aktarımını sağlamaktadır.Düğümler ise toplayıcılardan gelen kural ve kuralla ilgili dosyaların çalıştırılmasınısağlamaktadırlar.Düğümlerde çalıştırılacak uygulamaya ilişkin dosyalar ve değiştirge kümeleri gibi tümgereksinimler uygulama sahibi tarafından kural listesi halinde tanımlanmakta ve kuraldosyalarında barındırılmaktadır. Kurallar dağıtımı yapılacak uygulamanın içeriğinedair bir bilgi barındırmazlar, uygulamaya bakışları sadece dosya ve değiştirge listelerive bunların çalıştırılma şekillerinden ibarettir. Dolayısıyla merkez yönetim yazılımınınuygulamaya olan saydamlığını sağlamış olurlar.Sistemin sınanması iki farklı bilgisayar ve dört farklı atanmış bilgisayar kullanarakgerçekleştirilmiştir. Sınanan atanmış bilgisayarlar sırasıyla, Raspberry PI Model B,Raspberry PI 2 Model B, BeagleBone Black Model C ve HardKernel ODROID U3olup maliyetleri, referans bilgisayarın yaklaşık %6-11 arasındadırlar.Sistemin sınanması üç aşamada gerçekleştirilmiştir. Önce referans bilgisayardauygulama alt görevleri paralel olarak çalıştırılmış ve tek işlemci ve tek depolama birimikullanımı gibi seri çalışma zorunluluklarından dolayı, toplam başarımın düğüm sayısıile orantılı artmadığı görülmüştür.Ardından atanmış bilgisayarlarla aynı sınama tekrarlanmış, bu sefer toplam başarımındüğüm sayısı ile orantılı arttığı görülmüştür. Buradan çıkan sonuç, seri çalışmayayönelik tek etken olan ağdan veri aktarımının sistem başarımına etkisinin çok azolduğudur.Sonrasında temin edilen donanımlar teker teker sınanmış ve elde edilen sınamasonuçlarında, referans bilgisayara göre sırasıyla %4, %21, %11 ve %48'lik başarımsonuçları elde edilmiştir.Son olarak yapılan maliyet analizinde, referans bilgisayar ile atanmış bilgisayarlarınbaşarım / fiyat oranları karşılaştırılmış, atanmış bilgisayarların referans bilgisayaraalternatif olup olmadıkları sınanmıştır. Sınama sonuçlarında, referans bilgisayara göresırasıyla %58, %289, %156 ve %314'lük başarım / fiyat oranları elde edilmiştir. Bunagöre ilk versiyon Raspberry PI atanmış bilgisayarı hariç, tüm atanmış bilgisayarlarreferans bilgisayardan daha iyi başarım / fiyat oranı göstermişlerdir. Distributed System architecture has emerged as a result of the efforts focused onsolving the time and space issues of large-scale applications. Prior architectures hadtaken hardware (multi-processor systems, multi-core processors, etc.) or software(client / server etc.) based approaches to speed up computationally demandingapplications, however, these approaches could not keep up with the growth inapplication scale. On the other hand, achieving the target performance with a constantnumber of server computers results in high cost solutions.Recent increases in the use of smart phones and tablet computers have triggeredsubstantial improvements in the cost / performance ratios of embedded gradeprocessors and memory components. This observation has led to the idea that it can bepossible to build systems with better cost / performance ratios compared to high-endserver based systems using existing or custom designed embedded systems.The goal of this work is to divide a large-scale application into small chunks ofwork that are executed on embedded computers and compare the cost / performanceratio of the resulting system with the existing server based systems. An additionaladvantage of the resulting system is that the increased number of computers thatconstitute the system helps distribute the risks associated with system sustainabilityacross a larger number of sub-systems, improving the overall system reliability andefficiency. In the literature survey conducted on distributed systems, mainframe,client/server, distributed objects, computer cluster and grid architectures have beenexamined, advantages and disadvantages of these architectures have been analyzed.Based on the conducted work, it has been concluded that since the target applicationsare to be run with high performance and since embedded computers have limitedcomputation resources, the architecture that is best suited for large scale applicationsis computer clusters, therefore it is selected as the preferred architecture in the thesis.However, computer cluster architecture is not without shortcomings, the mostimportant of which is their lack of platform flexibility. The application to beexecuted on the computers must be compatible with the processor architecture andthe operating system available on the cluster nodes. Within the context of computersystems, platform independence and performance are contradicting design goals, thatis, platform independence comes with an apparent performance loss. Since the maingoal of this thesis is to increase performance, platform independence will not be takeninto account.Computer cluster architecture is based on a central management software on themanager node managing all the nodes present in the cluster to distribute and executesubtasks of the application. The work described in this thesis consists of a centralmanagement software along with a matrix multiplication based test application. Theresulting control software was used to distribute and execute the matrix multiplicationwork among nodes.Different from the previous works on this topic, multiple execution, one-to-one backupand pool backup approaches have been examined to increase system reliability. Poolbackup approach marks fewer nodes to be kept as sustainability nodes compared to theother approaches, however, still provides better reliability. As a result, pool backupwas chosen as the preferred approach in this thesis.On the other hand, system efficiency was increased by (1) optimizing file transfers byavoiding redundant transfers via MD5 based controls, (2) using the scoring algorithmdesigned as part of this thesis to prioritize the nodes providing a mechanism to assignpriority scores to subtasks to be executed at nodes, (3) homogenizing use among allnodes to equalize weathering rates and delay the first breakdown.Regarding the choice of communication framework, Berkeley Sockets, MessagePassing Interface, Remote Procedure Call and Distributed Shared Memory approacheshave been analyzed. Considering the embedded computers to be used can havevarying configuration requirements and in the light of performance tests TCP/IPbased Berkeley Sockets was preferred instead of Message Passing Interface, whichis typically used in computer clusters.As a result of using Berkeley Sockets, a new messaging structure was designed,implemented and integrated into the central management software. This new structureserializes the objects and files to be transferred, adds to the message structure, andon the receiving side extracts these from the message and reconstructs the objects andfiles.OSCAR, ROCKS, WareWulf, xCAT and Debian Cluster Components were studiedand compared to each other to serve as a reference to the developed software.The central management software achieves partitioning the application into subtasksand executing these subtasks on nodes by three main components, namely, distributor,collector(s) and node(s).Instead of orchestrating the whole process, the distributor only manages the collectorsand nodes, simplifying the management of the process and providing component levelinsulation. Since the transfers between the collector and the nodes are independentof the distributor, there is no need for messaging and synchronization mechanismsbetween these units.The collector simply processes the rule files that reside on the computers where theapplication subtasks are located and achieves the transfer of the subtasks to the nodes.Finally, the nodes use the rules and associated files coming from the collector toexecute their jobs.All the requirements such as the files that are associated with the subtask to be executedat a node and the parameters are defined as a rule list by the user and stored in rule files.The rules have no specific information about the application to be distributed amongthe nodes. From the system's point of view, the application is simply a bunch of files,parameter sets and the way the subtasks are to be executed. This guarantees that thecentral management software is completely agnostic to the application to be executed.The proposed system was tested with two desktop computers and four different types ofembedded computers. The embedded computers are Raspberry PI Model B, RaspberryPI 2 Model B, BeagleBone Black Model C and HardKernel ODROID U3. The costsof these embedded computers are within 6-11% of the reference computer.The tests were conducted in three stages. First, the application was run on the referencecomputer with all the subtasks parallelized. It was observed that the performance didnot scale with the number of nodes due to serial execution limitations such as having asingle processor and single storage unit.Next, the same application was run on the embedded computers with all the subtasksparallelized and the performance was observed to scale with the number of nodes.This observation leads to the conclusion that the data transfer over network, whichis the only serializing factor for this scenario, has negligible effect on the overallperformance.Then all the embedded computers were tested separately and their performancesrelative to the reference computer were measured as 4%, 21%, 11% and 48%,respectively.Finally, a cost analysis was conducted where the cost / performance ratios of theembedded computers were compared to the reference computer to see if theseembedded computers can be considered as an alternative to the reference computer.The resulting cost / performance ratios were found to be 58%, 289%, 156% and 314%,respectively. Based on these results, all embedded computers except for first version ofRaspberry PI have better cost / performance ratios compared to the reference computer.
Collections