Systemy plików

Systemy plików

Autor: Marcin Hałaczkiewicz

Opublikowano: 11/16/2006, 12:00 AM

Liczba odsłon: 31093

Dane to najważniejsze zasoby współdzielone w sieci. Podstawą ich udostępniania są systemy plików, które zarządzają sposobem ich zapisu na dysku, a także mechanizmami ich współużytkowania.

Zastanówmy się czym w zasadzie jest system plików. Dane na dysku twardym zapisywane są w postaci zer i jedynek, a dokładniej te zera i jedynki są reprezentowane przez odpowiednie orientacje magnetycznych cząstek. Kiedy chcemy wgrać jakieś pliki na dysk, nie jest to wbrew pozorom takie proste. System operacyjny musi wiedzieć gdzie jest już coś zapisane, a gdzie znajduje się wolne miejsce. Właśnie system plików zajmuje się śledzeniem tych wszystkich informacji i to w zasadzie jest jego podstawową rolą (oczywiście istnieją również inne funkcje). To samo dotyczy odczytu z woluminu. System musi wiedzieć gdzie dana informacja się znajduje.

System plików FAT32

Najpierw trochę historii. Pierwsza wersja systemu FAT (ang. file allocation table) pojawiła się w systemie MS-DOS. Rozwinięcie skrótu FAT w polskim tłumaczeniu to tablica alokacji plików. Właśnie taki spis używany był do śledzenia stanu dysku, tj. posiadał informacje na temat wolnych oraz zajętych przestrzeni na nim oraz potrafił identyfikować uszkodzone fragmenty, aby uniemożliwić ich wykorzystywanie. Pierwsze wersje FAT-u zostały zaprojektowane głównie z myślą o dyskietkach oraz naprawdę niewielkich dyskach twardych (pamiętajmy, że miało to miejsce w latach '80). W 4. wersji MS-DOS pojawił się FAT16, który mógł już obsługiwać nośniki do 2 GB. Ta wersja królowała aż do wydania Windows 95 (włącznie). Powoli jednak zaczęły ujawniać się problemy. Gdy pojawił się Windows 95, coraz powszechniejsze w użyciu stawały się dyski powyżej 2 GB, poza tym FAT16 niezbyt wydajnie zarządzał klastrami na większych woluminach (partycja lub dysk logiczny).
No ale czym są klastry? Odpowiedź wcale nie jest skomplikowana. Dysk twardy podczas formatowania dzielony jest na małe fragmenty zwane właśnie klastrami. Każdy plik musi być zapisany w co najmniej jednym takim segmencie. Ponadto w jednym takim obszarze może być zapisany kawałek tylko jednego pliku. Zbyt duży rozmiar klastra powoduje nieefektywne wykorzystywanie przestrzeni dyskowej. Wyobraźmy sobie taką sytuację: mamy plik o wielkości 17 KB i chcemy zapisać go na dysk z systemem FAT16, gdzie rozmiar klastra dla woluminów 1,025 GB - 2 GB wynosi 32 KB. Po zapisaniu naszego pliku zostaje jeszcze 15 KB zmarnowanego miejsca. Gdyby rozmiar klastra wynosił np. 4 KB, to plik zostałby zapisany w czterech pełnych segmentach i w kawałku jeszcze jednego. Zmarnowałoby się jedynie 3 KB w piątym klastrze.
Z ww. obszarami związane jest jeszcze jedno pojęcie - fragmentacja. Wyobraźmy sobie, że kasujemy plik z dysku twardego. Po tej operacji pomiędzy pozostałymi zapisanymi danymi powstaje wolna przestrzeń. Jeśli spróbujemy później zapisać inne informacje, to prawdopodobnie będą one wgrane fragmentami właśnie w takich lukach. Po próbie ich odczytu głowica dysku będzie musiała przeskakiwać z miejsca w miejsce co spowoduje wydłużenie czasu dostępu do danych. Jeśli partycja będzie podzielona na małe klastry, to plik będzie bardziej pofragmentowany. W przypadku dużych klastrów fragmentacja będzie mniejsza, a także będziemy mogli utworzyć większe partycje, ale miejsce będzie mniej efektywnie wykorzystywane. (większe partycje dlatego, że system plików może obsługiwać jedynie ograniczoną liczbę klastrów). Na szczęście proces fragmentacji jest odwracalny. Jeśli chcemy zdefragmentować dysk wchodzimy w lokalizacje Mój Komputer, klikamy prawym przyciskiem na interesującą nas partycję i wybieramy Właściwości. Przechodzimy na zakładkę Narzędzia i klikamy w przycisk Defragmentuj. Za pomocą tego narzędzia możemy zarówno przeanalizować wolumin pod kątem fragmentacji jak i uporządkować go.

Kolejną wersją FAT-u był FAT32, który po raz pierwszy pojawił się w Windows 95 OSR 2. System ten obsługiwał już partycje do 2 TB (2048 GB), a jeśli partycja była nie większa niż 8 GB, to rozmiar klastra wynosił 4 KB. Nieefektywny rozmiar 32 KB był stosowany dopiero na woluminach powyżej 32 GB. FAT32 jest znacznie bardziej niezawodny niż FAT16, między innymi dlatego, że przechowuje kopie zapasową tablicy alokacji plików, co pozwala mu na skorzystanie z niej w razie uszkodzenia bądź utraty podstawowego spisu. FAT32 stał się standardowym systemem plikowym w produktach Microsoftu. Obsługiwany jest przez wszystkie systemy operacyjne wydane po jego premierze w Win 95 OSR 2. Ponadto jest on obsługiwany przez wiele innych systemów (jak np. Linux).

System plików NTFS

NTFS powstał na początku lat '90 w momencie, gdy Microsoft postanowił wejść na rynek serwerów, gdzie do tej pory królowały systemy Novell, NetWare, Unix i OS/2. Należało opracować system plików, który sprostałby wygórowanym wymaganiom sieci opartych na serwerach, takim jak wysokie bezpieczeństwo i niezawodność. NTFS niemal całkowicie odbiegał od swojego poprzednika FAT16 (FAT32 jeszcze wtedy nie istniał). Nie stworzono go na podstawie starych rozwiązań, ale zupełnie od zera. NTFS pojawił się w 1993 roku razem z premierą systemu Windows NT. Wraz z pojawianiem się kolejnych systemów operacyjnych obsługujących to rozwiązanie (Windows 2000, Windows XP), pokazywały się również kolejne odsłony NTFS-a.
Podczas powstawania systemu plików, mającego spełnić wymagania serwerów, postawiono na kilka kluczowych spraw:

  • Bezpieczeństwo
    Tego punktu w ogóle nie było w systemie FAT. Wprawdzie można było używać osobnych programów do zabezpieczania danych, jednak W FAT-cie nie było żadnych funkcji mających na celu ochronę danych, co jest niezwykle ważne podczas zastosowań sieciowych.
  • Efektywna obsługa dużych dysków
    Każdy serwer sieciowy musi być zdolny do obsługiwania dużych dysków, ze względu na samą ideę zastosowań tych komputerów. Ponadto system musi być uodporniony na błędy powstałe w wyniku np. nagłego odcięcia prądu, tzn. w wyniku takiej awarii dane nie mogą zostać utracone. Mechanizmem zapewniającym odporność na takie usterki jest wewnętrzna obsługa macierzy dyskowych RAID (ang. redundant array of independent disks - nadmiarowa macierz niezależnych dysków), w który NTFS został wyposażony. Taka macierz, jeśli jest odpowiednio skonfigurowana, uodparnia system na błędy. Jeśli chodzi o dużą pojemność dysków, to NTFS pozwala na używanie nośników do 16 TB, co wystarcza nawet w dzisiejszych czasach. Ponadto NTFS używa klastrów o małych rozmiarach (zazwyczaj 4 KB) co zapewnia efektywniejsze wykorzystanie przestrzeni dyskowej.
  • Niezawodność.
    Każdy serwer musi być niezawodny. W NTFS występują elementy (jak choćby macierze RAID), które do tej niezawodności się przyczyniają. Dodatkowo NTFS jest tzw. dziennikowym systemem plików. Oznacza to, że system cały czas monitoruje zapis na dysku twardym i w razie np. odcięcia prądu może bez problemu usunąć ewentualną usterkę poprzez cofnięcie niedokończonych zmian.
  • Długie nazwy plików.
    Może nie jest to tak ważne, by mówić o tym jako o kluczowej sprawie, jednakże warto o tym wspomnieć. NTFS obsługuje nazwy składające się z maksymalnie 255 znaków, podczas gdy jego poprzednik używał formatu 8.3 (tzn. 8 znaków na nazwę pliku i 3 na rozszerzenie po kropce).

Jeśli dysponujemy partycją w systemie FAT możemy ją przekonwertować na NTFS. Aby to zrobić wchodzimy w menu Start wybieramy pozycję Uruchom i wpisujemy cmd. Do wiersza poleceń można się również dostać wchodząc w menu Start a następnie rozwijając Programy, później Akcesoria oraz klikając pozycje Wiersz poleceń. W konsoli wpisujemy polecenie convert x: /FS:NTFS. W miejsce literki x wstawiamy literę dysku, który ma zostać zmieniony. Pamiętajmy, że proces konwersji jest nieodwracalny.

Najważniejsze funkcje NTFS w Windows XP

Dyski dynamiczne
Na ogół dysk twardy dzielony jest na woluminy takie jak partycje czy dyski logiczne. Każdy z nich można sformatować, a następnie używać. Niekiedy jednak zachodzi potrzeba rekonfiguracji pamięci masowej. Właśnie z tą myślą stworzono obsługę dysków dynamicznych. Dysk dynamiczny jest to zwykły przekonwertowany na dynamiczny dysk. Możemy go podzielić na dynamiczne woluminy, które z zewnątrz niewiele różnią się od zwykłych woluminów. Jednak każda z takiej przestrzeni (z wyjątkiem systemowej i rozruchowej) może być dowolnie powiększana przez administratora na nieprzydzieloną przestrzeń na tym samym dysku fizycznym lub na innym, jeśli również jest to dysk dynamiczny. I tu ujawnia się cała magia omawianego tutaj elementu. Jeśli stworzymy na dysku dynamiczną partycję, to możemy później "rozciągnąć" ją na niezajęte miejsce na tym samym lub nawet na innym napędzie. Tak więc jeden wolumin może ciągnąć się przez kilka dysków, ale będzie obsługiwany tak samo jak zwykły. Jest to bardzo przydatna cecha w wypadku kiedy pracujemy na bardzo dużych plikach. Każda z dynamicznych partycji prowadzi własną bazę danych, w której zawarte są informacje na temat wszystkich dołączonych dysków i woluminów. Dzięki jej paru kopiom w wypadku awarii uszkodzone obszary mogą być łatwiej odtwarzane. Narzędzie służące do zarządzania dyskami dynamicznymi znajdziemy wchodząc w Panel sterowania, następnie w Narzędzia Administracyjne i tam klikając Zarządzanie komputerem. Wewnątrz tej konsoli wybieramy Zarządzanie dyskami.

Jeśli chcemy otworzyć okno konsoli możemy również kliknąć prawym przyciskiem na Mój komputer i z menu wybrać Zarządzaj.

Kompresja
NTFS został wyposażony w możliwość kompresji pojedynczych plików, folderów, a nawet całych woluminów. Mechanizm kompresji wbudowany jest w sam system plików, więc do jej używania nie są wymagane żadne inne programy. Ponadto dzięki temu aplikacje korzystające ze skompresowanych danych nie muszą nic na jej temat wiedzieć ani umieć jej obsługiwać wszystkim zajmuje się sam Windows XP. Nie zawsze jednak tak było. W FAT-cie można było kompresować jedynie całe woluminy (za pomocą wbudowanego w system narzędzia), ale najczęściej powodowało to ogromny spadek wydajności. Pamiętajmy, że przed użyciem skompresowanych danych należy je zdekompresować, co w przypadku często używanych plików bywa czasochłonne, zwłaszcza jeśli nie dysponujemy wydajnym procesorem. Problem ten został po części rozwiązany w NTFS. W przypadku próby czytania z pliku dane są dekompresowane i przechowywane w pamięci do momentu ponownego ich zapisu na dysku twardym, kiedy to znów są kompresowane. Dzięki temu kolejne próby dostępu do nich nie wiążą się z ciągłą dekompresją i kompresją co znacznie przyśpiesza pracę. Mimo wszystko nie zaleca się używać tego mechanizmu w stosunku do folderów, w których znajdują się często używane przez różne aplikacje pliki. Tym bardziej nie powinno się włączać kompresji na serwerze. Nadaje się ona raczej do archiwizowania danych, z których rzadko korzystamy. Jeśli chcemy "spakować" całą partycję otwieramy Mój komputer, klikamy prawym przyciskiem myszki na interesujący nas wolumin i wybieramy Właściwości. Na dole zakładki Ogólne znajdziemy opcję Kompresuj dysk, aby zaoszczędzić miejsce na dysku. Zaznaczamy ją i klikamy OK.

Naszym oczom ukaże się jeszcze jedno okno, w którym zaznaczamy interesującą nas opcję i znowu klikamy OK. Teraz chwilę trzeba zaczekać aż cały proces się wykona.

W przypadku, gdy kompresujemy folder lub plik, klikamy na nim prawym przyciskiem myszy i wybieramy Właściwości. Na zakładce Ogólne klikamy przycisk Zaawansowane, a następnie zaznaczamy opcję Kompresuj zawartość, aby zaoszczędzić miejsce na dysku, ostatnim krokiem jest naciśniecie przycisku OK. Proces kompresji się rozpocznie.

Dziennik zmian
Dziennik zmian służy do przechowywania informacji na temat wszelkich operacji (takich jak usuwanie, dodawanie czy modyfikowanie) dokonanych na woluminach NTFS. W przypadku częstych zmian na dysku, dziennik może przybrać znaczne rozmiary. Możemy jednak ograniczyć jego maksymalny rozmiar. Gdy zostanie on osiągnięty, najstarsze dane zostaną usunięte na potrzeby nowych wpisów. Dzięki dziennikowi system staje się bardziej uodporniony na błędy powstające na skutek awarii. Ułatwia on również pracę programom, które skanują dyski np. pod kątem zmian w plikach (jak programy antywirusowe). Gdy taka aplikacja potrzebuje tego typu danych, to zamiast przeglądać całą zawartość dysku, po prostu korzysta z dziennika.

Szyfrowanie
NTFS został również wyposażony w możliwość szyfrowania plików EFS (ang. Encrypting File System), który używa pary kluczy (prywatny-publiczny) oraz jeszcze niezależnego klucza. Jeśli zaszyfrujemy jakiś plik, to żaden inny użytkownik (nawet administrator) nie będzie miał do niego dostępu. Dzięki temu możemy ukryć przed innymi poufne informacje. Do zaszyfrowanego pliku nie będzie miał dostępu nawet ktoś, kto potrafi obejść zabezpieczenia związane z dostępem w NTFS. Również gdy komputer zostanie skradziony, złodziej nie będzie miał dostępu do naszych danych. Przy próbie ich otwarcia zobaczy jedynie bezsensowny ciąg znaków. Niestety szyfrowanie plików jest niedostępne w Windows XP Home Edition. Aby zaszyfrować jakiś plik klikamy na jego ikonie prawym przyciskiem myszy i wybieramy z menu Właściwości. Na zakładce Ogólne klikamy przycisk Zaawansowane. Następnie zaznaczamy opcję Szyfruj zawartość, aby zabezpieczyć dane. Podczas procesu kryptograficznego w dodatkowym oknie możemy jeszcze określić czy ma być szyfrowany tylko katalog, czy również podfoldery i pliki. Należy pamiętać, że nie można jednocześnie korzystać z szyfrowania i kompresji.

W systemie Windows XP w stosunku do poprzednich wersji NTFS w Windows 2000 i NT pojawiła się nowość. Pozwala ona na współdzielenie zaszyfrowanych danych z wybranymi użytkownikami. Jeśli chcemy to zrobić klikamy na już zaszyfrowany plik prawym przyciskiem myszki i wybieramy Właściwości, na karcie Ogólne naciskamy przycisk Zaawansowane, a w nowo otwartym oknie Szczegóły (będzie on aktywny tylko gdy plik jest już zaszyfrowany). Po naciśnięciu Dodaj możemy pozwolić innemu użytkownikowi na korzystanie z zaszyfrowanego pliku.

Indeksowanie
Usługa indeksowania tworzy swoisty spis treści plików wraz z informacjami o nich. Dzięki temu można łatwiej wyszukiwać dane na podstawie różnych kryteriów. Z usługi tej korzysta np. Wyszukiwanie w Windows. Indeksowanie zwraca uwagę również na to czy dany plik jest dla nas dostępny i czy jest zaszyfrowany. Jeśli nie mamy praw dostępu do pewnych danych, to nie zostaną one wyświetlone na liście wyszukiwania. Z kolei zaszyfrowane pliki nie są w ogóle indeksowane, gdyż informacje o nich są zastrzeżone. Gdy zindeksowany plik zostanie zaszyfrowany, to usługa indeksowania usunie go ze swojej bazy danych.

Lista kontroli dostępu
Lista kontroli dostępu (ACL - ang. access control list) przechowuje konfiguracje zabezpieczeń dostępu do plików. Restrykcje te są bodajże najważniejszą funkcją NTFS. Na woluminie NTFS każdy z plików posiada swoją własną listę ACL, w której przechowywane są wszystkie informacje związane z zabezpieczeniami dotyczącymi danej informacji. Niestety ACL nie jest obsługiwane przez system FAT. Jeśli dane zostaną przeniesione na partycję FAT to komponenty ACL zostaną zignorowane, w związku z czym zabezpieczenia zostaną utracone. Niestety szczegółowy opis sposobu konfiguracji praw dostępu wykracza poza ramy tego artykułu.

Znamy już właściwości systemów FAT32 i NTFS i należałoby się na któryś z nich zdecydować. Wszystko zależy od naszych zapotrzebowań. Jeśli wymagamy od systemu solidnych zabezpieczeń, niezawodności czy elastyczności to NTFS jest idealnym rozwiązaniem. Jednakże wszystkie jego dodatkowe możliwości zmniejszają wydajność. Więc jeśli zależy nam na maksymalnej efektywności to powinniśmy wybrać FAT32. Na korzyść FAT-u przemawia również fakt, że potrafi go obsługiwać większość systemów operacyjnych. Dobrym rozwiązaniem może być również zainstalowanie FAT32 na partycji, od której oczekujemy wysokiej wydajności, a na pozostałych - NTFS. Ponadto Microsoft zaleca używanie NTFS na wszystkich woluminach, które są udostępniane w sieci, gdzie funkcje bezpieczeństwa nabierają dodatkowego znaczenia.

Jak wykorzystać Copilot w codziennej pracy? Kurs w przedsprzedaży
Jak wykorzystać Copilot w codziennej pracy? Kurs w przedsprzedaży

Wydarzenia