Opengfs Lustre I Możliwości Ich Działania W Obrębie Klastra Openssi
Total Page:16
File Type:pdf, Size:1020Kb
OpenGFS Lustre i mo»liwo±ci ich dziaªania w obr¦bie klastra OpenSSI Projekt z przedmiotu RSO.A Paweª Sªawomir Kłósek [email protected] 16 czerwca 2005 Spis tre±ci 1 OpenGFS 1 1.1 Macierz dyskowa . 1 1.2 Struktury danych . 1 1.3 Zabezpieczenia przed zagro»eniami nadpisywania plików (locks) . 2 1.4 Zabezpieczenia przed awariami . 2 2 Lustre 1.0 3 2.1 Komponenty systemu . 3 2.2 Granulacja blokad na pliki . 3 2.3 Serwer danych . 4 3 OpenSSI - Cluster File System (CFS) 4 4 Wnioski 4 1 OpenGFS OpenGFS jest systemem plików z ksi¦gowaniem, który umo»liwia współdzielenie jednego urz¡dzenia dyskowego przez kilka komputerów, w taki sposób, »e kilka kom- puterów mo»e korzysta¢ z jednego systemu plików nie nadpisuj¡c sobie wzajemnie danych. 1.1 Macierz dyskowa Współdzielenie urz¡dze« we wcze±niejszych wersjach OpenGFS mo»e si¦ odbywa¢ np. si¦ za pomoc¡ technologii Fibre Channel lub iSCSI. Jednak najwa»niejszym za- ªo»eniem tego rozwi¡zania, jest to, aby wszystkie komputery widziaªy współdzielone urz¡dzenie jako urz¡dzenie w katalogu /dev o takiej samej nazwie. Mo»na to osi¡gn¡¢ poprzez współdzielenie dowolnego urz¡dzenia dost¦pnego jako urz¡dzenie blokowe i odpowiednie zamapowanie urz¡dzenia w systemie plików /dev na ka»dym z komput- erów (odpowiednia wirtualizacja nazw w /dev). Zewn¦trzny zasób dyskowy dzielony nale»y podzieli¢ na trzy partycje 1 1 OPENGFS ´ ok. 4MB na przechowywanie informacji o macierzy (np. informacje konfigu- racyjne) ´ ok. 128MB na przechowywanie zewn¦trznego dziennika (journal) ´ reszta na przechowywanie danych dziennika wewn¦trznego 1.2 Struktury danych Dinodes (distributed inodes), s¡ jednostkami organizacji sªu»¡cymi do przechowywa- nia metadanych (czasem równie» danych je±li plik jest maªy). Ka»dy dinode zajmuje jeden blok. Dinody s¡ tworzone tylko wtedy je±li s¡ potrzebne. Plik Je±li plik jest mniejszy ni» rozmiar pliku minus 232 bajty, plik mo»na przechowa¢ w jednym dinode-zie w formacie: |meta-dane|dane z pliku| Je±li jednak plik jest wi¦kszy to dane w dinodzie s¡ przechowywane w nast¦puj¡cy sposób: |meta-dane|adres 1-go bloku danych|adres 2-go bloku danych|...| . Istnieje jeszcze trzeci format adresowania, niebezpo±redni zamiast adresów bloków z danymi mo»emy przechowywa¢ adresy do bloków z adreasami (do bloków z adresami do bloków z adresami ... ) do bloków z danymi (mo»na si¦ zagª¦bi¢ do 8 razy). Dzi¦ki tym trybom adresowania mo»emy przechowywa¢ bardzo du»e ilo±ci danych [tab 1.] Resorce groups Dane z plików umieszczane s¡ z reguªy blisko siebie w tzw. resorce block-ch, aby zmniejszy¢ liczb¦ ruchów gªowicy nad talerzami dysków. Katalogi Jest kilka metod przechowywania katalogów ´ Bezpo±rednio w dinodach bez tablicy hashuj¡cej ´ W dinodach z tablic¡ hashuj¡c¡ (hash CRC32) ´ W dinodach z adresami bloków tablicy hashuj¡cej. Warto nadmieni¢ dane na dysku s¡ przechowywane w formacie big endian. 1.3 Zabezpieczenia przed zagro»eniami nadpisywania plików (locks) W rozproszonym systemie plików na maszynach wieloprocesorowych nale»y wprowadzi¢ trzy typy blokad: ´ Mi¦dzy komputerami - je±li kilka komputerów chce skorzysta¢ z jednego bloku/pliku. ´ Mi¦dzy kilkoma procesami na jednym komputerze (wykonywana za pomoc¡ oprogramowania G-lock). ´ Wewn¡trz j¡dra systemu je±li kilka w¡tków chce skorzysta¢ z jednej struktury danych. Je±li chodzi o punkt pierwszy, to istniej¡ dwie metody zabezpieczania przed nad- pisywaniem plików jedna zcentralizowana wykonywana za pomoc¡ serwera blokad (lock server), ale wtedy oczywi±cie nie ma tolerancji na uszkodzenie wªa±nie tego serwera blokad, i rozproszona wykonywana za pomoc¡ oprogramowania OpenDLM (Open Distributed Lock Manager), przy którym s¡ z kolei problemy z wydajno±ci¡. Przy centralnym blokowaniu plików wykorzystywany jest protokół memexp, który jest podobny do protokoªu Device Memory Export Protocol (DMEP) jednak»e do 2 2 LUSTRE 1.0 transmisji informacji zamiast szyny SCSI wykorzystywana jest sie¢ lokalna przy wykorzystaniu protokoªu IP. 1.4 Zabezpieczenia przed awariami Aby zabezpieczy¢ system przed awariami spowodowanymi przez awari¦ jednego z komputerów, ka»dy komputer ma swój osobny dziennik zdarze« (journal). Dzienniki mog¡ by¢ lokalne (czyli na partycji 3) lub zewn¦trzne (czyli na partycji 2). Dzienniki s¡ po to rozdzielone, aby uszkodzony komputer nie uszkodziª innych wpisów do dziennika i aby po awarii komputera daªo si¦ szybko przeprowadzi¢ roolback). Zaªo»eniem OpenGFS jest to, »e awaria jednego z komputerów nie uszkodzi meta- danych (wi¦c struktura systemu plików nie ulegnie uszkodzeniu, jednak same dane mog¡ pozosta¢ miejscami uszkodzone). Aby zabezpieczy¢ caªy system przed awariami stosuje si¦ równie» izolowanie ¹le dziaªaj¡cych komputerów oraz ich zdalny restart, w tym celu mo»na wykorzystywa¢ watchdog-i, zdealne wyª¡czenie pr¡du przy zasilaczach programowalnych lub odci¦cie komputera od swich-a Fiber Channel. 2 Lustre 1.0 Lustre jest klastrowym systemem plików, który w odróżnieniu od OpenGFS nie bazuje na jednym komponencie na którym mo»na przechowywa¢ dane. Wedªug zaªo»e« Lus- tre ma by¢ obiektowym systemem plików, w którym obiektami s¡ dyski, komputery, pliki, katalogi itd. 2.1 Komponenty systemu System skªada si¦ z dwóch typów serwerów serwera danych i serwera meta-danych. Serwer metadanych (MDS - metadata Server) Serwer metadanych (MDS - metadata Server) Serwer meta-danych ma zadanie przechowywa¢ caª¡ struktur¦ systemu plików za wyj¡tkiem samych danych. Wedªug producenta testy wydajno±ciowe wykazaªy, »e nawet w bardzo du»ych rozwi¡zaniach jeden serwer meta-danych nie stanowi w¡skiego gardªa. Na serwerach metadanych wykorzystywany jest zmodyfikowany system plików ext3. Serwer danych (OST - Object Stograge Targets) Sªu»y do przechowywania plików (lub fragmentów plików - zale»nie od pliku). Na serwerze danych znajduje si¦ zwykªa partycja ext3 (chocia» zgodnie z dokumentacj¡ mo»e to by¢ równie» JFS, ReiserFS lub XFS). Na partycji znajduj¡ si¦ pliki o nazwach w postacinumerycznej np. „2454213” - które to s¡ numerami obiektów w systemie plików. Serwer-y LDAP Konfiguracja systemu plików mo»e by¢ przechowywana zarówno na ka»dym klien- cie, który chce skorzysta¢ z Lustre, jak równie» na pojedynczym serwerze LDAP. 2.2 Granulacja blokad na pliki Informacja o blokadach na pliki (file locks) jest utrzymywana na serwerach meta- danych. Blokady te mog¡ mie¢ różną granulacj¦ (istnienie pliku, katalog, atrybut, 3 3 OPENSSI - CLUSTER FILE SYSTEM (CFS) sektor). Dzi¦ki temu mo»na zwi¦kszy¢ wydajno±¢ - w zwykªym ext3 je±li n u»ytkown- ików chce utworzy¢ plik w katalogu /tmp, ka»dy z nich musi wykona¢ blokad¦ na /tmp, zaªo»y¢ plik i wykona¢ operacj¦ odblokownia, co mo»e by¢ niew¡tpliwie czasochªonne. W Lustre, mo»liwe jest zrobienie tego caªej tej operacji bez blokowa- nia odpowiedniego katalogu. Zabezpieczenia przed awariami Serwer meta-danych W tej wersji Lustre w sys- temie znajduje si¦ maksymalnie jeden serwer aktywny i jeden system backupowy - który przejmuje rol¦ aktywnego - gdy tylko serwer aktywny przestanie odpowiada¢. Serwer backupowy musi mie¢ mo»liwo±¢ odci¦cia zasilania lub odci¦cia serwera aktywnego od sieci, poniewa» gdyby okazaªo si¦, »e w sieci znajduj¡ si¦ dwa serwery aktywne, mogªo by to doprowadzi¢ do katastrofy. 2.3 Serwer danych System nie jest podatny na awari¦ serwerów danych, i b¦dzie po awarii b¡d¹ po odª¡czeniu serwera danych zachowywaª si¦ dalej stabilnie. Z tym, »e obiekty (pliki) przechowywane na tym serwerze przestan¡ by¢ dost¦pne. W trakcie usuwania awarii, nowe obiekty b¦d¡ tworzone na innych serwerach danych. Serwery danych mog¡ by¢ równie» redundantne, tzn. dwa serwery mog¡ by¢ podpi¦te do jednej macierzy dyskowej i po awarii jednego zawsze ten drugi mo»e pracowa¢ zamiast tego pierwszego. 3 OpenSSI - Cluster File System (CFS) W klastrze OpenSSI przyj¦to zaªo»enie, »e wszystkie zamountowane zasoby (ª¡cznie z devfs i procfs) b¦d¡ dost¦pne w formie plików - do których mo»na si¦ dosta¢ przy wykorzystaniu dowolnego komputera w sieci lokalnej. Domy±lnie w OpenSSI do speªnienia tych zaªo»e« wykorzystywany jest Cluster File System - rozwijany wª¡cznie do projektu OpenSSI. CFS jest wirtualnym systemem plików wykorzystywanym do wspódzielenia za- sobów dyskowych w klastrach OpenSSI. CFS jest przezroczysty je»eli chodzi o podmounowywanie zasobów, tzn. je±li zamountujemy obsªugiwany przez CFS fizyczny system plików (obecnie s¡ to ext2,ext3,jfs) po zamountowaniu jest on przezroczy±cie widoczny na wszystkich komputerach w klastrze. Dodatkowym wariantem CFS-a jest High Availability - Cluster File Sys- tem (HA-CFS). HA-CFS jest systemem plików opartym o macierz dyskow¡, i przy awarii jednego z komputerów podª¡czonych do macierzy macierz automatycznie prze- jmowana jest przez inny podª¡czony do niej komputer. Jest to rozwi¡zanie du»o prost- sze od OpenGFS, gdzie wszystkie komputery podª¡czone do macierzy mogªy z niej jednocze±nie korzysta¢. To rozwi¡zanie doskonale mo»e si¦ sprawdza¢ w klastrach którym głównym przeznaczeniem nie jest szybko±¢ dost¦pu do danych ale np. moc obliczeniowa - a dost¦p do wspólnych danych jest jedynie dodatkiem. Klaster OpenSSI mo»e by¢ jednocze±nie klasterm przechowuj¡cym dane Lustre'a jednak jedynym rozs¡dnym rozwi¡zaniem przy takiej konfiguracji jest korzystanie z lokalnych nie udost¦pnianych przez sie¢ przez CFS systemów plików do prze- chowywania obiektów Lustre'a. Je±li chodzi o korzystanie z zasobów Lustre'a. Mountowanie jest propagowane na wszystkie komputery w klastrze. Mo»na nadmieni¢ równie», »e caªy OpenSSI jest 4 LITERATURA dobrze zintegorowany z Lustre'm np. przy migracji procesów blokady na plikach przenoszone. Na klastrze OpenSSI da si¦ równie» korzysta¢ z danych pochodz¡cych z OpenGFS i Sistina GFS. W tej chwili da si¦ przeprowadzi¢ mountowanie zasobów OpenGFS jako dowoln¡ partycj¦ w systemie. 4 Wnioski Opisane przeze mnie klastrowe systemy plików mo»na podzieli¢ na w zasadzie na 2 kategorie - z centralnym punktem przechowywania informacji OpenGFS i HA-CFS oraz CFS (w CFS mimo, »e dane mog¡ by¢ mountowane na wielu komputerach w klastrze to jednak dla ka»dego z tych zasobów to dane s¡ przechowywane na jednym serwerze z ewentualnym serwerem awaryjnym).