A hfs fájlrendszer felépítése
· Rendszerbiztonsági szempontból (megtiltva a fájlrendszerek programjának elindítását, a fájlrendszer lemezterületének korlátozását stb.)
Általában a HP-UX fájlrendszer egy könyvtárfa (könyvtárak), amely hierarchikusan a felső gyökérkönyvtárban található. Minden fájlrendszer rendelkezik az "elengedhetetlenség" tulajdonsággal, vagyis bármely fájlrendszer csatlakoztatható egy meglévő könyvtárhoz. A gyökér kivételével minden felcsatolt fájlrendszer eltávolítható. A gyökér fájlrendszer telepítését a rendszermag végzi, közvetlenül a letöltés után.
HFS fájlrendszer felépítése
Minden HFS fájlrendszer a következő struktúrákkal rendelkezik:
· Hengercsoportok halmaza
A fájlrendszerben használt adatszerkezeteket a /usr/include/sys/fs.h fájl tartalmazza. Az elsődleges superblock egy folyamatos 8K adatblokk, amely a fájlrendszer kezdete előtt található, amely a létrehozásakor (vagy az utolsó kiterjesztésnél) a fájlrendszer statikus információit tartalmazza:
· A fájlrendszer mérete
· A fájlrendszer tárolására alkalmas inódok száma
· Szabad lemezterület
· A palackcsoportok száma
· A superblockok, a henger hornyai, az inod blokkok és az adatblokkok elhelyezkedése
· Blokk és töredékméret
Ezenkívül a fő superblock tartalmaz kiegészítő információkat arról, hogy mikor volt utoljára felszerelve, módosította és ellenőrizte a fájlrendszert. Mivel a fő superblock rendkívül fontos információkat tartalmaz a fájlrendszerről, a HP-UX mindig tárolja a másolatokat minden egyes hengercsoportban. Az egyik példány a letöltés után a memóriába kerül. A fő superblock a fájlrendszer elején helyezkedik el, és minden egyes hengercsoportnak saját példája van a superblocknak. Ily módon elérjük a kritikus információk redundanciáját. A lemezen lévő hengercsoportok szuperblokkjainak frissítése minden egyes alkalommal történik, amikor a szinkronizáló parancs végrehajtásra kerül, vagy amikor a fájlrendszer eltávolításra kerül. Az / etc / sbtab fájl rögzíti a fájlrendszerek összes superblockjának helyzetét.
A hengerek csoportja egymás után futó tárcsahengerek csoportja. A henger olyan sávok gyűjteménye, amelyek mindegyike ugyanolyan távolságban van elhelyezve a lemezközeg felületének közepétől. A hengerben lévő összes sáv a lemezfej egy olvasási / írási műveletében áll rendelkezésre. A termelékenység növelése érdekében a palackokat (alapértelmezés szerint 16 palack) csoportosítják hengercsoportokba. Minden palackcsoportnak saját inode-készlete van, és a szabad térképe a csoportban. Ez a tárolási szervezet lehetővé teszi, hogy minimálisra csökkentsük a fájlok adatainak keresését a hengercsoportban. Halmazcsoportot adunk meg:
1 csak az első hengercsoportra
2 lásd az inodes részt
3 lásd az adatblokkok részt
A hengercsoport információs rész tárolja a hengercsoport dinamikus paramétereit, például:
· Az inodes és adatblokkok száma egy hengercsoportban
· Mutatja az utolsó használt blokkot, töredéket és inode-t
· A szabad töredékek száma
· A használt inodes térkép
· Ingyenes blokkok térképe
A hengercsoportra vonatkozó információ egy blokkot vesz fel (a blokkméretet a fájlrendszer hozzáadásával határozzák meg, és általában négy vagy nyolc kilobájt).
A fájlrendszer állapotára vonatkozó információk tárolása mellett a hengercsoportok kulcsfájlokat tárolnak a fájlrendszer inódjairól - az adatfájlok (és könyvtárak) indexeiről. Az inode lemez tartalmazza a következő információkat a fájlról:
· Fájltípus és hozzáférési attribútumok
· Egy fájlhoz tartozó hivatkozások száma
· Tulajdonos és csoportfájl
· A fájl mérete bájtban
· Időbélyegek (az utolsó hozzáférés időpontja, utolsó módosítás)
· Mutatja az adatokat tartalmazó fájlrendszerblokkokat
Amikor egy fájlt megnyit egy folyamat, az inode-információ az alapvető memóriában (in-core inode) és további attribútumokkal, például:
· Az inode állapota, beleértve az inode-reteszelést is, függetlenül attól, hogy az inode-inode különbözik-e a lemezinodtól a fájl módosítása miatt, függetlenül attól, hogy a fájl a fájlrendszer csatolási pontja ...
· Mutató más, beépített inode-okra, amelyeket egy lista formájában építettek.
Ha az inode utal egy speciális (nem rendszeres) fájl van társítva további paraméterek, mint például, hogy a FIFO vagy a cső fájlt, karakter vagy blokk eszköz vagy könyvtár. Amikor létrejön egy fájlrendszer (newfs parancs), inodes jön létre. Az inodes száma korlátozza a fájlrendszer fájlok számát. Alapértelmezett fájlrendszer létrehozásakor a rendszer feltételezi, hogy átlagosan 2048 bájtnyi adat inondonként elöntésre kerül, ami a legtöbb esetben több mint elegendő. Néha előfordulhat, hogy a rendszermag túlcsordulási hibát jelez az in-core inodes táblában (inode: table full). Ebben az esetben a táblázat méretét módosítani kell a ninode kernel rendszerparaméterének növelésével.
A superblock után a hengercsoportokról és az asztalokról szóló adatokra az adatblokkok számára fenntartott hely van. A HP-UX támogatja a 4, 8, 16, 32 és 64 KB méretű blokkokat. A blokkméret a fájlrendszer létrehozásakor van beállítva (newfs parancs). A nagy blokk méretének köszönhetően vyigrasha adatsebesség a nagy méretű faylamino így egyik oka a nem hatékony felhasználása lemezterület prirabote kis (ami a legtöbb HP-UX) fájlokat. Ezért a lemezterület megtakarítása érdekében a blokk több részre osztható (1,2 vagy 4 KB). A töredékméret a fájlrendszer létrehozásakor is meghatározható, és a blokk mérete nem lehet kisebb, mint egy nyolcada.