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
SystemCurrentControlSetControlFileSystem
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