Přežije FATka konec tisíciletí?

1. 2. 2000

Sdílet

Společně s uvedením nových Windows 2000 na trh operačních systémů se určitě naskýtá otázka jaká bude budoucnost ...

Společně s uvedením nových Windows 2000 na trh operačních systémů se určitě

naskýtá otázka jaká bude budoucnost staříka jménem FAT (File Allocation Table).

Tento již poněkud zastaralý souborový systém má ale oproti NTFS (New Technology

File System) stále ještě některé plusy a nebude to pro všechny úplně jednoduché

rozhodování. Přesto je jasné, že NTFS 5.0 je určitě výrazným krokem kupředu.

O co že tedy v tomto novém souborovém systému jde? Především je nutno

podotknout, že se vlastně až o tak velkou novinku nejedná. Slovo new (nový) je

totiž v názvu tohoto standardu již hodně dlouho. Jeho vývoj totiž začal již v

80. letech a v současnosti již existuje ve verzi 5.0, o žhavé novince jde tedy

hovořit opravdu jen stěží. O tom, že si od něj Microsoft hodně slibuje,

rozhodně svědčí i vlastní prezentace, kdy byl uváděn jako souborový systém pro

21. století.

K tomu, aby se mohl tímto titulem pyšnit, ale musí ještě udělat několik kroků.

Prvním bude porazit svého předchůdce FAT a HPFS (High Performance File System).

To ale nebude žádný velký problém. Kupodivu ani na linuxové platformě se zatím

nerodí žádný velký konkurent, nejčastěji používaný systém ext2 má totiž k

dokonalosti opravdu také ještě daleko. Zatím tedy vše hraje pro NTFS a jen čas

ukáže, jak si s tímto technologickým náskokem dokáže poradit. Jediným soupeřem

si tak zůstává on sám, respektive jeho drobné chybky.

Metadata

Ale zpět k otázce ohledně funkčnosti. Celý systém je založen na několika

základních pilířích na MFT a na metadatech. Většina funkčnosti je ukryta právě

ve druhém zmiňovaném pojmu ve skrytých souborech s opravdu různorodým obsahem.

Seznam dostupných metadatových souborů pak vidíte v tabulce. Tento list je

důležitý i z jiného důvodu, tyto soubory jsou totiž opravdu velice skryté a bez

znalosti jejich jména se k nim nemůžete dostat. Jedinou možností je použít

příkaz dir /ah název_metasouboru v root adresáři diskové jednotky (např. dir

/ah $BOOT). Z těchto metadat je nejdůležitější soubor jménem $MFT, ale o něm až

kousek dál, zde se asi vyplatí zmínit pouze $BITMAP, $BADCLUS a $QUOTA. První z

nich je vlastně pouze pole bitů, kde jedničky reprezentují použití jednotlivých

clusterů, další metadatový soubor pak, jak již název napovídá, označuje vadné

clustery, tedy takové, u kterých se vyskytla jakákoliv chyba a nebudou proto

již nadále používány. Poslední soubor $QUOTA je opravdovou novinkou, existoval

sice již v minulé verzi, ale teprve ve verzi 5.0 je plně implementován a jeho

úkolem je informovat operační systém o velikosti souborů, a tím o obsazeném

místu jednotlivých uživatelů.

Master File Table

Metadatový soubor $MFT (Master File Table) má poněkud výsadní postavení,

protože jsou v něm popsány jednotlivé atributy všech souborů a tedy i

metadatových souborů, což v konečném důsledku znamená, že obsahuje i popis sama

sebe. Jedná se vlastně o něco velice vzdáleně připomínající FAT tabulku z DOSu.

Rozdíl v tomto případě je v tom, že $MFT je vlastně také soubor, což je v

případě souborových systémů více než neobvyklé. Na druhou stranu to umožňuje

operačnímu systému pracovat se všemi záznamy na disku stejně a nemusí mít tedy

speciální funkce pro přístup k systémovým částem a k obyčejným souborům. Je na

první pohled jasné, že se jedná o nejdůležitější systémový soubor, na kterém

leží většina funkčnosti. Tento soubor se podobně jako kdysi FAT tabulka nachází

na úplném počátku disku, přesněji řečeno alespoň jeho začátek. O tom, že se

jedná o důležitý soubor, svědčí i metadatový file s názvem $MFTMIRR, který se

pro zvětšení bezpečnosti nachází v polovině disku a obsahuje kopii části

originálního souboru $MFT.

Co řádek to soubor

Jak již bylo řečeno, $MFT obsahuje všechny informace o souborech na daném

disku. Toho je dosaženo pomocí jednotlivých FILE records, které obsahují popisy

jednotlivých souborů (tyto záznamy odpovídají i-node souborům v UNIXu). Soubor

$MFT tedy není nic jiného než seznam takovýchto záznamů, z nichž prvních 16 je

rezervováno pro systémové soubory. V současnosti je toto místo využito pouze

pro 10 takovýchto souborů, zbytek je rezervován pro případné další použití.

Každý takovýto řádek pak obsahuje většinu nejdůležitějších údajů o jednotlivých

souborech. Samozřejmě ne vždycky je možné vtěsnat do omezené velikosti záznamu

(nejčastěji 1 kB) všechny potřebné informace v takovém případě jsou data

ukládána externě mimo $MFT. To samozřejmě není ideální situace, v takovém

případě totiž musí docházet k dalšímu čtení disku a přístup k takovýmto

souborům se zbytečně prodlužuje. Pokud se totiž všechny údaje vejdou do $MFT,

hovoříme o nich jako o rezidentních datech a přístup k informacím o takovýchto

souborech je daleko rychlejší a např. výpis obsahu adresáře může být otázkou

pouze jednoho čtení.

Bohužel právě u manipulací s $MFT souborem se ukazuje jedna z vad na kráse

tohoto systému vlastní fragmentace tohoto souboru. Záznamy jsou totiž do tohoto

souboru přidávány postupně a soubor tedy v každém případě roste. Jestliže dojde

ke smazání souboru, je záznam označen jako volný a jeho místo se může přepsat,

v žádném případě ale nedochází k zmenšení vlastního souboru. Tímto postupem ale

může dojít k tomu, že vlastní $MFT bude fragmentován. Jistě si říkáte žádný

problém ale opak je pravdou, Microsoft Windows 2000 si s takovýmto problémkem

nedokážou poradit a soubor $MFT nemůže být pomocí standardních nástrojů spojen

do souvislého úseku. Této okolnosti se sice Windows snaží všelijak zabránit,

zejména alokací případného místa dopředu, které vydávají k použitým souborům

jen tehdy, je-li nedostatek jiného místa. Pokud by se to ale systému nepodařilo

a došlo by právě k oné zmiňované defragmentaci, pak se asi vyplatí uvažovat o

případném přeformátování disku, protože platí ona známá rovnice: vysoká

defregmentace = vysoký počet čtení = degradace výkonu systému.

Vlastní funkčnost systému

Až doposud byla řeč o základních pilířích tohoto souborového systému a nepadlo

ani jediné slovo o vlastní funkčnosti systému. Je proto asi nejvyšší část tuto

skutečnost napravit, nejlepší popsat NTFS pomocí jednotlivých bodů, které jsou

nejlepšími výhodami tohoto standardu:

Velikost clusterů na rozdíl od starého FAT může NTFS pracovat s clustery

různých velikostí od 512 B až po 64 KB. Ačkoliv z pohledu úspory místa jasně

vyhrávají malé clustery, není toto řešení vždy optimální, malé clustery totiž

znamenají také velkou režii operačního systému a tím nepříliš ideální rychlost.

Určitě je ale vhodné, že si můžete vybrat buď rychlost, nebo prostor (defaultní

velikost pak můžete vidět v tabulce).

Kódování názvů pomocí UNICODE to zřejmě ocení hlavně takové národy jako jsou

Češi, konečně lze soubor pojmenovat česky s háčky a čárkami beze strachu.

Komprese je zabudována přímo v souborovém systému.

Logging zřejmě jedna z největších výhod NTFS, všechny prováděné změny jsou

logovány do metadatového souboru $LOGFILE ve formě undo a redo záznamů, tedy

takových záznamů, které specifikují akce, které se musí v případě nečekaného

spadnutí systému provést a nebo naopak odvolat. Veškeré akce se soubory tak

tedy probíhají jakoby ve formě transakcí, takže i v případě vážné chyby nemusí

dojít k žádné ztrátě dat.

Bezpečnost je vestavěna podpora pro šifrování, k souborům by tak neměl být

umožněn přístup z jiných operačních systémů.

Kvóty administrátor může použít služeb souboru $QUOTA a omezit velikost souborů

dostupných jednotlivým uživatelům.

Umožněna je tvorba tzv. hard linků soubory tedy již nemusíte kopírovat, ale

stačí pouze vytvořit tento link.

Tím samozřejmě možnosti tohoto file systému ani zdaleka nekončí, přesto snad

alespoň ty hlavní rysy byste mohli v předchozích odstavcích najít, ale místo je

omezené a tak se nedostalo např. na použití b-tree nebo na access control list

(ACL), který kontroluje přístup uživatelů k jednotlivým souborům.

Potřebuji ho?

Po přečtení dosavadního výkladu se možná ptáte, jestli je NTFS ve verzi 5.0

opravdu dobrý a vy byste na něj měli přejít. Ačkoliv se odpověď zdá jednoduchá,

i v dnešní době se vyplatí starý FAT, např. u starších malých disků (do 500 MB

je FAT výkonnější) nebo v případě, že k datům potřebujete přistupovat i z

jiného operačního systému. V jiném případě však k tomu rozhodně není důvod,

alespoň vyzkoušení si NTFS určitě zaslouží.

Postup pro snížení pravděpodobnosti fragmentace $mft

Pokud jste si přečetli část věnovanou možnosti fragmentace systémového souboru

$MFT, možná uvítáte následující tip, který by mohl redukovat tuto možnost na

minimum. Podle zvolené hodnoty totiž zvětší (nebo zmenší) rezervovaný prostor

pro případný růst $MFT.

1.V registry editoru si otevřete klíč HKEY_LOCAL_MACHINE

SystemCurrentControlSetCon­trolFileSystem

2.Pomocí Edit menu přidejte následující hodnotu

Value Name: NtfsMftZoneReservation

Data Type : REG_DWORD

Data: (číslo mezi 1 a 4), kde 4 je největší rezervovaný prostor a tím i

nejmenší riziko defragmentace

3.Restartujte počítač

0 0560 / als