Podstawowe mechanizmy systemu Linux w przetwarzaniu rozproszonym



Podobne dokumenty
PLD Linux Day. Maciej Kalkowski. 11 marca Wydziaª Matematyki i Informatyki UAM

Instrukcja do wiczenia Administracja usªugami domenowymi Konguracja NFS z Kerberosem

Regulamin Usªugi VPS

SVN - wprowadzenie. 1 Wprowadzenie do SVN. 2 U»ywanie SVN. Adam Krechowicz. 16 lutego Podstawowe funkcje. 2.1 Windows

Subversion - jak dziaªa

Zobacz to na własne oczy. Przyszłość już tu jest dzięki rozwiązaniu Cisco TelePresence.

Podstawy Informatyki i Technologii Informacyjnej

Analiza wydajno±ci serwera openldap

przewidywania zapotrzebowania na moc elektryczn

INFORMATOR TECHNICZNY WONDERWARE

Microsoft Management Console

Optymalizacja R dlaczego warto przesi ± si na Linuxa?

Lekcja 3 Banki i nowe przedmioty

Instrukcja instalacji oprogramowania TSG wer. 5.0 z dost pem do danych poprzez sie Internet.

System Informatyczny CELAB. Przygotowanie programu do pracy - Ewidencja Czasu Pracy

1. Wprowadzenie do C/C++

Lekcja 12 - POMOCNICY

Instrukcja dotycząca generowania klucza dostępowego do Sidoma v8

System kontroli wersji SVN

Edyta Juszczyk. Akademia im. Jana Dªugosza w Cz stochowie. Lekcja 1Wst p

SVN - wprowadzenie. 1 Wprowadzenie do SVN. 2 U»ywanie SVN. Adam Krechowicz 24 czerwca Podstawowe funkcje. 2.1 Windows

Zdalne odnawianie certyfikatów do SWI

1. Wprowadzenie do C/C++

Bazy danych. Andrzej Łachwa, UJ, /15

Lekcja 8 - ANIMACJA. 1 Polecenia. 2 Typy animacji. 3 Pierwsza animacja - Mrugaj ca twarz

Metodydowodzenia twierdzeń

Podziaª pracy. Cz ± II. 1 Tablica sortuj ca. Rozwi zanie

Mateusz Rzeszutek. 19 kwiecie«2012. Sie VLAN nie zmienia nic w kwestii domen kolizyjnych. przynale»no± w oparciu o numer portu

Bash i algorytmy. Elwira Wachowicz. 20 lutego

Chmurowe ±rodowisko laboratoryjne

W dobie postępującej digitalizacji zasobów oraz zwiększającej się liczby dostawców i wydawców

Ćwiczenie nr: 9 Obliczenia rozproszone MPI

Jak usprawnić procesy controllingowe w Firmie? Jak nadać im szerszy kontekst? Nowe zastosowania naszych rozwiązań na przykładach.

YapS Plan testów. Šukasz Bieniasz-Krzywiec Dariusz Leniowski Jakub Š cki 29 maja 2007

Wprowadzenie. Co to jest klaster? Podział ze względu na przeznaczenie. Architektury klastrów. Cechy dobrego klastra.

Konfiguracja współpracy urządzeń mobilnych (bonowników).

61 Topologie wirtualne

Rzut oka na zagadnienia zwi zane z projektowaniem list rozkazów

Rozwi zywanie Ukªadów Równa«Liniowych Ax=B metod dekompozycji LU, za pomoc JAVA RMI

Automatyzacja procesu publikowania w bibliotece cyfrowej

3) Kreator nowego połaczenia

Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych ul. Koszykowa 75, Warszawa

I. INSTALACJA BAZY DANYCH ORACLE10g EXPRESS EDITION

Lekcja 9 - LICZBY LOSOWE, ZMIENNE

Algorytmy i Struktury Danych

InsERT GT Własne COM 1.0

Zad.1 Pokazać pierwszeństwo trybu odmów przed zezwalaj.

Dziedziczenie : Dziedziczenie to nic innego jak definiowanie nowych klas w oparciu o już istniejące.

Opis portów. Opis portów, bardzo przydatne. Tabelka poniżej. Numer portu. Usługa. Opis FTP SSH 1 / 16

epuap Ogólna instrukcja organizacyjna kroków dla realizacji integracji

Lekcja 3 - BANKI I NOWE PRZEDMIOTY

WST P DO PROGRAMOWANIA RÓWNOLEGŠEGO 1. KLASTER

newss.pl Ultraszybki internet nowej generacji - UPC Fiber Power

Zarządzanie Zasobami by CTI. Instrukcja

i, lub, nie Cegieªki buduj ce wspóªczesne procesory. Piotr Fulma«ski 5 kwietnia 2017

PROCEDURA ADMINISTROWANIA ORAZ USUWANIA

Konfiguracja historii plików

Instrukcja zapisu do grup

Architektura, oprogramowanie i uytkowanie klastra PCSS. Marek Zawadzki <mzawadzk@man.poznan.pl>

Sieć komputerowa grupa komputerów lub innych urządzeo połączonych ze sobą w celu wymiany danych lub współdzielenia różnych zasobów, na przykład:

Edycja geometrii w Solid Edge ST

Projekt konceptualny z Baz Danych "Centralny system zarz dzania salami na AGH"

Architektura komputerów

Lab. 02: Algorytm Schrage

Opis obsługi systemu Ognivo2 w aplikacji Komornik SQL-VAT

Karta adaptacyjna GSM

Integracja systemów, integracja procesów

Android. Podstawy tworzenia aplikacji. Piotr Fulma«ski. March 4, 2015

Ćwiczenie nr: 9 Obliczenia rozproszone MPI

Instalacja programu Sprzeda z motorem. bazy danych Pervasive V8

Pracownia internetowa w każdej szkole. Opiekun pracowni internetowej SBS 2003 PING

Symfonia Produkcja Instrukcja instalacji. Wersja 2013

SpedCust 5 instrukcja instalacji

ANALIZA NUMERYCZNA. Grzegorz Szkibiel. Wiosna 2014/15

Instrukcja instalacji

Dostp do zasobów dyskowych uytkowników lcme10 przez protokół SMB (Microsoft Networking)

Charakterystyka systemów plików

Wzorce projektowe kreacyjne

IOT w systemach PON. Mikołaj Chmura Solution Manager m.chmura@vector.com.pl

Usługi sieciowe systemu Linux

Obliczenia rozproszone MPI

Bazy danych. Joanna Grygiel

Propozycja integracji elementów ±wiata gry przy u»yciu drzew zachowa«

Programowanie Zespołowe

INFORMATOR TECHNICZNY WONDERWARE. Konfiguracja komputera klienckiego do łączenia się z serwerem IndustrialSQL

Program szkoleniowy Efektywni50+ Moduł III Standardy wymiany danych

POLITECHNIKA WROCŠAWSKA WYDZIAŠ ELEKTRONIKI PRACA DYPLOMOWA MAGISTERSKA

Software Architecture Document wersja 2.0-nal

Obliczenia rozproszone MPI

Sieci komputerowe cel

INFORMATOR TECHNICZNY WONDERWARE

VinCent Office. Moduł Drukarki Fiskalnej

Chmura obliczeniowa. do przechowywania plików online. Anna Walkowiak CEN Koszalin

Wzorce projektowe strukturalne cz. 1

MiASI. Modelowanie systemów informatycznych. Piotr Fulma«ski. 18 stycznia Wydziaª Matematyki i Informatyki, Uniwersytet Šódzki, Polska

Serwer SSH. Wprowadzenie do serwera SSH Instalacja i konfiguracja Zarządzanie kluczami

API transakcyjne BitMarket.pl

PERSON Kraków

Transkrypt:

Podstawowe mechanizmy systemu Linux w przetwarzaniu rozproszonym Boi«ski T. 5 marca 2006 Streszczenie. Linux to otwarty, ci gle rozwijany system operacyjny. Dost pno± kodu ¹ródªowego oraz peªnej dokumentacji zaowocowaªa rozwojem wielu mechanizmów wspieraj cych przetwarzanie rozproszone. W systemie Linux zaimplementowane zostaªy proste mechanizmy typu gniazda czy potoki jak i bardziej zaawansowane typu wspóªdzielenie systemu plików czy mo»liwo± tworzenia klastrów opartych o migracj procesów czy przekazywanie komunikatów. Narz dzia te, równie» b d c rozwi zaniami otwartymi, doczekaªy si wielu wersji i rozszerze«gwarantuj c dalszy rozwój wykorzystuj cych je aplikacji. Sªowa kluczowe. Linux, NFS, MPI, PVM, openmosix, mechanizmy, przetwarzanie, klaster Linux jest w peªni otwartym systemem[1] ci gle rozwijanym przez szerokie rzesze u»ytkowników na caªym ±wiecie. Dzi ki swojej otwarto±ci system ten znalazª bardzo wiele zastosowa«w ró»nych dziedzinach. Caªkowita dost pno± kodu ¹ródªowego umo»liwia o wiele wi ksze dostosowanie do wªasnych potrzeb ni» jakikolwiek inny system operacyjny, st d nie jest dziwne, i» powstaªo wiele mechanizmów i rozszerze«wspieraj cych w ró»ny sposób przetwarzanie rozproszone w tym systemie. Oprócz standardowych mechanizmów, takich jak gniazda czy potoki, dost pnych praktycznie w ka»dym systemie operacyjnym, oferowane s narz dzia umo»liwiaj ce budowanie wysocewydajnych systemów klastrowych, czyli grupy komputerów poª czonych sieci, wykonuj cych obliczenia maj ce na celu rozwi zanie wspólnego problemu, b d cych gªównym polem zastosowa«systemów typu Linux w przetwarzaniu rozproszonym. Klastry budowane s mi dzy innymi w oparciu o mechanizmy przekazywania komunikatów czy te» system openmosix pozwalaj cy na traktowanie grupy niezale»nych maszyn jak jedn platform wieloprocesorow z niezale»n pami ci.[2] W celu uproszczenia u»ytkowania takich systemów i dodatkowe zwi kszenie wra»enia korzystania z jednej, silnej maszyny cz sto dodatkowo stosuje si wspóªdzielony system plików poprzez Network File System (NFS). 1 Network File System (NFS) Mechanim ten umo»liwia wspóªdzielenie systemu plików mi dzy wieloma dowolnie od siebie oddalonymi komputerami poª czonymi dowolnym rodzajem 1

sieci.[7][8] Oryginalnie NFS ten zostaª zaprojektowany do wspóªpracy z systemem Linux, jednak powstaªo wiele implementacji na inne systemy speªniaj ce wszystkie zaªo»enia standardu. Dzi ki temu mo»liwe jest bezproblemowe wspóªdzielenie zasobów w ±rodowiskach heterogenicznych. Obecnie protokóª NFS jest ci gle rozwijany. Wraz z jego ostatni, czwart wersj wprowadzone zostaªo wiele rozszerze«takich jak blokowanie plików przez klienta, cache'owanie klientów pozwalaj ce na korzystanie z pliku przez dwóch klientów bez po±rednictwa serwera oraz wysoki poziom zabezpiecze«i wielonarodowo±. Rysunek 1: Architektura NFS NFS charakteryzuje si dwuwarstwow architektur (Rysunek 1). Warstwa j dra systemu zaimplementowana jest bezpo±rednio w j drze Linuxa. Zajmuje si wykonywaniem bezpo±rednich operacji dyskowych oraz zarz dzaniem dost pem. Od niej zale»y dbanie o bezpiecze«stwo danych oraz na niej spoczywa zachowanie spójno±ci zapisywanego systemu plików w przypadku restartu serwera. W warstwie tej zaimplementowane s wszystkie mechanizmy kontroli dost pu wielu klientów do tego samego zasobu jak i ±ledzenia zmian w poªo»eniu plików. Warstwa u»ytkownika skªada si z narz dzi uruchomionych poza j - drem. Zadaniem warstwy jest zarz dzanie komunikacj z klientami i serwerami w sieci. Narz dzia tej warstwy uruchamiane s w postaci demonów realizuj - cych komunikacj zarówno w trybie poª czeniowym (poprzez protokóª TCP) jak i bezpoª czeniowym (poprzez protokóª UDP). Wraz z pojawieniem si wersji 4 protokoªu, NFS oferuje mo»liwo± uwierzytelniania i kontroli dost pu zgodnie ze standardem Kerberos.[7] Autoryzacja i autentykacja opiera si o interfejs RPCSEC GSSAPI zdeniowany przez rm Sun. W zaªo»eniach interfejs ten pozwoli na stosowanie kontroli dost pu we wszystkich wersjach protokoªu NFS, jednak»e obecnie jest on w do± wczesnej fazie implementacyjnej wi c oferowana jest jedynie autentykacja w NFSv4. U»ywanie NFS jest bardzo proste. Wymagane jest jedynie j dro z obsªug nfs (obsªuga ta jest dost pna w czystym j drze linuxowym jakie mo»na pobra z http://www.kernel.org a tak»e praktycznie ka»dym j drze doª czanym do jakiejkolwiek dystrybucji) oraz pakiet nfs-tools zawierajacy demony serwera i klienta NFS. W celu konguracji serwera NFS nale»y w pliku /etc/exports wylistowa wszystkie udost pniane katalogi oraz poda» prawa dost pu do nich. Nast pnie wystarczy uruchomi usªugi 'portmap', 'statd' oraz 'nfsd' w sposób wªa±ciwy dla danej dystrybucji. W nowych dystrybucjach wystarczy uruchomi usªug 'nfsd' a wszystkie pozostaªe zostan automatycznie uruchomione jako zale»no±ci. Po stronie klienta nale»y uruchomi usªugi 'portmap', 'lockd' oraz 'statd'. Po wykonaniu tej czynno±ci u»ytkownik powinien mie mo»liwo± montowania udost pnionych przez serwer katalogów za pomoc polecenia 'mount ad- 2

res.serwera:/katalog_na_serwerze katalog_lokalny'. Mo»liwe jest tak»e automatyczne montowanie katalogów poprzez standardowy wpis w pliku /etc/fstab. 2 Konstrukcja klastrów oparta o przekazywanie komunikatów Najbardziej znanymi rodzajami klastrów s maszyny typu Beowulf.[3] Klastry te wymagaj specjalistycznego oprogramowania zdolnego wykorzysta topologi sieci ª cz cej poszczególne w zªy w celu uzyskania jak najlepszego efektu pracy. Ka»dy z w zªów dysponuje swoj wªasn, niedost pn dla innych przestrzeni adresow, st d konieczne jest zastosowanie mechanizmów umo»liwiaj cych wydajn komunikacj mi dzy procesami wykonywanymi na ró»nych maszynach. Dla takich zastosowa«storzono odpowiednie biblioteki takie jak MPI czy PVM. Zarówno MPI jak i PVM s bardzo dojrzaªymi projektami szeroko stosowanymi w praktyce. 2.1 PVM PVM[4] zostaª stworzony w 1989 roku w Oak Ridge National Laboratory. Pocz wszy od wersji 2.0 jest on dost pny publicznie i zacz ª by wykorzystywany przez coraz wi ksz liczb aplikacji naukowych na caªym ±wiecie. The Parallel Virtual Machine (PVM) jest zbiorem narz dzi wykorzystuj cych model przekazywania komunikatów pozwalaj cych na efektywne wytwarzanie aplikacji dzia- ªaj cych na dost pnym sprz cie. Gªównym celem PVM jest umo»liwienie wykorzystania dowolnie du»ej i dowolnie zró»nicowanej, zarówno pod wzgl dem architektury jak i systemu operacyjnego, grupy komputerów jako jednej wirtualnej maszyny. PVM w sposób niewidoczny da u»ytkownika zajmuje si routowaniem wiadomo±ci, konwersj danych mi dzy ró»nymi systemami (np. little endian - > big endian i odwrotnie) oraz planowaniem zada«w sieci niekompatybilnych architektur sprz towo/programowych. Prosty a zarazem bardzo ogólny model przetwarzania dostarczany przez PVM pozwala na proste tworzenie aplikacji, w których procesy komunikuj si za pomoc ustalonego interfejsu uzyskuj c tym samym peªn mo»liwo± wymiany danych, synchronizacji czy dost pu do wspólnych zasobów. PVM dostarcza funkcji pozowalaj cych na szeroki wachlarz komunikacji punkt-punkt czy te» wysokopoziomowe metody typu broadcast czy bariera. Ka»dy proces w dowolnym momencie mo»e zainicjalizowa dowolny rodzaj komunikacji. Mo»liwe jest równie» dynamiczne zarz dzanie struktur klastra, tzn. w dowolnym momencie dowolny proces mo»e zatrzymywa oraz uruchamia procesy, doª cza lub odª cza komputery z maszyny wirtualnej. Obecna, trzecia wersja zwana te» PVM3, wspiera j zyki C, C++ oraz Fortran. U»ytkownicy tworz cy aplikacj dla PVM mog korzysta z dowolnego z tych j zyków a nawet na poszczególnych w zªach znajdowa si mog aplikacje napisane za pomoc ró»nych j zyków. Wi cej na temat programowania z wykorzystaniem PVM znajduje si w dokumentacji oraz na stronie WWW http://www.csm.ornl.gov/pvm/. PVM jest narz dziem ci gle rozwijanym. Doczekaª sie wielu rozszerze«i modykacji takich jak DAMPVM[5], pozwalaj cy na automatyczne alokowanie 3

zasobów do procesów czy migracj procesów w zale»no±ci od bie» cego obci»enia poszczególnych w zªów. PVM zostaª tak zaprojektowany by jego instalacja i uruchomienie nie wymagaªopraw administratora. Konguracja PVM skªada si z nastepuj cych kroków, które nale»y wykona na ka»dej z maszyn wchodz cych w skªad klastra: 1. ustawienie zmiennych $PVM_ROOT (katalog gdzie zostanie zainstalowany PVM) oraz $PVM_ARCH (architektura bie» cej maszyny, dla Linuxa jest to LINUX, peªna lista warto±ci znajduje si w dokumentacji). 2. rozpakowanie i zbudowanie za pomoc komendy 'make' wªa±ciwego narz dzia w katalogu wskazanego w poprzednim kroku za pomoc zmiennej systemowej $PVM_ROOT 3. zapewnienie ka»demu w zªowi mo»liwo± zalogowania si na ka»dy inny w zeª jako u»ytkownik uruchamiaj cy maszyn wirtualn Wykonawszy powy»sze kroki u»ytkownik z poziomu dowolnej maszyny wchodz cej w skªad klastra mo»e uruchomi wirtualn maszyn za pomoc polecenia 'pvm'. Uruchomiona zostanie konsola zarz dzaj ca maszyn wirtualn z poziomu której mo»liwe jest dodawanie i usuwanie maszyn, uruchamianie procesów i ich unicestwianie. 2.2 MPI W przeciwie«stwie do PVM, który jest narz dziem powstaªym przy okazji bada«, MPI jest standardem opracowanym przez Message Passing Interface Forum pocz tkowo dla j zyków C oraz Fortran 77.[9] Pierwsza wersja specykacji zako«czona zostaªa w kwietniu 1994 roku. W drugiej wersji specykacji standard rozszerzony zostaª na j zyki C++ oraz Fortran 90. Standard MPI znacz co ró»ni si od narz dzia PVM zakresem jaki pokrywa. Brakuje tutaj zarz dzania procesami, poj cia maszyny wirtualnej czy wsparcia dla interakcji z u»ytkownikiem. Standard deniuje skªadni i semantyk samego j dra funkcji zapewniaj cych przekazywanie komunikatów i jako taki mo»e zosta z punktu widzenia u»ytkownika uznany za le» cy w warstwie ni»szej ni» np. PVM. St d mo»liwe jest zaimplementowanie PVM w oparciu o MPI. W skªad standardu wchodzi mi dzy innymi komunikacja punkt-punkt, komunikacja grupowa oraz tworzenie grup procesów. MPI jako standard zostaª pozytywnie przyj ty, powstaªo wiele jego implementacji, zarówno komercyjnych jak i typu Open Source. Najbardziej znane otwarte implementacje to MPICH[10] oraz LAM-MPI[11][12]. Wybór pomi dzy implementacjami w du»ej mierze zale»y od zastosowania aplikacji oraz tego jak wydajna jest dana implementacja w przyj tym rozwi - zaniu sprz towym. Dzi ki standaryzacji u»ytkownik ma mo»liwo± bezproblemowego przetestowania swojej aplikacji na ró»nych implementacjach po prostu przekompilowuj c kod. Równie» instalacja samych ±rodowisk jest bardzo prosta, zazwyczaj skªada si z czterech kroków: 1. pobranie oraz rozpakowanie kodu ¹ródªowego implementacji standardu MPI, oraz przej±cie do katalogu gdzie ¹ródªa zostaªy rozpakowane 2. wykonanie polecenia './congure prex=/katalog/do/którego/instalujemy' 4

3. wykonanie polecenia 'make' 4. wykonanie polecenia 'make install' Proces ten nale»y wykona na ka»dej z maszyn wchodz cych w skªad klastra. Deniowanie maszyn na jakich wykonany ma zosta wªa±ciwy kod zale»y od implementacji standardu. Po wykonaniu czynno±ci mo»emy przyst pi do kompilacji aplikacji wybranym kompilatorem i jej uruchomienia za pomoc polecenia 'mpirun'. Polecenie to musi mie mo»liwo± zalogowania si z dowolnej maszyny wchodz cej w skªad klastra na dowoln inn wewn trz klastra bez konieczno±ci podawania hasªa. Najprostsz, a przy okazji i bezpieczn, metod jest autoryzacja poprzez klucze publiczne dost pnego w oprogramowaniu openssh. Generacja kluczy odbywa si za pomoc polecenia 'ssh-keygen -t dsa -b 2048'. W trakcie generacji klucza, nie nale»y podawa 'passphrase' gdy zostaniemy o to zapytani. Spowoduje to wygenerowanie klucza publicznego oraz prywatnego. Klucz prywatny zapisany zostanie w pliku 'id_dsa' a klucz publiczny w pliku 'id_dsa.pub'. Klucz prywatny nale»y skopiowa do katalogu '$HOME/.ssh/' a klucz publiczny skopiowa na wszystkie serwery, na które chcemy mie mo»liwo± logowania bez hasªa i wykona na ka»dym z tych komputerów polecenie 'cat id_dsa.pub $HOME/.ssh/authorized_keys'. Nast pnie nale»y w pliku '/etc/ssh/sshd_cong' umie±ci nast puj ce linijki: 'PubkeyAuthentication yes' oraz 'AuthorizedKeys- File.ssh/authorized_keys'. Ostatnim krokiem jest zrestartowanie demona ssh poleceniem '/etc/init.d/sshd restart'. Dwa ostatnie kroki wymagaj uprawnie«administratora. Wykonuj c powy»sz procedur na ka»dym z w zªów zapewniamy bezproblemow i bezpieczn komunikacj mi dzy procesami w klastrze. 3 openmosix Podstawow wad przedstawiona powy»ej klastrów typu Beowulf jest konieczno± tworzenia specjalnych aplikacji potra cych wykorzysta mo»liwo±ci klastra. Zazwyczaj wymaga to implementacji komunikacji za po±rednictwem PVM lub MPI. Konieczno± ta mocno zaw»a grup odbiorców do badaczy i naukowców jednak uniemo»liwia wykorzystanie klastrów u»ytkownikom o mniejszych zdolno±ciach programistycznych. Za pomoc mechanizmu przekazywania komunikatów nie jest mo»liwe po porstu poª czenie kilku komputerów sieci LAN i uzyskanie przez to wi kszej ich ª cznej wydajno±ci. Do takich wªa±nie zastosowa«stworzono MOSIX. Jest to system, który pozwala na traktowanie klastra, z punktu widzenia dziaªaj cych na nim aplikacji, jako jednej maszyny wieloprocesorowej (Rysunek 2). Zadania uruchomione na stacji roboczej u»ytkownika s automatycznie rozsyªane na inne w zªy klastra, gdzie zostan wykonane. Po ich zako«czeniu wynik oblicze«zwracany jest na maszynie, z której oryginalnie uruchomiono zadania.[2] Ró»nica polega jedynie na tym,»e w zwykªej maszynie wieloprocesorowej komunikacja mi dzy procesorami jest bardzo szybka, gdy» wszystkie procesory poª czone s wspóln szyn. W przypadku MOSIX komunikacja ograniczona jest pr dko±ci sieci wi c zakres zastosowania klastra jest ograniczony do zada«nie zawieraj cych du»ej ilo±ci komunikacji. Równie», w przeciwie«stwie do maszyn z technologi Hyper Threading czy Dual Core, openmosix nie potra rozprasza w tków jednej aplikacji - migracji podlega mog jedynie caªe 5

Rysunek 2: Z punktu widzenia u»ytkownika jak i wykonywanych zada«klaster zachowuje si jak maszyna wieloprocesorowa procesy. Nic nie stoi jednak na przeszkodzie by jako w zªy klastra zastosowa maszyny wyposa»one w odpowiedni technologi. W 2001 roku projekt MOSIX zmieniª licencj na niezgodn z GPL. W odpowiedzi na ten krok jeden z twórców MOSIX'a uruchomiª aktywnie obecnie rozwijany projekt openmosix maj cy zapewni ci gªy dost p u»ytkowników do wolnej wersji systemu. Wkrótce wi kszo± u»ytkowników przeszªa z MOSIX na openmosix a sam system doczekaª si wielu zaawansowanych funkcji. Obecnie openmosix jest bardzo rozbudowanym systemem oferuj cym mechanizmy równowa»enia obci»e«oraz migracji procesów. Co wa»ne potra migrowa na mniej obci»one w zªy praktycznie dowolne procesy linuxowe - nie jest wymagana»adna modykacja kodu czy ponowna kompilacja aplikacji. Mo»- liwe jest nawet migrowanie procesów potomnych utworzonych instrukcj fork() na ró»ne maszyny. Równocze±nie systemy oparte o openmosix kontroluj stan poszczególnych w zªów i s w stanie reagowa na doª czanie nowych maszyn do klastra czy upadek ju» do niego podª cznych w sposób nie zagra»aj cy wykonywanej aplikacji. Przez to openmosix doskonale nadaje si do pracy wsz dzie tam gdzie nie mo»emy pozwoli sobie na tworzenie specjalistycznego oprogramowania a konieczne jest jak najlepsze wykorzystanie posiadanego sprz tu. Aby uruchomi klaster oparty o openmosix u»ytkownik musi posiada : dowoln ilo± komputerów poª czonych sieci. Im bardziej wydajne ª cza tym migracja, a tym samym wydajno± caªegoklastra b dzie lepsza. na ka»dym w ¹le zainstalowane j dro z obsªug openmosix na ka»dym w ¹le zainstalowany pakiet openmosix Userland dostarcza- 6

j cy zestaw narz dzi niezb dnych do pracy klastra na ka»dym w ¹le w pliku /etc/fstab umieszczony wpis 'mymfs /mfs fs dfsa=1 0 0' oraz utworzony katalog /mfs, w którym zamontowany zostanie wspólny system plików wszystkich w zªów Komplet wymaganego oprogramowania dost pny jest pod adresem WWW http://openmosix.sourceforge.net. Mo»na równie» zastosowa ju» gotowe j dra systemu linux dost pne w praktycznie ka»dej wi kszej dystrybucji. Po zainstalowaniu wymaganego oprogramowania u»ytkownik musi jeszcze tylko na ka»dym z w zªów w pliku /etc/mosix.map zdeniowa jakie komputery wchodz w skªad klastra. Ostatnim krokiem jest uruchomienie demona obsªuguj cego migracj procesów poleceniem '/etc/init.d/openmosix start'. Tak utworzony klaster jest gotowy do u»ycia. Za pomoc narz dzia 'mmon' (w niektórych dystrybucjach systemu Linux narz dzie to nazywa si 'mosmon') u»ytkownik mo»e ±ledzi rozkªad obci»enia na poszczególne w zªy. Wystarczy teraz na jednym z w zªów uruchomi dowoln ilo± procesów, których nie trzeba w»adne sposób wcze±niej przygotowywa, i ju» po chwili zostan one rozesªane na wszystkie w zªy klastra w sposób równowa» cy obci»enie. W ten oto sposób niskim nakªadem pracy i przy niskich kosztach mo»na stworzy wydajny klaster komputerowy ogólnego zastosowania. 4 Podsumowanie Dzi ki swojej otwarto±ci i dost pno±ci Linux staª si podstawowym narz dziem pracy w przypadku przetwarzania rozproszonego, zwªaszcza w badaniach naukowych czy wszelkiego rodzaju symulacjach. Mnogo± dost pnych mechanizmów umo»liwiaj cych prac rozproszon jest ogromna, w tej pracy pobie»nie przedstawiono jedynie najwa»niejsze z nich. Praktycznie ka»dego dnia powstaj nowe, coraz lepsze implementacje najró»niejszych standardów wzbogacaj cy zestaw ju» dost pnych narz dzi i powoduj cych,»e ka»dy potencjalny u»ytkownik znajdzie rozwi zanie w peªni odpowiadaj ce jego potrzebom. Literatura [1] Linux Online, Inc., Linux Online FAQ, http://www.linux.org/lininfo/faq1.html [2] Wawryniuk, I., 2005, Klastry oparte na systemie operacyjnym Linux jako rozwi zanie zwi kszaj ce wydajno± i niezawodno± systemów informatycznych, http://www.klastry.org.pl/ [3] Brown, R. G., 2004, Engineering a Beowulf-style Compute Cluster, Duke University Physics Department, Durham, http://www.phy.duke.edu/ rgb/beowulf/beowulf_book/beowulf_book/index.html [4] Geist, A., Beguelin, A., Dongarra, J., Jiang, W., Manchek, R., Sunderam V., 1994, PVM: Parallel Virtual Machine. A Users' Guide and Tutorial for Networked Parallel Computing, Massachusetts Institute of Technology, MIT Press, Cambridge, http://www.netlib.org/pvm3/book/pvmbook.html 7

[5] Czarnul, P., Krawczyk, H., 1999, Dynamic Assignments of Applications in Distributed Environments, Faculty of Electronics, Telecommunications and Informatics, Gdansk University of Technology, Poland [6] Imhof, M., Andrews, M., 2003, Klastry openmosix w Gentoo, Dokumentacja Gentoo Linux, http://www.gentoo.org/doc/pl/openmosix-howto.xml [7] Lever, Ch., Linux NFS Frequently Asked Questions, http://nfs.sourceforge.net/ [8] Barr, T., Langfeldt, N., Vidal, S., McNeal, T., 2002, Linux NFS-HOWTO revision v3.1, http://nfs.sourceforge.net/nfs-howto/ [9] MPI Forum, The Message Passing Interface Standard, http://www.mpiforum.org/docs/docs.html [10] Gropp, W., Lusk, E., Installation and User's Guide to mpich, a Portable Implementation of MPI Version 1.2.5. The chp4 device for Workstation Networks, http://www-unix.mcs.anl.gov/mpi/mpich/docs/mpichmanchp4/mpichman-chp4.htm [11] The LAM/MPI Team, Open Systems Lab, 2004, LAM/MPI User's Guide, http://www.lam-mpi.org/download/les/7.1.1-user.pdf [12] The LAM/MPI Team, Open Systems Lab, 2004, LAM/MPI Installation Guide, http://www.lam-mpi.org/download/les/7.1.1-install.pdf 8

Indeks rzeczowy klaster, 1 MPI, 4 autoryzacja, 5 konguracja, 4 LAM-MPI, 4 MPICH, 4 openmosix, 1, 5 ±ledzenie obci»enia, 7 konguracja, 6 migracja procesów, 6 PVM, 3 DAMPVM, 3 konguracja, 4 PVM3, 3 NFS, 1 architektura, 2 konguracja, 2 kryptograa, 2 9

Indeks autorów Boi«ski T., 1 10