Prezentacja z Systemów Operacyjnych
DFS - Distributed File System
(Stworzony przez Microsoft)
Rafał Rusin (r.rusin@students.mimuw.edu.pl)

Czym jest DFS?

DFS jest częścią Windows NT Server i Windows 2000 Server. Pozwala na wygodne wyszukiwanie i zarządzanie danymi w sieci. Łączy pliki, będące na różnych komputerach, w jedną dużą hierarchię plików i katalogów, tzw. przestrzeń nazw.
Pozwala w łatwy sposób przeglądać dostępne w sieci serwery plikowe wraz z udostępnionymi przez nie udziałami. Użytkownicy zamiast przeglądać fizyczną hierarchię sieci, zawierającą często dziesiątki udziałów, używając DFS poruszają się tylko po niewielkiej liczbie logicznych katalogów. Ułatwia to odnajdywanie istotnych informacji oraz wygodne zarządzanie w dużych sieciach.
DFS może być uważany za 'meta-udział', który zawiera w sobie różne udziały.
Umożliwia tworzenie Powielonych udziałów poprzez powiązanie jednego miejsca w przestrzeni nazw z kilkoma udziałami na różnych serwerach w trybie odczytu. Reguluje także poziomem obciążenia każdego z tych miejsc.

Podstawowe Pojęcia i Przyjęte Rozwiązania

DFS Root

Jest to główny punkt montowania systemu plików DFS - korzeń. Każdy udostępniony zasób sieciowy może być dodany do przestrzeni nazw w DFS, rozpoczynającej się w DFS Root.

Dostęp do wolumenu DFS

Używa się zwykłych nazw UNC (Universal Naming Convention), tj. np.:
\\Nazwa_Serwera_z_Zainstalowanym_Dfs\Nazwa_Udziału_Dfs\Sciezka\Plik
DFS pełni rolę pośrednika pomiędzy użytkownikiem, chcącym pobrać pewien zasób, a docelowym serwerem, który go udostępnia.
Do wolumenu DFS można dodawać w zasadzie dowolne zasoby, do których można się dostać, używając scieżek UNC.

Udostępnianie wolumenu DFS na serwerze

W sieci może znajdować się wiele różnych wolumenów DFS. Na pojedynczym serwerze z zainstalowanym Windowsem NT Server lub 2000 Server może znajdować się tylko jeden taki wolumen. Byćmoże w kolejnych wersjach oprogramowania serwera zostanie to zmienione, jednak na razie nie ma takiej potrzeby.

Przykładowy wolumen DFS

Wyobraźmy sobie pewną korporację, w której pracownicy chcą mieć dostęp do dokumetów tworzonych przez innych pracowników. Struktura wolumenu DFS może wyglądać następująco:

Nazwa UNC Przekierowanie Opis
\\Server\Public \\Server\Public DFS Root przykładowego wolumena DFS
\\Server\Public\Intranet \\IIS\Root Dowiązanie (junction) do punktu startowego intranetu
\\Server\Public\Intranet\CorpInfo \\Marketing\Info\Corporate_HTML Dowiązanie do opisu zawartości sieci intranet pewnej korporacji
\\Server\Public\Users \\Server\Public\Users Katalogi domowe różnych użytkowników
\\Server\Public\Users\Bob \\Server\Public\Users Dowiązanie do katalogu Boba, znajdującego się na serwerze z DFS.
\\Server\Public\Users\Bob\Java_Apps \\Bob1\Data\Java_Apps Dowiązanie do katalogu roboczego Boba, znajdującego się na jego własnym komputerze.
\\Server\Public\Users\Bob\Java_Apps \\Bob2\Backups\Java_Apps Powielony wolumen (Alternate Volume): Ręcznie utrzymywana kopia zawierająca prace Boba
\\Server\Public\Users\Ray \\Server\Public\Users Wolumen Końcowy (Down-level Volume) : dowiązanie do wolumenu innego niż SMB (np. NetWare albo NFS)


Niektóre z powyższych pojęć wymagają dokładniejszego wyjaśnienia:

Dowiązania Pośrednie (Post-junction junctions)

Są to dowiązania nie zawarte w DFS Root. Dzielą się na dwa typy:
Dowiązania między DFS'owe (Inter-Dfs Links)
W momencie, gdy użytkownik wchodzi do katalogu, będącego dowiązaniem do innego serwera, zostaje on automatycznie przekierowany. Dzieje się to w sposób niewidoczny dla niego.
Dowiązania Skokowe (Mid-level Junctions)
Są one jak na razie nie zaimplementowane. Byćmoże pojawią się w przyszłych wersjach oprogramowania, zawierających Directory Service. Ich koncepcja jest następująca: wszystkie te dowiązania będą się znajdować na głównym serwerze, co pozwoli na szybkie wyszukiwanie docelowego serwera (w przypadku głębokich zagnieżdżeń może być to zauważalna różnica), a także zmniejszy liczbę błędnych odpowiedzi, w przypadku gdy pośrednie serwery stają się niedostępne.

Powielone Wolumeny (Alternate Volumes)

Jeżeli dwa miejsca w sieci mają identyczną zawartość, można wtedy zamontować je jako jeden punkt na wolumenie DFS.
Ilość powielonych wolumenów w jednym dowiązaniu jest ograniczona do 32.
DFS nie sprawdza, czy oba te miejsca mają taką samą zawartość. A więc może się zdarzyć zamontowanie różnych wolumenów jako te same, chociaż nie polecam tego.

Wolumeny Końcowe (Down-level Volumes)

Każdy wolumen udostępniany przez system Windows NT Server w wersji 4.0, bądź kolejnej, ma możliwość tworzenia Dowiązań Pośrednich do podrzędnych serwerów DFS. Pozostałe wolumeny są końcowe i nie mają tej własności.

Partition Knowledge Table (PKT)

PKT zawiera informacje o wszystkich potrzebnych dowiązaniach, zarządzana przez administratora komputera z postawionym DFS'em.
Jest to posortowana tablica, służąca do wyszukiwania dowiązań. Pojedynczy wpis zawiera około 300 bajtów i wygląda tak:

Ścieżka DFS Lista Powielonych Dowiązań złożona z [Serwer+Udział], albo pojedyncze dowiązanie TTL - Time To Live
.. .. ..

Cechy PKT, w zależności od miejsca występowania: W momencie, gdy klient chce przeskoczyć przez pewne dowiązanie, sprawdza, czy nie znajduje się w jego tablicy PKT z pamięci RAM. Gdy to się nie powiedzie, wtedy kontaktuje się z serwerem i dostaje odpowiedź.
Jeżeli dowiązanie jest Powielonym Wolumenem, wtedy klient otrzymuje wszystkie występujące dowiązania, zapamiętuje je i wybiera losowo jedno z nich. Standardowo po odebraniu dowiązania czas życia TTL jest ustawiany na 5 minut, przy czym każde ponowne użycie powoduje jego odświeżenie.

Transformacja adresów logicznych na fizyczne

Sytuacje błędne podczas korzystania z Powielonych Wolumenów

Możliwe są cztery scenariusze: