Porównanie Unixowych systemów plików



Systemy: NFSv4, RFS



Krzysztof Nozderko









NFSv4

 

Cele postawione przed NFSv4:

 

 

Czym NFSv4 różni się od NFS?

 

1. Wprowadzono złożone procedury

2. Lepsze umiędzynarodowienie


3. Zmienne uchwyty plików

3a. dawniej

3b. W NFSv4 obok "persistent file handles" (o semantyce takiej jak dawniej) mamy "volatile file handles"

 

4. Wprowadzono klasy atrybutów

   
  • obowiązkowe - m. in.: typ pliku, rozmiar, informacje nt. czasu wygaśnięcia uchwytów, czy wspierane są dowiązania (twarde i miękkie) i czy plik ma atrybuty z kategorii rozszerzonych (named)
  • zalecane - informacje takie jak typ ACLs (Access Control Lists) wspierany przez system plików, (samo) ACLs, informacja o użytkowniku i grupie, stemplach czasowych dostępu, atrybuty quoty, informacje na temat systemu plików takie jak wolne miejsce, całkowita liczba plików, ograniczenia systemowe takie jak maksymalna długość nazwy, maksymalna liczba dowiązań
  • rozszerzone (ang. named) - pozwalają by plik miał wiele strumieni danych (w Unixie plik może mieć tylko jeden)

 

5. Lepsze wykorzystanie przestrzeni nazw

 

6. Pseudosystem plików

zalety: maksymalna elastyczność; można zmieniać nazwy plików/katalogów na serwerze w sposób przezroczysty dla klienta

 

7. Blokowanie plików

 

8. Stany

   
  • serwer stracił wszystkie stany, ogłasza więc okres łaski trwający ustaloną ilość czasu
  • w tym czasie klienci powinni zarejestrować związane z nimi stany na serwerze
  • operacje tworzące nowe stany (open, close) są w tym czasie niedostępne
  • klient orientuje się, że serwer uległ awarii i trwa czas łaski w momencie, gdy żądanie wysłane serwerowi zwróci ERR_GRACE

 

9. Użycie pamięci podręcznej u klienta

 

10. Wbudowane bezpieczeństwo

   
  • dawniej, jeżeli klient był w sieci objętej firewall-em a serwer był na zewnątrz tej sieci, firewall musiał znać porty, które nasłuchiwali portmapper, Mount i serwer NFS. Serwer Mount mógł nasłuchiwać dowolny port (zwykle 2049). Portmapper nasłuchuje zawsze na tym samym porcie (111). Niektórzy przesadnie ostrożni administratorzy blokowali port 111 z wnętrza firewall-owanej do serwerów poza siecią.
  • w NFSv4 nie ma protokołu Mount, serwer nasłuchuje zawsze port 2049, więc klienci nie muszą kontaktować się z portmapperem, nie ma zmiennych portów, co upraszcza konfigurację firewall-a

 

11. NFSv4 udostępnia się różnym internetowym aplikacjom

 

 

Cecha

Korzyść

NFS v2

NFS v3

NFS v4

Pamiętanie cache-u na lokalnym dysku

Poprawia działanie klienta zwiększając dostępny obszar cache-a

OK.

OK.

OK.

Automatyczne montowanie

Czyni globalne systemy plików ciągłymi i przezroczystymi pod względem dostępu

OK.

OK.

OK.

Scentralizowane zarządzanie

Redukuje czas i wysiłek wkładany w zwykłe zadania administracyjne

OK.

OK.

OK.

Globalna przestrzeń nazw systemu plików

Tworzy nazwy ścieżek do plików, które są poprawne w całej sieci więc użytkownicy i aplikacje mogą się swobodnie poruszać

OK.

OK.

OK.

Ustalanie z klientem wersji protokołu obsługiwanego przez serwer

Klienci i serwery negocjują, który protokół użyć w oparciu o te które oboje obsługują. Kompatybilność wsteczna.

OK.

OK.

OK.

Zmniejszona ilość żądań atrybutów

Poprawia skalowalność i działanie

 

OK.

OK.

Zmniejszona ilość żądań wyszukiwania informacji

Poprawia skalowalność i działanie

 

OK.

OK.

Asynchroniczny zapis

Poprawia wydajność zapisu przez klienta

 

OK.

OK.

Złożona procedura

Lepsze działanie w sieciach z dużymi opóźnieniami

   

OK.

Używanie dobrze znanego portu 2049 dla usług NFS

Łatwiejsza transmisja przez firewall-e

   

OK.

 

 

RFS - Remote File Sharing




RFS (Remote File Sharing) - wprowadzony w 1986 przez AT&T

Cele - umożliwienie przezroczystego dostępu poprzez sieć do zasobów dyskowych i urządzeń zewnętrznych na płaszczyźnie UNIX-a

 

Architektura RFS:

   
  • cały system plików
  • pojedyncze katalogi (mogące zawierać także pliki specjalne systemu UNIX)
  • katalogi już zamontowane przez NFS lub RFS (więc komputer bezdyskowy może być serwerem)

Każda dziedzina poprzez swój serwer nazw zarządza swymi nazwami zasobów oraz zapewnia im ochronę

Serwer emuluje kontekst podobny do kontekstu klienta by obsługiwać zdalne wywołania procedur (identyfikatory procesów, użytkowników, grup, maski użytkowników (umask))

   
  • Serwer przechowuje liczniki wywołań funkcji open dla każdego klienta, blokady na pliki i ich części i informacje nt. nazwanych łączy (plików FIFO)
  • Jeśli klient popsuje się, serwer musi usunąć wszystkie związane z nim stany (liczniki, blokady)
  • Jeśli serwer się popsuje, a klient to wykryje, zaznacza wszystkie i-węzły i v-węzły związane z zepsutym serwerem, tak by wszelkie próby odwołania się przez nie, kończyły się błędem (bez zbędnych prób komunikacji z serwerem).

Użycie cache-a

 

Różnice między RFS a NFSv2:




Bibliografia

[1] Steve D. Pate "UNIX Filesystems - Evolution, Design and Implementation"

[2] Brian Pawlowski "The NFS Version 4 Protocol"

[3] "NFS Version 4 - Technical Brief" Sun Microsystems

[4] Michel Gabassi, Bertrand Dupouy "Przetwarzanie rozproszone w systemie UNIX"

[5] www.citi.umich.edu.projects/nfsv4/Ols2001/index.htm