Skip to content

GRID Systemy Informatyczne

OpenAFS Utwórz PDF

W 1983 roku w ramach projektu “Andrew” w Carnegie Mellon University(CMU) rozpoczęto we współpracy z firmą IBM prace nad wdrożeniem w sieci uniwersyteckiej rozproszonego środowiska obliczeniowego.W ramach tego projektu opracowano sieciowy system plików AFS - “Andrew File System”.

System AFS-1 został wydany już po roku od rozpoczęcia prac w CMU i był próbą do zaprojektowania systemu który nadawałby sie do użycia w praktyce.

W 1986 roku powstał AFS-2 będący rozwinięciem początkowego projektu i który jednocześnie stał się bazą do opracowania systemu Coda wprowadzającego rozszerzenie funkcjonalności. W tym samym roku powstał kolejna wersja AFS-3, która jako pierwsza z wersji AFS została użyta poza Uniwersytetem Carnegie Mellon.Kolejnym ważnym rokiem w rozwoju systemu AFS stał się rok 1988 kiedy to na Uniwersytecie Michigan w ramach projektu nazwanego Institutional File System zastosowano system AFS w komputerach typu mainframe. W tym czasie zwiększono bezpieczeństwo systemu jego wydajność, rozbudowano o procedury pozwalające na kontynuowanie prac a także w przypadku czasowej niedostępności serwera możliwość synchronizacji danych.

Procedura synchronizacji danych w przypadku AFS stanowi o sile tego systemu, podnosi jakość pracy w przypadku stacji roboczych połączonych z serwerem za pomocą stałych łączy ponieważ do minimum została ograniczona wrażliwość na awarie sieci, oraz pozwala na efektywne korzystanie w sieci z komputerów które łączą sie z serwerem za pomocą nietrwałych połączeń sieciowych np.komutowanych.

W roku 1989 system został skomercjalizowany przez założoną w tym celu firmę ,,Transarc Corporation”.

Kolejny przełomem w rozpowszechnianiu AFS był roku 1993 kiedy to w Szwecji na Uniwersytecie Technicznym Kungla Tekniska w Hogskolan rozpoczęto projekt Arla - niezależną implementację Open Source systemu plików AFS.

W roku 1998 ,,Transarc Corporation” została wykupiona przez IBM i funkcjonuje jako firma IBM Transarc Labs, która w roku 2000 wydała implementację AFS-3 określaną jako OpenAFS udostępnianą na zasadach licencji Open Source (IBM Public License - IPL ).

W chwili obecnej dostępne i aktywnie rozwijane implemetacje AFS to:

- IBM OpenAFS

-Arla

-RedHatAFS

System OpenAFS jest systemem typu klient-serwer. W odniesieniu do systemów z rodziny AFS1 właściwym jest określenie: serwery baz danych i plików, gdyż na proces serwera AFS składają sie procesy zarządzające systemem plików, uwierzytelniające i zabezpieczeń, które w istocie są rozproszonymi bazami danych. Nad poprawnym działaniem powyższych procesów/serwerów działa proces zarządcy ( bosserver) kontrolujący poprawne ich działanie a co za tym idzie : kontrolujący działanie całego systemu.

Podstawową jednostką systemu jest komórka (ang. cell) gromadząca w jednej logicznej przestrzeni serwery i klientów AFS serwery działające w obrębie komórki udostępniają stacjom klienckim drzewo katalogów, którego struktura nie jest uzależniona od lokalizacji tak serwera jak i klienta. Innymi słowy mówiąc: drzewo katalogów jest dostępne w tej samej postaci dla każdego komputera będącego członkiem danej komórki .

 

Pliki w AFS są grupowane w jednostki logiczne zwane woluminami, które są podstawowym elementem systemu plików udostępnianym przez serwer. Podział ten jest przezroczysty dla użytkownika - nie wie on na jakim serwerze jest umieszczony wolumin, z którego aktualnie korzysta, lokalizacja woluminów leży po stronie serwera a nie klienta jak to ma miejsce w innych systemach plików.

Komórka AFS

Komórka (ang. cell) jest domeną administracyjna systemu AFS. Każdy jej administrator decyduje w jaki sposób stacje klienckie będą skonfigurowane i ile przestrzeni dyskowej zostanie przydzielone dla konkretnego użytkownika systemu. Organizacją odnoszącą się do komórki może być sieć korporacyjna, uniwersytecka lub dowolnie zdefiniowana grupa użytkowników. Z perspektywy urządzeń sieciowych komórka jest grupą komputerów pełniących rolę klientów bądź serwerów będących jej elementami.

Używając konwencji AFS, przestrzeń komórki określa pierwszy poziom podkatalogów katalogu /afs. Dla przykładu : komórka organizacji o domenie internetowej nazwa.komórki będzie zawarta w podkatalogu /afs/nazwa.komórki/.

Jeśli komórka posiada wydzielony obszar w przestrzeni plików to może również połączyć się z przestrzenią innych komórek AFS. W rezultacie otrzymuje się zwiększoną przestrzeń dyskową.

Komórkę, której elementem jest konkretna stacja kliencka określa się jako lokalną bądź domową komórką klienta. Wszystkie inne komórki w przestrzeni AFS są postrzegane od strony klienta jako obce ( ang. foreign cells).

Jedną z cech charakterystycznych dla systemów AFS jest przezroczystość dla klienta. Oznacza to, że struktura udostępnianego przez serwery OpenAFS drzewa katalogów jest niezależna od położenia stacji klienckiej. Jest to wynikiem zastosowania wcześniej opisanej konwencji w sposobie montowania systemu plików po stronie klienta, jak i zastosowaniu bazy danych zawierającej szczegółowe informacje o aktualnym stanie systemu wraz z lokalizacją woluminów w odniesieniu do serwera, na którym udziały są umieszczone. Na wszystkich stacjach klienckich system plików AFS jest montowany w katalogu /afs/nazwa.komórki/udział. Podczas odwołania użytkownika do pliku lub katalogu w systemie, na podstawie ostatniego punktu montowania w ścieżce dostępu do tegoż pliku lub katalogu, jest określany właściwy wolumin. Następnie, poprzez odpytywanie bazy danych, sprawdzane jest położenie serwera ten wolumin udostępniającego.

Członkostwo komputerów pełniących rolę serwerów bądź klientów jest w danej chwili ściśle określone. Znaczy to, że przynależący do danej komórki komputer nie może być członkiem innej. Z kolei użytkownik systemu może posiadać konta w więcej niż jednej komórce. Z tym, że podczas procesu logowania do stacji klienckiej, to stacja określa komórkę domową użytkownika. Pozostałe komórki, w których posiada on konto są z jego perspektywy niedostępne. Wynika to z faktu, iż podczas procesu logowania uruchamiany jest jeden proces buforujący system plików przypisany do konkretnej przestrzeni systemu OpenAFS .

W komórce, z przyczyn nadmiarowości oraz polepszenia wydajności, jest z reguły uruchomionych kilka serwerów na różnych hostach (komputerach). Każdy serwer AFS ma wbudowana dwupoziomową hierarchię.

Na pierwszym poziomie działa proces zarządcy odpowiedzialny za prawidłowe funkcjonowanie procesów serwera AFS. W przypadku awarii któregoś z nich ponownie go uruchamia, a w razie potrzeby wywołuje proces salvager’a (opisany des:salvager) oraz udostępnia mechanizmy administracyjne;

Na drugim poziomie działa właściwy serwer plików oraz serwer baz danych, utrzymujący dane oraz ich repliki na innych hostach, wykonane za pomocą Ubik ( opis poniżej). Serwer plików oraz aplikacje klienckie ( arld/afsd1 ) korzystają z serwera baz danych do lokalizacji woluminów, haseł użytkowników itp [1, 14].

Ubik jest rozproszoną bazą danych a właściwie obszernym, rozproszonym plikiem zawierającym rekordy tego samego typu, na którym można wykonywać operacje read/write/lseek. Ważną jego własnością jest to ,że udostępnia mechanizmy gwarantujące utrzymanie spójnych danych w systemie oraz prawidłową aktualizację przeprowadzaną w trakcie jednego procesu w sposób niewidoczny dla użytkowników. Aktualizacja odbywa sie poprzez elekcję: nowo startujący serwer rozgłasza w sieci wiadomość, ze przypuszczalnie jest serwerem podstawowym. Jeśli otrzyma informacje zwrotną o podobnej treści z jednego bądź kilku innych serwerów to rywalizację wygrywa ten który w sieci działa najdłużej. Jeśli nie uda sie rozstrzygnąć na podstawie tych danych który z serwerów ma pełnić role serwera podstawowego to zostaje nim serwer z najniższym adresem IP. Jeśli serwer jest serwerem podporządkowanym (slave) to uaktualnia bazę danych do bieżącej wersji z tak wytypowanego serwera podstawowego. Aktualizacja może jednak zostać wykonana tylko wtedy jeśli w sieci dostępnych jest minimum połowa serwerów komórki. Jeśli ten warunek jest spełniony i jednoznacznie został określony serwer podstawowy następuje aktualizacja baz danych wszystkich serwerów a jej wersja jest podwyższana .

W komórkach AFS wszystkie serwery posługują się Ubik do przechowywania swoich danych.


 

 

 

Statystyka

OS: FreeBSD
PHP: 5.2.6
MySQL: 5.0.66a-log
Czas: 22:49
Caching: Enabled
GZIP: Disabled
Użytkownicy: 2
Nowości: 46
Adresy stron: 15
gości: 85752