Előadás_#13. 1. Az NT fájlrendszere, NTFS A korábbi fájl rendszerek vs. az NTFS korlátai: FAT12 alatt a fájl név 8.3 szerkezetű, egy fájl maximális mérete nem lehet több mint 32MB. A maximális partíció mérete is 32MB. A fájl-ok maximális száma egy partíción 4077db. FAT16 alatt a fájl név 8.3 szerkezetű. A maximális partíció mérete alapvetően 2GB (de pl. XP alatt 4GB). A fájl-ok maximális száma egy partíción 65.517db. A FAT32 támogatja a hosszú (255 karakter LFN) fájlneveket, egy fájl maximális mérete nem lehet több mint 4GB mínusz 1Bájt. A maximális partíció mérete 2TB. A fájl-ok maximális száma egy partíción 268.435.427db. Az NTFS támogatja a hosszú (255 karakter) fájlneveket, egy fájl maximális mérete nem lehet több mint 16TB. A maximális partíció mérete 256TB. A fájlok maximális száma egy partíción 232-1db. A korábbi (MS) fájl rendszerek a convert parancs segítségével NTFS-re konvertálhatók. Egy lemez írási művelet kiszolgálása
A fájlírási művelet kiszolgálásának lépései: 1. Az NTFS driver üzenetet küld az LFS-nek, hogy írás tranzakció következik, adminisztrálja azt (készítsen a tranzakcióról ún. log rekordot). 2. Az LFS írja a cache-ben lévő log fájlt. 3. Az NTFS végrehajtja a kért utasítást, írja a (cache-ben lévő) fájlt. 4. A CM üzen, hogy az írás befejeződött, minden adat megvan. 5. Az LFS megadja, hogy milyen adatokat kell a cache-ből üríteni. (A megváltoztatott fájlt és a log fájlt.) Előadás_13
-1-
6. A CM kiírja a lemezre a log fájlt. 7. A CM kiírja a lemezre az adatokat, vagyis a megváltoztatott fájlt. A log fájl szerkezete
Réteg szerkezetű device driver struktúra
A réteg szerkezetű device driver struktúra lehetővé teszi a különböző funkcionalitású driverek rugalmas használatát, illetve a driverekből az igényeknek megfelelő rendszer építését. A módszer lényege, hogy a drivereknek különböző szintjeit különbözteti meg. A szintek funkcionalitása, illetve az adott Előadás_13
-2-
funkcionalitáshoz tartozó interfész jól definiált. Emiatt a drivereket egyszerű egymáshoz illeszteni. A réteg szerkezetű device driver struktúra lényegét legegyszerűbben egy példán, illetve a fenti ábrán keresztül érthetjük meg. Az API-hívást az Executive réteg továbbítja az I/O Manager felé, amely eléri a Disc Drivereket. A File Manager Driver előállítja a fájl-handle és az adatbuffer alapján az írandó lemezen a megcímzendő cluster címét, illetve az írandó adatot. Egyszerű esetben a File System Driver (az I/O Manageren keresztül) eléri a Disk Drivert, ami végrehajtja a lemez írását. A réteg szerkezetű driverstruktúrának köszönhetően lehetőség van azonban további driverréteget a két szint közé illeszteni. Ebben az esetben a beillesztett driverréteg a File System Driver felé úgy viselkedik, mit egy egyszerű Disc Driver, de belül bonyolultabb többletszolgáltatásokat nyújtó funkciókat valósíthat meg. Megvalósíthat például hibatűrő (redundáns) tárolást (például lemez tükrözést) vagy megvalósíthat több lemezen tárolt (multivolume file system) fájlrendszert, ami lehetővé teszi különösen nagy fájlok tárolását. (Hibatűrést megvalósító szolgáltatások: RAID 1, RAID 5, illetve szoftveresen vagy hardveresen további RAID szintek) További előnyök STREAM-ek használata (ADS: alternative data stream) lehetővé teszi egy fájl csatolását több adatfolyamhoz. Például a "szöveg.txt" nevű fájl tartalmazhat egy ADS-t "szöveg.txt:titok.txt" néven (fájlnév:ads formátumban), amit csak az ADS név ismeretében vagy speciális fájlkezelő programokkal lehet elérni. Az alternatív adatfolyamok nem fedezhetőek fel a fájl méretének vizsgálatával, de elvesznek az eredeti fájl törlésével, illetve mikor a fájlt ADS-t nem támogató meghajtóra másolják (például egy FAT partícióra, floppy lemezre, hálózati megosztásra). Bár az ADS hasznos szolgáltatás, észrevétlenül csökkentheti a szabad területet. UNICODE fájl nevek használata (max. 255 karakter, akár ponttal és szóközzel) INDEXELÉSI lehetőség segítségével adott tulajdonságú fájlok közvetlenül érhetők el. Dinamikus hibás szektor kezelés, menet közbeni tiltással. A KVÓTÁK használata lehetővé teszik az adminisztrátorok számára, hogy korlátozzák az egyes felhasználók által lefoglalható tárterületet. Lehetővé teszi az adminisztrátor számára azt is, hogy lekérdezze az egyes felhasználók által lefoglalt terület méretét. Beállítható, hogy a felhasználó mikor kapjon Előadás_13
-3-
figyelmeztetést, majd mikor tiltsa le a lemezfoglalást a rendszer. Az alkalmazások, melyek lekérik a szabad tárterületet, a kvótának megfelelő szabad területet fogják visszakapni. Az NTFS képes a FÁJLOK TÖMÖRÍTÉSÉRE az LZ77 algoritmus (melyet a ZIP fájl formátumban is használnak) használatával. Bár a tömörített fájlok írása és olvasása transzparens módon történik, a Microsoft ajánlása szerint a tömörítés használata kerülendő szerverrendszereken és profilokat tároló hálózati megosztásokon, mert jelentős processzorterhelést idéz elő. Adattípusok és adatszerkezetek A Kötet (Volume) egy HDD egy logikai partíciója. Az adattárolás alapegysége a szektorcsoport (Cluster). Logical Cluster Number (LCN) Egy adatszerkezethez, például egy fájlhoz tartozó clusterek sorszáma. Egy fájlhoz tartozó clustereket például 0-tól n-ig folyamatosan számozzuk. Virtual Cluster Number (VCN) A lemezen elhelyezkedő clusterek azonosítására szolgáló sorszám. A rendszer egy lemezt a clusterek sorozatának lát. A lemezmeghajtó feladata, hogy a VCN alapján megtaláljon és elérjen egy adott a VCN-hez tartozó clustert. A lemezen tárolt adatszerkezetek eléréséhez pontosan az LCN-ek VCN-ekhez történő hozzárendelését kell megadni, vagyis azt, hogy a fájl egy adott LCN-el jelölt clustere, melyik disk clusterben tárolódik, vagyis melyik VCN-el érhető el. Az NTFS Metadata azoknak az adatoknak a gyűjtőneve, amelyek egy fájlrendszer kezeléséhez, illetve a benne tárolt fájlok eléréshez szükségesek. Az NTFS tartja magát ahhoz az elvhez, hogy minden, ami a lemezen van, az fájl. Így például a volume-leíró, a boot információ, a hibás szektorok leírása stb. mind-mind egy-egy fájlként van eltárolva.
Előadás_13
-4-
MFT (Master File Table) A Master File Table a fájlrendszerben tárolt fájlok leírását, elérésükhöz szükséges információt tartalmazza. Az NT szemlélete a következő. Egy fájl nem más, mint egymással összerendelt adatok halmaza. A fájl neve, keletkezési időpontja, elérhetősége stb. mind-mind egy-egy adatokkal jellemzett „attribútuma” az adott fájlnak. Maguk a fájlban tárolt adatok is a fájl tartalom nevű attribútumának leírása. A fájlok az ún. fájl rekordokban tárolódnak, amelyben a fájl attribútumok (file attribute) azonosítója (neve) és az attribútumhoz tartozó adatmezők van egymás után felsorolva. A Master File Table nem más, mint fájl rekordok sorozata. A tárolás megkönnyítése érdekében a Master File Table nem az egész fájl rekordot, hanem csak annak első 1K-s darabját tartalmazza. Ha végiggondoljuk az NT tárolási technikáját, akkor látjuk, hogy a Master File Table nem más, mint egy 1K-s bejegyzéseket tartalmazó táblázat. A táblázat minden bejegyzése egy-egy fájlt azonosít. A fájl egyedi azonosítója ezek után az a sorszám lesz, ami megmondja, hogy az MFT hányadik bejegyzése tartozik hozzá. A bejegyzések minden fájlra vonatkozó információt tartalmaznak, azonban szerkezetük nem kötött. A Master File Table első 16 bejegyzése az ún. rendszerfájlok, azaz a fájlrendszer számára fontos adatokat tartalmazó fájlok. Nevük mindig $ jellel kezdődik. A felhasználói fájlok csak ezek után következhetnek.
Előadás_13
-5-
A fájlok tárolása A fájlok fájl rekordokban tárolódnak. A fájl rekord tartalma:
A fájlokhoz tartozó adatok a fájl jellemzői, azaz attribútumai fájlnév és kiterjesztés, keletkezés, utolsó változtatás időpontja, archív, csak olvasható, rejtetett, rendszer, security info, adat A fájl adat attribútum tárolási módjai Rezidens tárolás Az attribútum értékét reprezentáló bináris információ közvetlenül az attribútum header után van tárolva a rekordban. Nem rezidens tárolás A header után csak az attribútum értékét reprezentáló adatok helye van rögzítve. Például az adatokat tartalmazó buffer címeit tárolja a rendszer a rekordban. A nem rezidens tárolás esetén a header jelzi a nem rezidens tárolás tényét. A fájl rekordba ezután egy indextábla kerül, ami megmutatja, mely bufferekben tárolódik az adott attribútum értéke. Ezután egy VCN–LCN megfeleltetési táblázat következik, amelynek segítségével az attribútumok értékét tároló bufferek közvetlenül elérhetők. Az attribútum leírás végén egy táblázat következik, mely megmutatja, mely clusterek kihasználtak és mely clusterek nem használtak a bufferekben. Az adatok fent leírt módon történő tárolását nevezzük dinamikusan növekvő indextáblát használó egyszintű indexelésnek. Állományok illetve könyvtárak azonosítása egy 64 bites referenciaszámmal történik, mely két részből áll: 48 bit mutatja meg hányadik MFT rekordról van szó és 16 bit mutatja meg, hogy az adott állományt hányszor használták.
Előadás_13
-6-
2. Hasznos linkek Mi az NTFS (Microsoft, angol nyelvű) Hogyan működik az NTFS (Microsoft, angol nyelvű) Az NTFS és a FAT típusú fájlrendszerek összehasonlítása (Microsoft)
Előadás_13
-7-