System plików NTFS. Wady i zalety. Master File Table Klastry na

Transkrypt

System plików NTFS. Wady i zalety. Master File Table Klastry na
Temat: System plików NTFS. Wady i zalety.
Master File Table

Klastry na dysku mają przyporządkowane kolejne numery począwszy od 0
(Logical Cluster Numbers - LCN).

Klastry każdego strumienia danych są podobnie ponumerowane (Virtual
Cluster Numbers - VCN).

Master File Table jest plikiem zawierającym informacje o atrybutach plików i
ich położeniu (mapowaniu VCN na LCN).

MFT składa się z rekordów po 1 KB - jeden lub więcej na plik.

Każdy rekord zawiera następujące po sobie atrybuty.

Atrybut zaczyna się nagłówkiem. Jeśli dane atrybutu są niewielkie,
umieszczane są po nagłówku (atrybut jest resident). Gdy danych jest więcej,
alokowane są dla nich klastry poza MFT (atrybut nonresident).

Atrybuty nonresident mają w nagłówku wypisane klastry, w których zostały
umieszczone ich dane:

Mapowanie VCN na LCN jest zapisane w seriach. Każda seria to numer
klastra na dysku (LCN), odpowiadającego mu numeru klastra danych (VCN),
oraz liczba kolejnych klastrów należących do serii

gdy w rekordzie pliku w MFT zabraknie miejsca na nagłówki atrybutów, dla
pliku zostają przydzielone dodatkowe rekordy w MFT, a w rekordzie bazowym
zostaje założony nowy atrybut: $ATTRIBUTE_LIST.
Zawiera on listę pozostaych atrybutów pliku oraz informację o ich położeniu w
innych rekordach MFT.

Ponieważ $Mft jest takim samym plikem jak inne, to może zostać
pofragmentowany. Aby temu zapobiec NTFS definiuje MFT-Zone - obszar
dysku wokoło pliku $Mft, przeznaczony na jego powiększenie.
Klastry z MFT-Zone mogą zostać zaalokowane na inne pliki tylko wtedy, gdy
na dysku zaczyna brakować miejsca.
Pliki skompresowane

Plik podlegający automatycznej kompresji dzielony jest na 16-klastrowe
kawałki.

Każdy kawałek kompresowany jest oddzielnie.

Jeśli skompresuje się on do mniej niż 16 klastrów jest zapisywany
skompresowany, wpw. jest zapisany rozkompresowany.

Przykład pliku skompresowanego:
Pliki rzadkie i małe
1

Pliki w systemie NTFS mogą mieć zaalokowanych mniej klastrów, niż
wynikałoby to z ich rozmiaru.
Niezaalokowane klastry mają swoje numery wirtualne (VCN), ale nie mają
numerów logicznych (LCN).
Przy odczycie są traktowane jak zawierające same zera.
Przy zapisie, w niewidoczny dla użytkownika sposób, alokowane są dla nich
klastry logiczne.

Jeśli plik jest dostatecznie mały, żeby jego atrybut $DATA zmieścił się w
rekordzie w MFT, to nie są dla niego alokowane żadne dodatkowe klastry.
Oszczędza się w ten sposób miejsce i zwiększa szybkość dostępu do pliku.
Katalogi

Katalogi trzymają informacje o plikach w nich zawartych w atrybucie
$INDEX_ROOT.

Oprócz refernecji do rekordów plików w MFT są tam też często używane
atrybuty plików, zduplikowane z MFT:

o
nazwy plików,
o
czasy utworzenia, ostaniego dostępu i modyfikacji,
o
wielkość pliku.
Referencje do plików w MFT są 64-bitowymi liczbami:
o
48 bitów to numer rekordu pliku w MFT,
o
16 bitów to licznik wykorzystywany do sprawdzania spójności danych,
zwiększany za każdym rzazem, gdy rekord zostaje użyty na nowy plik.
Małe katalogi

Małe katalogi, podobnie jak małe pliki, mogą być zawarte całkowicie w swoim
rekordzie w MFT.
Duże katalogi

Pliki w dużych katalogach są indeksowane i sortowane po nazwie.

Indeksy są zaimplementowane jako B+ - drzewa, z korzeniem umieszczonym
w atrybucie $INDEX_ROOT.

Kolejne węzły drzewa (index-buffers) są alokowane w razie konieczności, a
ich położenie jest zapisywane w atrybucie $INDEX_ALLOCATION.

Dodatkowy atrybut $BITMAP określa które klastry w węzłach drzewa są
jeszcze wolne.
Journal
2

Jedną z najważniejszych cech systemu plików NTFS jest jego niezawodność.

Jedynym sposobem na rozspójnienie go jest uszkodzenie dysku.

Niezawodność ta jest zapewniona przez zastosowanie jouralling-u.

System NTFS ochrania w ten sposób tylko metadane definiujące strukturę
woluminu oraz prawa dostępu.

Dane w plikach nie podlegają journalling-owi i mogą być stracone np. w
przypadku utraty zasilania.
Transakcje

Wszystkie zmiany struktury woluminu, np.:
o
zmiana drzewa katalogów,
o
utworzenie pliku,
o
zmiana rozmiaru pliku,
organizowane są w transakcje.

Transakcje mogą składać się z pewnej liczby podoperacji, a zakończone są
zawsze operacją commit.

NTFS gwarantuje wykonanie całych transakcji atomowo.
Zasada działania journala
Aby journal był wiarygodny zapis danych musi się odbywać odpowiedniej kolejności:
1. NTFS zapisuje transakcję w kopii log'a w pamięci.
2. NTFS modyfikuje wolumin w pamięci.
3. Cache manager zapisuje log na dysk.
4. Cache manager zapisuje modyfikacje woluminu na dysk.
Dzięki temu plik journalla zawsze wyprzedza faktyczną modyfikację struktury
woluminu.
Ponadto driver NTFS co kilka sekund zapisuje do log'a tablice niedokończonych
transakcji i niezaaplikowanych podoperacji, oraz tzw. checkpoint record zawierający
ich położenie i informacje o tym, jak daleko w log'u trzeba się wrócić aby rozpocząć
przywracanie spójności.
Uprawnienia do plików

W systemie NTFS każdy plik i katalog ma przypisany Deskryptor Uprawnień,
opisujący uprawnienia do niego dla poszczególnych użytkowników.

Deskryptory te są zapisane w atrybucie $SDS pliku $Secure.

Plik $Secure ma również atrybut $SII zawierający indeks deskryptorów według
ich numerów, oraz atrybut $SDH zawierający indeks deskryptorów według ich
hash'a.
3

Podczas dostępu do pliku w celu znalezienia odpowiedniego deskryptora
używany jest numer deskryptora z atrybutu $STANDARD_INFORMATION
pliku w połączeniu z indeksem $SII.
Podczas ustawiania deskryptora dla pliku używany jest indeks $SDH w celu
wyeliminowania identycznych deskryptorów w tablicy $SDS.
Zalety NTFS w stosunku do FAT32:
 tzw. quota - czyli ograniczenie przestrzeni dyskowej dla danego użytkownika;
znany standard ze systemów Unix'owych


zabezpieczenia dostępu

szyfrowanie -do nich ma dostęp jedynie szyfrujący, bądź ktoś kto ma
odpowiedni klucz programowy

rozmiar klastra - w przypadku gdy mamy na dysku małe pliki (np. wielkości 1-5
KB) i w skrajnym przypadku gdy mamy np. klaster wielkości 16 KB a pliki
zajmują po 1-2 KB to na każdym klastrze tracimy od 14 do 15 KB. Nie jest to
dużo ale przy 6000 tysiącach plików wyszło mi straty 88 MB.

journaling - jest to chyba największa zaleta NTFS'a. System dzięki temu na
bieżąco zapisuje wszelkie informacje o kopiowaniu (bądź przenoszeniu) i
innych operacjach na danych. W momencie startu systemu sprawdzany jest
dziennik journal i to czy wszystkie operacje zostały zakończone. Jeśli nie to
wszystkie są powtarzane lub dokańczane. Dla porównania mają go jedynie
najnowsze systemy plików takie jak ext3 czy reiserfs (pod linuxa) oraz befs
(BeOS). Windows 2000 czy XP czasami się zawiesi, lub jeśli zdarzy się nam
że wyłączą nam prąd w elektrowni, lub nam wywali korki. I akurat wtedy gdy
pracowaliśmy w jakimś ważnym programie. W przypadku NTFS plik zostanie
uratowany (i do tego nawet bez naszej wiedzy), natomiast w FAT32 nie dość
że będziemy mieli podczas startu systemu chkdsk to jeszcze nie jest pewne
że uda nam się go uratować. Jest to zdecydowana zaleta tego systemu
plików, która powinna zdecydowanie przeważyć szalę na jego korzyść,
oczywiście dla tych dla których bezpieczeństwo jest na tyle ważne.

ilość obsługiwanych klastrów - standardowo partycja na FAT32 może mieć
maksymalnie wielkość 8,4 GB. Jednak nasz dobry Microsoft zrobił
rozszerzenie (tzw. obsługa dużych dysków twardych) i dzięki temu mamy
FAT32x, który nieco naciąga te standardy.

dwie kopie MFT - system automatycznie robi dwie(lub więcej, w zależnośći od
wielkości dysku) kopii tej tablicy w celu zwiększenia bezpieczeństwa
hard links - technologia pozwalająca dwóm różnym nazwom plików,
znajdujących się w różnych katalogach, wskazywać na te same dane.
Minusy NTFS'a :
 rozmiar klastra - to co przedtem było plusem (choć małym) teraz jest DUŻYM
minusem. Właśnie przez to że NTFS ma standardowy klaster wielkości 512 B
lub 1 KB, MFT (Meta File Table) rozrasta się do ogromnych rozmiarów,
czasami nawet zajmuje 100 MB (jest to skrajny przypadek ale możliwy). I
przez to system musi cache'ować aż tyle danych, co w konsekwencji
sprowadza się do wolniejszej pracy. Wynika z tego że najszybszy będzie tutaj
FAT16 z 64 KB klasterem, ale jest to już astronomiczna wielkość, i straty są
wtedy ogromne. Wynika z tego również że TEORETYCZNIE FAT32 powinien
być szybszy w odczycie dużych plików (później to obalę).

4

zabezpieczenia dostępu - też są plusem, ale jak wszyscy wiemy w momencie
żądania odczytu pliku na partycji NTFS system musi sprawdzać
zabezpieczenia (co jest jednak pewnym procesem zajmującym cenny czas) i
nieco spowalnia system

kompatybilność - jak wiadomo NTFS jest niemożliwy (w standardowy sposób)
do odczytania w starszych systemach z rodziny DOS'a. Jest to kolejna
bariera, do obejścia choć nie dla każdego. FAT32 wypada tutaj lepiej gdyż
możliwość jego czytania systemu mają wbudowane począwszy od Win95
OS2, (niewiadomo tylko dlaczego NT4.0 nie mógł go czytać, skoro został
wydany mniej więcej w czasie Win98 OS2, choć później w kolejnych Service
Pack'ach obsługa tego systemu została dodana)
dwie kopie MFT - znowu plus jako minus, niestety wymaga to znów cennego
miejsca
Według danych statystycznych system NTFS jest zalecany dla nośników o
pojemności ponad 400 MB. Coraz większe dyski nie powodują bowiem spadku
wydajności. W przypadku niewielkich dysków NTFS nie jest optymalny, gdyż sporo
przestrzeni nośnika wykorzystuje się do organizacji systemu plików. Na przykład na
partycji 100 MB będzie do tego celu potrzebnych 4 MB

Porównanie położenia danych na partycjach.
Sposób na uniknięcie fragmentacji MFT:

Instalujemy programy i gry, których mamy zamiar używać.

Uruchamiamy wiersz poleceń (Start - Uruchom - wpisz "cmd") i wpisujemy kolejno
polecenia:
- C: - lub inna litera partycji, którą chcemy zabezpieczyć przed fragmentacją MFT
- md s - tworzy katalog s
- cd s - otwiera katalog s
- FOR /L %f in (1,1,20000) do echo Hey > %f - tworzy 20000 plików, które nie zawierają
danych, ich jedynym zadaniem jest utworzenie nowych 20000 rekordów w MFT. Będzie to
dodatkowy ogromny bufor, który powinien uchronić MFT przed fragmentacją, nawet jeżeli
podzielony zostanie MFT Zone
5
- del *.* /q - kasuje wszystkie utworzone pliki, spełniły one już swoje zadanie, bufor
wewnątrz MFT został utworzony
- cd.. - cofamy się o jeden poziom w strukturze katalogów
- rd s - usuwamy katalog s
Polecenie "convert c: /fs:ntfs" ma za zadanie w bezbolesny sposób pozwolić
użytkownikom Windows zmienić FAT32 na NTFS. Problem polega na tym, że jest
ono bardzo mało efektywne. Użyte bez dodatkowych parametrów zapisuje MFT nie
w ciągu klastrów, ale tam gdzie się zmieści. Z tego powodu może powstać
fragmentacja MFT, co bardzo negatywnie wpłynie na wydajność partycji. Poza tym
MFT nie jest zapisany po 1/3 powierzchni partycji, więc mamy do czynienia z
kolejnym spadkiem wydajności. Jest to zatem kolejny powód, który spowodował, że
NTFS jest uważany za wolniejszy od FAT32. Najlepszym rozwiązaniem będzie
pobranie demonstracyjnej wersji Perfect Disc 7 i użycie "offline defragmentation".
Opcja ta pozwoli na scalenie i umieszczenie MFT, MFT Zone i Metadaty w
odpowiednim miejscu na partycji
6

Podobne dokumenty