Prezentacja z Systemów Operacyjnych
AFS - Andrew File System
(Stworzony na uniwersytecie UMC)
Rafał Rusin (r.rusin@students.mimuw.edu.pl)

Czym jest AFS?

Jest to sieciowy system plików umożliwiający dostęp komputerom do pewnego zbioru plików w jednolity sposób. Udostępniane pliki są przechowywane na dyskach serwerów AFS, a dostęp do nich odbywa się poprzez Menadżera Cache'u uruchomionego na komputerze klienta. Onacza to, że udostępniane pliki znajdują się na różnych komputerach połączonych w sieć. Natomiast dostęp do nich odbywa się w ten sposób, że klient kontaktuje się z Menadżerem Cache'u na swoim komputerze, który z kolei pobiera pewną część żądanego pliku z przestrzeni plików AFS.

Przyjęte rozwiązania

Autoryzacja i autentykacja

AFS używa autoryzacji i autentykacji jako podstawowych technik wykorzystywanych przy pobieraniu plików. Przy tworzeniu nowego konta AFS użytkownik musi podać hasło. Następnie przy każdej próbie zalogowania do systemu UNIX jest proszony o wpisanie go. Gdy AFS potwierdzi poprawność hasła, wtedy użytkownik jest zaznaczony jako zautoryzowany i otrzymuje żeton.

Żetony

Żeton identyfikuje użytkownika w AFS. Jest używany w trakcie przekazywania danych pomiędzy serwerem AFS i klientem. Istnieje możliwość pracy bez autoryzacji. W tym przypadku użytkownik ma ograniczony dostęp do zasobów.
Żeton wygasa po 25 godzinach ciągłego używania. Może zostać odnowiony komendą klog.
Przy pracy w pojedynczej sesji używany jest jeden żeton do komunikacji z serwerem. W momencie, gdy użytkownik łączy się zdalnie z innym komputerem autoryzacja musi być ponowiona.

Komórki i nazwy plików

Komórka (cell) oznacza pewną grupę serwerów, udostępniających zasoby. Jeden z tych serwerów zajmuje się przechowywaniem informacji w wolumenach i odbiera zapytnia od różnych klientów, przekierowując ich odpowiednio.
AFS używa tak jak inne systemy plików drzewiastej struktury katalogów. Katalog główny, do którego jest zamontowany AFS (np. '/afs/') oznacza cały świat, podobnie jak 'http://' w internecie. Każda ścieżka AFS ma postać '/afs/komórka/ścieżka', gdzie komórka identyfikuje pewne miejsce w sieci, które udostępnia różne pliki. Natomiast ścieżka jest identyfikatorem odpowiedniego pliku w obrębie komórki.

Menadżer Cache'u (Wenus)

Jest to proces pobierający dane z serwera AFS w imieniu użytkownika. Zapamiętuje je w pamięci lokalnej, zatem użytkownik pracuje na kopii oryginalnego pliku. W momencie wykonania zapisu lub zamknięcia pliku przez użytkownika następuje przesłanie całego pliku przez sieć.
Został tu zastosowany mechanizm callback'ów, tzn. serwer zapewnia klienta, że powiadomi go o ewentualnych zmianach w pliku. Jest to nazywane "Callback Promise".
Jest dokładnie jeden Menadżer Cache'u na jednym komputerze.

Lustrzane kopie

AFS umożliwia tworzenie kopii pewnych katalogów w sieci. Odbywa się to w obrębie jednej komórki i jest niewidoczne dla użytkownika. Tworzeniem kopii zajmuje się administrator. Natomiast przekierowywaniem użytkownika do najoptymalniejszych serwerów zajmuje się Menadżer Cache'u.
W momencie, gdy użytkownik dokona zapisu pliku na lustrzanej kopii, wtedy serwer po otrzymaniu pliku rozsyła go do pozostałych serwerów. Wynika z tego, że zapis dużych plików na powielonych katalogach może być operacją bardzo obciążającą sieć i długotrwałą.

Wolumeny

Dane na AFS'ie są przechowywane na wolumenach. Każdy katalog domowy jest oddzielnym wolumenem posiadającym quotę.
Z różnych powodów AFS stara się, aby wolumeny nie przekraczały 100-200 MB. Gdy tak się zdarzy, wtedy dla odpowiadającego katalogu domowego zostaje przydzielony nowy wolumen.

Konflikty

AFS nie udostępnia wykrywania konfliktów w ogóle.

Podsumowanie

W wielu aspektach AFS jest podobny do NFS. Jednak istnieje kilka znaczących zalet AFS w porównaniu do NFS. Są to: