A Linux fő fájlrendszerei A Linux fő fájlrendszerei

Két vagy három évvel ezelőtt a fájlrendszer kiválasztása egy Linux-rendszerhez nem tartott tovább néhány másodpercnél (vagy Ext2, vagy ReiserFS). A 2.4 és újabb kernelek esetén azonban már egész sokféle fájlrendszer közül lehet választani. Az alábbiakban áttekintjük a fájlrendszerek alapvető működését és az általuk kínált előnyöket.

Fontos megjegyezni, hogy nincs olyan fájlrendszer, amely tökéletesen megfelelne mindenféle alkalmazáshoz. Minden fájlrendszernek vannak erősségei és gyengéi, amelyeket figyelembe kell venni. Emellett még a legkifinomultabb fájlrendszer sem helyettesíthet egy józan mentési stratégiát.

Az adatintegritás és adatkonzisztencia kifejezések ebben a fejezetben nem a felhasználói területen lévő adatok (az alkalmazások által a fájlokba írt adatok) konzisztenciájára utalnak. Az adatok konzisztenciájáról magának az alkalmazásnak kell gondoskodnia.

[Important]Fájlrendszerek beállítása

Hacsak nem jelezzük másképp, a partíciók és fájlrendszerek beállításához és módosításához szükséges lépések a YaST modul segítségével végrehajthatók.

ReiserFSReiserFS

A 2.4-es kernelkiadás egyik fontos eleme, a ReiserFS fájlrendszer kerneljavításként már a 2.2.x SUSE kernelek, a SUSE Linux 6.4 változat óta rendelkezésre áll. A ReiserFS-t Hans Reiser és a Namesys fejlesztőcsapat tervezte. Azóta bebizonyította, hogy hatékony alternatívát kínál a régi Ext2-vel szemben. Legfontosabb előnyei: jobb lemezterület-kihasználás, jobb lemezhozzáférési teljesítmény és gyorsabb helyreállás összeomlás után.

A ReiserFS előnyeiről részletesebben:

Jobb lemezterület-kihasználás

A ReiserFS fájlrendszerben az összes adat kiegyensúlyozott B*-fastruktúrába van szervezve. A fastruktúra jobban ki tudja használni a lemezterületet, mivel a kis fájlok közvetlenül a B*-fa levélcsomópontjaiban kerülnek tárolásra, nem pedig egy másik helyen és csak egy mutató mutat a tényleges tárolási helyre. Ezen felül a tárterület nem 1 vagy 4 kilobájtos egységekben kerül lefoglalásra, hanem az adatok pontosan a szükséges méretet foglalják el. Másik előnye az inode-ok dinamikus lefoglalása. Így a rendszer rendkívül rugalmas, szemben például az Ext2-vel, ahol az inode-ok sűrűségét a fájlrendszer létrehozásakor kell megadnunk.

Jobb lemezhozzáférési teljesítmény

Kis fájlok esetén az adatok és a „stat_data” (inode) információ általában egymás mellett kerül tárolásra. Ez az információ egyetlen lemez I/O-művelettel kiolvasható, azaz csak egy lemezhozzáférés szükséges a kívánt információ lekéréséhez.

Gyors visszaállítás rendszerösszeomlás után

A legutolsó metaadat-módosításokat nyomkövető napló segítségével a fájlrendszer ellenőrzése nagyon nagy fájlrendszerek esetén is csak néhány másodpercet vesz igénybe.

Megbízhatóság az adatnaplózás használatával

A ReiserFS az adatnaplózást és a sorbarendezett adatmódokat is támogatja, hasonló elven, mint ahogy az Ext3-ról szóló részben írjuk (22.2.3. szakasz - Ext3). Az alapértelmezett mód a data=ordered, amely az adatok és metaadatok integritását egyaránt biztosítja, de naplózást csak a metaadatokhoz használ.

Ext2Ext2

Az Ext2 eredete a Linux történetének első napjaira nyúlik vissza. Az eredeti Extended File System 1992 áprilisában készült el és lett beépítve a Linux 0.96c-be. Az Extended File System számos módosításon ment keresztül és Ext2 néven évekig a legnépszerűbb Linux-fájlrendszer volt. A rendkívül rövid helyreállítási idejű naplózó fájlrendszerek megszületése miatt azonban az Ext2 mára sokat vesztett fontosságából.

Az Ext2 előnyeinek rövid összefoglalása segít annak megértésében, hogy miért volt számos Linux-felhasználó kedvenc linuxos fájlrendszere (és néhány esetben miért még mindig az).

Megbízhatóság

Igazi „old-timer”-ként az Ext2 számos javításon és komoly tesztelésen ment keresztül. Ez lehet annak az oka, amiért az emberek gyakran sziklaszilárdnak nevezik. Rendszerkimaradás után, amikor a fájlrendszer nem szabályosan lett lecsatolva, az e2fsck elkezdi elemezni a fájlrendszer adatait. A metaadatok konzisztens állapotba kerülnek és a függőben lévő fájlok vagy adatblokkok egy kijelölt könyvtárba íródnak (ennek neve lost+found). A naplózó fájlrendszerrel ellentétben az e2fsck a teljes fájlrendszert végigvizsgálja, nemcsak az utoljára módosított metaadatbiteket. Ez lényegesen tovább tart, mint a naplózó fájlrendszer naplóadatainak ellenőrzése. A fájlrendszer méretétől függően az eljárás fél óráig, vagy még sokkal tovább is tarthat. Éppen ezért magas rendelkezésre állást igénylő kiszolgálóhoz nem ajánlatos Ext2 fájlrendszert választani. Mivel azonban az Ext2 nem tart karban naplót és lényegesen kevesebb memóriát használ, néha gyorsabb a többi fájlrendszernél.

Egyszerű frissíthetőség

Az Ext2 kódja jó alapot biztosít, amelyre építve az Ext3 könnyen az egyik legnépszerűbb következő generációs fájlrendszerré válhat. Megbízhatósága és szilárdsága elegánsan párosul a naplózó fájlrendszer előnyeivel.

Ext3Ext3

Az Ext3 Stephen Tweedie fejlesztése. Szemben a többi új generációs fájlrendszerrel, az Ext3 nem vadonatúj tervezési elvekre épül, hanem az Ext2-re. Szemben a többi új generációs fájlrendszerrel, az Ext3 nem vadonatúj tervezési elvekre épül, hanem az Ext2-re. A két fájlrendszer szorosan kapcsolódik egymáshoz. Az Ext3 fájlrendszer egyszerűen ráépíthető egy Ext2 fájlrendszerre. A legfontosabb különbség az Ext2 és Ext3 között, hogy az Ext3 támogatja a naplózást. Röviden összefoglalva, az Ext3-nak három nagy előnye van:

Egyszerű és nagyon megbízható frissítés Ext2-fájlrendszerekről

Mivel az Ext3 az Ext2 kódjára épül, valamint a lemezen lévő formátum és a metaadatok formátuma is egységes, az Ext2-ről Ext3-ra frissítés hihetetlenül egyszerű. A más naplózó fájlrendszerekre – például ReiserFS, JFS vagy XFS fájlrendszerre – való áttéréssel szemben, ami ugyancsak körülményes lehet (a teljes fájlrendszert el kell menteni, majd nulláról létrehozni), az Ext3-ra áttérés néhány perc alatt végrehajtható. Biztonságos is, mivel elképzelhető, hogy a teljes fájlrendszer újbóli létrehozása nem működik hibátlanul. A meglévő, naplózó fájlrendszerre frissítendő Ext2-rendszerek számát figyelembe véve könnyű kitalálni, hogy miért fontos az Ext3 számos rendszeradminisztrátor számára. Az Ext3 Ext2-re visszaállítása a frissítéshez hasonlóan egyszerű. Az Ext3 fájlrendszert egyszerűen le kell választani, majd újra fel kell csatolni Ext2 fájlrendszerként.

Megbízhatóság és teljesítmény

Több más naplózó fájlrendszer „csak metaadatokat” naplóz. Ez azt jelenti, hogy a metaadatok mindig konzisztens állapotban maradnak, de a fájlrendszerben tárolt adatokra ugyanez nem feltétlenül igaz. Az Ext3 a metaadatokra és az adatokra is vigyáz. E „törődés” mértéke szabályozható. Maximális biztonságot az Ext3 data=journal módba állítása nyújt (adatintegritás), de a metaadatok és adatok együttes naplózása a rendszert nagyon lelassíthatja. Viszonylag új megközelítés a data=ordered mód használata, amely az adatok és metaadatok integritását egyaránt biztosítja, de csak a metaadatokat naplózza. A fájlrendszer-illesztőprogram összegyűjti az egy metaadat-frissítéshez tartozó összes adatblokkot. Ezek az adatblokkok a metaadatok frissítése előtt a lemezre íródnak. Ennek eredményeképp a metaadatok és adatok konzisztenciája egyaránt megmarad, a teljesítmény romlása nélkül. A harmadik lehetőség a data=writeback mód, amely módban az adatok a fő fájlrendszerre íródnak, miután a metaadatok a naplóba kerültek. Teljesítmény szempontjából általában ez a legjobb választás. Így azonban előfordulhat, hogy egy rendszerösszeomlást követően a visszaállításkor régi adatok jelennek meg a fájlokban a belső fájlrendszer-integritás fenntartása mellett. Ha a rendszergazda nem állítja át, akkor az Ext3 alapértelmezés szerint data=ordered módban működik.

Ext2 fájlrendszer átalakítása Ext3 fájlrendszerré Ext2Ext2
fájlrendszer átalakítása Ext3Ext3
fájlrendszerré

Az Ext2 fájlrendszer Ext3-má átalakításához a következőket kell tennie:

  1. Hozzon létre egy Ext3 naplót a tune2fs -j parancs futtatásával root felhasználóként. Ezzel létrejön egy Ext3 napló az alapértelmezett paraméterekkel.

    Ha Ön akarja eldönteni, hogy mekkor legyen a napló és hová kerüljön, futtassa ehelyett a tune2fs -J parancsot a kívánt naplózási beállításokkal (size= és device=). A tune2fs programról további információt a tune2fs kézikönyvoldalon talál.

  2. Ahhoz, hogy a rendszer az Ext3 fájlrendszert Ext3-ként jegyezze be, szerkessze az /etc/fstab fájlt root felhasználóként: írja át a megfelelő partícióhoz megadott fájlrendszer-típust ext2-ről ext3-ra. A változás a következő rendszerújraindításkor lép érvénybe.

  3. Egy Ext3 partícióként beállított root fájlrendszer elindításához vegye fel az ext3 és a jbd modult az initrd rendszerbe. Ehhez módosítsa az /etc/sysconfig/kernel fájlt root felhasználóként úgy, hogy hozzáadja az ext3 és a jbd értéket az INITRD_MODULES változóhoz. A változások mentése után futtassa le az mkinitrd parancsot. Ez létrehoz egy új initrd rendszert és előkészíti a használatra.

XFSXFS

Az eredetileg az IRIX operációs rendszerhez tervezett XFS fejlesztését az SGI az 1990-es évek elején kezdte meg. Az XFS mögötti elképzelés egy olyan nagy teljesítményű 64 bites naplózó fájlrendszer létrehozása volt, amely a mai extrém feldolgozási igényeknek is megfelel. Az XFS kiválóan kezeli a nagy fájlokat és jól működik csúcsminőségű hardveren is. Azonban még az XFS-nek is van hátránya. A ReiserFS-hez hasonlóan az XFS is nagy gondot fordít a metaadatok integritására, de az adatok integritására már kevesebbet.

Az XFS fő funkcióinak áttekintéséből kiderül, hogy miért erős versenytársa más naplózó fájlrendszereknek a felsőkategóriás számítástechnikában.

Kiváló méretezhetőség allokációs csoportok használatával

Az XFS fájlrendszer létrehozásakor a fájlrendszer alapjául szolgáló blokkeszköz nyolc vagy több egyenlő méretű lineáris részre van osztva. Ezeket allokációs csoportoknak hívjuk. Minden allokációs csoport maga kezeli a saját inode-jait és szabad lemezterületét. Az allokációs csoportok gyakorlatilag afféle fájlrendszeren belüli fájlrendszerek. Mivel az allokációs csoportok egymástól függetlenek, a kernel egyszerre többet is megcímezhet. Ez a funkció a lelke az XFS jó méretezhetőségének. A független allokációs csoportok alapelve jól illeszkedik a többprocesszoros rendszerek igényeihez is.

Nagy teljesítmény a lemezterület hatékony kezelésével

A szabad területet és inode-okat az allokációs csoportokon belül B+-fák kezelik. A B+-fák használata nagyban hozzájárul az XFS jó teljesítményéhez és méretezhetőségéhez. Az XFS késleltetett lefoglalást használ. A lefoglalást a folyamat két részre osztásával kezeli. A függőben lévő tranzakciót RAM-ban tárolja, és a szükséges mennyiségű terület lefoglalásra kerül. Az XFS továbbra sem dönti el, hogy az adatokat pontosan hol kell tárolni (már ami a fájlrendszer konkrét blokkjait illeti). Ez a döntés az utolsó lehetséges pillanatig késleltetve van. Lehet, hogy lesz olyan nagyon rövid életű, ideiglenes adat, amelyik sosem kerül a lemezre, mivel megszűnik, mire az XFS eldönti, hogy valójában hova is kellene elmenteni. Ezáltal az XFS javítja a teljesítményt és csökkenti a fájlrendszer töredezettségét. Mivel azonban a késleltetett lefoglalás kevesebb írási eseményt eredményez, mint más fájlrendszerek, valószínű, hogy az írás közbeni rendszerösszeomlás utáni adatvesztés súlyosabb.

Előzetes foglalás a fájlrendszer-töredezettség elkerülése érdekében

Az adatok fájlrendszerre írása előtt az XFS fenntartja (előre lefoglalja) a fájlhoz szükséges szabad területet. Ezáltal a fájlrendszer töredezettsége nagyban csökken. A teljesítmény javul, mert a fájl tartalma nem oszlik szét a teljes fájlrendszeren.