btrfs
A fáljrendszer tipikusan az a dolog, amivel kapcsolatban nem várunk el kĂĽlönösebb innováciĂłt, vagy izgalmas szolgáltatásokat. Éppen ellenkezĹ‘leg, az izgalomnak minden formáját szeretnĂ©nk kerĂĽlni vele kapcsolatban, Ă©s egyetlen dolog fontos: hogy biztonságosan tárolja az adatainkat. Persze az sem árt, ha viszonylag gyorsan vĂ©gzi a fájlműveleteket, de ezzel tĂ©nyleg fel is soroltuk mindazon elvárásokat, amik felmerĂĽlhetnek ezzel a tĂ©mával kapcsolatban. Ennek ellenĂ©re, az elmĂşlt Ă©vekben viszonylagos állandĂłságot jelentĹ‘ ext3 korszak után láthatĂłan Ă©lĂ©nkĂĽlni kezdett ez a terĂĽlet: az ext3 utĂłdja, az ext4 az Ubuntu 9.04-es kiadásában vált opciĂłkĂ©nt elĂ©rhetĹ‘vĂ© a telepĂtĹ‘bĹ‘l, az Ubuntu 9.10 Ăłta pedig ez az alapĂ©rtelmezett fájlrendszer.
A Fedora mĂ©g korábban, az idĂ©n jĂşniusban megjelent Fedora 11 kiadásában tette alapĂ©rtelmezettĂ©, igaz, nĂ©mi megkötĂ©ssel: mivel ekkor mĂ©g a Fedorában találhatĂł GRUB nem támogatta az ext4-et, ezĂ©rt szĂĽksĂ©g volt egy kĂĽlön /boot partĂciĂłra is ext3 fájlrendszerrel. A másfĂ©l hĂłnappal korábban megjelent Ubuntu 9.04, bár nem alapĂ©rtelmezett lehetĹ‘sĂ©gkĂ©nt kĂnálta az ext4 formátumot, de tudott rĂłla bootolni, Ăgy ott nem volt szĂĽksĂ©g ilyen kerĂĽlĹ‘megoldásra. Az ext4 legfĹ‘bb elĹ‘nye az ext3-hoz kĂ©pest a jobb teljesĂtmĂ©ny bizonyos fájlműveleteknĂ©l, valamint a korábbinál jĂłval gyorsabb fsck folyamat. Az ext4 ugyanakkor továbbra is a rĂ©gi, jĂłl bevált, de nem tĂşl modern alapokra Ă©pĂĽl. A nem tĂşl távoli jövĹ‘ben azonban egy Ăşj fájlrendszer veheti át a helyet a GNU/Linux világban, ami teljesen Ăşj alapokra Ă©pĂtkezik: ez a btrfs.
A btrfs törtĂ©nete 2007-ben kezdĹ‘dött, amikor Chris Mason, a fájlrendszer kitalálĂłja Ă©s a fejlesztĂ©s elindĂtĂłja az Oracle alkalmazásába kerĂĽlt. KöszönhetĹ‘en a gyors fejlĹ‘dĂ©sĂ©nek, valamint annak, hogy a projekt számára az Oracle stabil hátteret biztosĂt, a fájlrendszer rendkĂvĂĽl gyorsan a mainline kernel rĂ©sze lett: a 2.6.29rc1 kiadás Ăłta elĂ©rhetĹ‘ tesztelĂ©sre. Ennek eredmĂ©nyekĂ©nt mára a btrfs egy valĂłban nyĂlt projekttĂ© vált, Ă©s a fejlesztĂ©sĂ©ben olyan vállalatok is rĂ©szt vesznek, mint pĂ©ldául a Red Hat, SUSE, Intel, IBM, HP vagy a Fujitsu. A btrfs-t gyakran hasonlĂtják össze a Sun ZFS elnevezĂ©sű fájlrendszerĂ©vel, amit pĂ©ldául az OpenSolarisban is találhatunk. Ez pedig már csak azĂ©rt is Ă©rdekes kĂ©rdĂ©s, mert idĂ©n áprilisban bejelentettĂ©k, hogy a kĂ©t vállalat megállapodott arrĂłl, hogy az Oracle felvásárolja a Sun-t, Ăgy a kĂ©t hasonlĂł kĂ©pessĂ©gekkel rendelkezĹ‘ fájlrendszer egy tulajdonoshoz kerĂĽlhet. Ugyanakkor, mint az az LWN kiválĂł cikkĂ©bĹ‘l kiderĂĽl, bár a ZFS Ă©s a btrfs tudását tekintve hasonlĂłak, belsĹ‘ felĂ©pĂtĂ©sĂĽket tekintve jelentĹ‘sen eltĂ©rnek.
Ezek után persze jogosan merĂĽl fel a kĂ©rdĂ©s, hogy mĂ©gis, milyen kĂĽlönleges kĂ©pessĂ©gei lesznek a btrfs-nek: egyáltalán, mit tudhat egy fájlrendszer. Nos, a btrfs a fájlok egyszerű tárolásán tĂşl sok olyan szolgáltatással rendelkezik, amit a ma Linuxon elterjedt fájlrendszerek mĂ©g nem nyĂşjtanak. Ha pedig már most szeretnĂ©nk egy kicsit bepillantást nyerni ezekbe, tulajdonkĂ©ppen nincs kĂĽlönösebb akadálya, ugyanis a btrfs már most is elĂ©rhetĹ‘ tesztelĂ©sre pĂ©ldául Ubuntu 9.10 vagy Fedora 12 alatt. Ubuntu alatt, ha btrfs-t szeretnĂ©nk használni, a btrfs-tools csomagot kell telepĂtenĂĽnk, mĂg Fedora 12 alatt a btrfs-progs csomagra lesz szĂĽksĂ©gĂĽnk.
Ha szeretnĂ©nk lĂ©trehozni egy btrfs partĂciĂłt, azt az mkfs.btrfs segĂtsĂ©gĂ©vel tehetjĂĽk meg, a sudo mkfs.btrfs /dev/sdXX (pĂ©ldául sudo mkfs.btrfs /dev/sdb1) parancs kiadásával: gondolom, mondanom sem kell, hogy nagyon nem mindegy, itt milyen elĂ©rĂ©si Ăştvonalat adunk meg, hiszen az adott partĂciĂłrĂłl ilyenkor minden adatot eleveszĂtĂĽnk. Vagyis vagy egy kĂĽlön, csak erre szánt partĂciĂłt használjunk a kĂsĂ©rletezĂ©sre, vagy valamilyen kĂĽlsĹ‘ adattárolĂł eszközt. A btrfs jelen pillanatban kizárĂłlag tesztelĂ©sre valĂł, ezĂ©rt semmilyen fontos vagy kritikus adatot ne tároljuk rajta anĂ©lkĂĽl, hogy lenne egy másolat rĂłla egy biztonságos helyen. Miután lĂ©trehoztuk a btrfs partĂciĂłnkat, a btrfsctl nevű eszköz segĂtsĂ©gĂ©vel tudunk rajta kĂĽlönfĂ©le műveleteket vĂ©gezni. A btrfsctl -s nĂ©v /elĂ©rĂ©si/Ăştvonal parancs segĂtsĂ©gĂ©vel egy snapshotot hozhatunk lĂ©tre, vagyis rögzĂthetjĂĽk a aktuális állapotot, Ă©s ehhez a ponthoz kĂ©sĹ‘bb bármikor visszatĂ©rhetĂĽnk. Ha pĂ©ldául a snapshotnak a neve snap, Ă©s a btrfs partĂciĂłnk a /mnt/btrfs alatt találhatĂł, akkor a következĹ‘ parancsot kell kiadnunk: btrfsctl -s snap /mnt/btrfs. Ez copy-on-write mĂłdon törtĂ©nik, vagyis nem igĂ©nyel extra tárhelyet addig, amĂg nem mĂłdosĂtunk valamit: Ă©s ezt követĹ‘en is csak a változások foglalnak helyet. TermĂ©szetesen arra is lehetĹ‘sĂ©gĂĽnk van, hogy egy ilyen snapshotot mountoljunk: mount -t btrfs -o subvol=nĂ©v /dev/sdXX /elĂ©rĂ©si/Ăştvonal. Az elĹ‘bbi pĂ©ldánál maradva: mount -t btrfs -o subvol=snap /dev/sdb1 /mnt/btrfs
A másik Ă©rdekes szolgáltatása a btrfs-nek, hogy a partĂciĂłkat akár menet közben is átmĂ©retezhetjĂĽk: növelhetjĂĽk, vagy akár csökkenthetjĂĽk is a mĂ©retĂĽket. Ehhez a sudo btrfsctl -r mĂ©ret /elĂ©rĂ©si/Ăştvonal parancsot használhatjuk: vagyis, ha mondjuk 2 GByte-ra szeretnĂ©nk a /mnt/btrfs csatolási ponton lĂ©vĹ‘ partĂciĂłt mĂ©retezni, akkor a sudo btrfsctl -r 2g /mnt/btrfs parancsot kell kiadnunk. Ha szeretnĂ©nk 100 MByte-tal csökkenteni a mĂ©retĂ©t, akkor azt a sudo btrfsctl -r -100m /mnt/btrfs utasĂtás segĂtsĂ©gĂ©vel tehetjĂĽk meg. Ha pedig szeretnĂ©nk a maximális mĂ©retre növelni, egyszerűen a sudo btrfsctl -r max /mnt/btrfs sort kell begĂ©pelnĂĽnk a terminálba. A btrfs arra is lehetĹ‘sĂ©get biztosĂt, hogy akár menet közben töredezettsĂ©g-mentesĂtsĂĽnk egy fájlt vagy egy könyvtárat. Erre a btrfsctl -d utasĂtás szolgál. TermĂ©szetesen mielĹ‘tt bármit is csinálnánk a btrfsctl nevű eszközzel, mindenkĂ©ppen Ă©rdemes alaposan átolvasni Ă©s Ă©rtelmezni a hozzá tartozĂł ĂştmutatĂłt a man btrfsctl parancs kiadásával.
A tervek szerint a btrfs akár már a Fedora következĹ‘ kiadásában, a várhatĂłan jövĹ‘ májusban megjelenĹ‘ Fedora 13-ban (fejlesztĹ‘i kĂłdnevĂ©n Goddard) elĂ©rhetĹ‘ lehet a telepĂtĹ‘bĹ‘l, Ă©s bizonyos kĂ©pessĂ©geit aktĂvan használni is fogják, bár továbbra sem lesz alapĂ©rtelmezett. A Wiki oldalon találhatĂł specifikáciĂł szerint a cĂ©l az, hogy egy yum plugin segĂtsĂ©gĂ©vel minden frissĂtĂ©s elĹ‘tt kĂ©szĂĽljön egy pillanatfelvĂ©tel a root partĂciĂłrĂłl, Ăgy problĂ©ma esetĂ©n bármikor egyszerűen vissza lehet tĂ©rni egy korábbi, jĂłl működĹ‘ állapothoz. Ez egyben azt is jelenti, hogy amennyiben a felhasználĂłnak nincs kĂĽlön partĂciĂłja a /home számára, Ăşgy az is visszakerĂĽl egy korábbi állapotába. TermĂ©szetesen ez nem egy visszafordĂthatatlan dolog, hiszen bármikor, bármelyik pillanatfelvĂ©telt mountolhatjuk, vagyis az adatok ettĹ‘l mĂ©g nem vesznek el, bár nyilván egy kezdĹ‘ felhasználĂłt összezavarhat. Ennek ellenĂ©re, ha btrfs-t szeretnĂ©nk használni a root számára, Ăşgy Ă©rdemes lesz majd a /home-ot kĂĽlön partĂciĂłra tenni.
Azt egyelĹ‘re mĂ©g nem lehet tudni, hogy a fenti fejlesztĂ©s vĂ©gĂĽl bekerĂĽl-e a Fedora 13-ba, vagy csak egy kĂ©sĹ‘bbi kiadásban látjuk majd viszont. Mint ahogy jelen pillanatban mĂ©g arrĂłl sincsenek informáciĂłink, hogy az Ubuntu mikor kezdi el majd használni ezt az Ăşj fájlrendszert. Mivel az Ubuntu 10.04 egy LTS, vagyis hosszĂş távon támogatott kiadás lesz, Ă©s a fejlesztĹ‘k elsĹ‘dlegesen a stabilitásra Ă©s kiforrottságra helyezik a hangsĂşlyt, Ăgy nem valĂłszĂnű, hogy ebben hivatalosan támogatott opciĂłkĂ©nt megjelenhet a btrfs. Legkorábban tehát jövĹ‘ Ĺ‘sszel, az Ubuntu 10.10-ben találkozhatunk vele. ValĂłszĂnűbb azonban, hogy csak a 11.04-es kiadásban lesz elĂ©rhetĹ‘ a telepĂtĹ‘bĹ‘l opciĂłkĂ©nt, Ă©s legkorábban a 11.10-es kiadástĂłl lehet alapĂ©rtelmezett. Persze mindez csak spekuláciĂł, hiszen ezzel kapcsolatban egyelĹ‘re semmilyen hivatalos állásfoglalás nem jelent meg, Ă©s minden attĂłl fĂĽgg, hogy milyen ĂĽtemben fejlĹ‘dik majd a btrfs. Az elmĂşlt 2 Ă©v eredmĂ©nyei azonban mindenkĂ©ppen bizakodásra adnak okot.