Másolás írásra - CoW fájlrendszer:
A Btrfs egy másolás írásra (CoW) fájlrendszer. CoW fájlrendszerben, amikor megpróbálja módosítani az adatokat a fájlrendszeren, a fájlrendszer lemásolja az adatokat, módosítja az adatokat, majd a módosított adatokat a fájlrendszer egy másik szabad helyére írja vissza.
A Copy-on-Write (CoW) fájlrendszer legfőbb előnye, hogy a módosítani kívánt adatmennyiséget más helyre másolják, módosítják és a fájlrendszer eltérő mértékben tárolják. Az eredeti adatok mértéke nem módosul. Tehát a btrfs fájlrendszer kiküszöböli az adatok sérülésének vagy részleges frissítésének kockázatát áramkimaradás esetén az adatmódosítás során, mivel az eredeti adatok változatlanok maradnak.
A Copy-on-Write (CoW) fájlrendszer legfőbb hátránya, hogy a nagy fájlok általában széttöredeznek, amikor módosulnak. Tehát töredezettségmentesítésre van szükség egyszer-egyszer. Szerencsére a btrfs fájlrendszer támogatja az online töredezettségmentesítést. Tehát nem kell leválasztania a fájlrendszert a btrfs fájlrendszer töredezettségmentesítéséhez.
A Btrfs fájlrendszer főbb jellemzői:
A Btrfs fájlrendszer főbb jellemzői:
i) kiterjedt fájltárolás: A kiterjedés-alapú fájlrendszerben a tárolóegységet kiterjesztésnek nevezzük. A kiterjedés egy összefüggő tárterület, amelyet egy fájl számára tartanak fenn. Egy fájlhoz egy méret szükséges, függetlenül attól, hogy milyen kicsi a fájl. Nagyobb fájlok (a kiterjedésnél nagyobb fájlméret) esetén több kiterjesztésre lesz szükség. Nagyobb fájlok esetén a metaadatokat használják a fájl terjedelmének nyomon követésére. A Btrfs fájlrendszerben a metaadatok mérete lényegesen kisebb. A kisebb metaadatok javítják a tárolás hatékonyságát és a fájlrendszer teljesítményét.
ii) Hatalmas fájlméret-támogatás: A Btrfs fájlrendszerben egyetlen fájl körülbelül 2 lehet64 bájt vagy 16 EiB (exbibájt) méretű. Nem számít, mekkora a fájlod, a Btrfs támogatni tudja.
iii) Kis fájlok helytakarékos csomagolása: Normális esetben, függetlenül attól, hogy milyen kicsi a fájl, egy blokkra vagy egy kiterjedésre van szükség a fájl tárolásához. Ez rengeteg lemezterületet pazarol el. A probléma megoldása érdekében a Btrfs fájlrendszer kisebb fájlokat ágyaz be a metaadatokba a kisebb fájlok hatékony tárolásához.
iv) Helytakarékos indexelt könyvtárak: A btrfs fájlrendszer könyvtárakat kétféle módon indexelik. A fájlnév kereséshez kulcsalapú indexelést használnak. Az adatok hivatkozásához inode alapú kulcsindexelést használnak. A kétszintű indexelés javítja a könyvtár / fájl keresési teljesítményt és csökkenti az indexek tárolási követelményeit.
v) Dinamikus inode-allokáció: Az 1 fájl hivatkozásához 1 inode szükséges. Sok fájlrendszer (i.e., Ext4) rögzített számú inóddal rendelkezik. Tehát, ha túl sok kicsi fájlt hoz létre, akkor sok hely maradhat a lemezén, de nem fog tudni új fájlokat létrehozni. A fájlrendszer létrehozása után nem növelheti az inódok maximális számát.
A Btrfs úgy oldja meg ezt a problémát, hogy dinamikusan osztja ki az inódákat, ha szükséges. Tehát annyi fájlt hozhat létre, amennyit csak akar, amennyiben van szabad lemezterülete.
vi) Írható pillanatképek és csak olvasható pillanatképek: A Btrfs fájlrendszer támogatja a pillanatképeket. Pillanatképet készíthet az aktuális fájlrendszerről, amelynek segítségével visszaállíthatja adatait, ha véletlenül eltávolított néhány fájlt vagy megrongált néhány adatot.
Alapértelmezés szerint a btrfs pillanatképek csak olvashatók. Miután csak olvasható pillanatfelvételt készített, nem változtathat meg egyetlen fájlt / könyvtárat sem abban a pillanatképben. Mindenesetre, ha bármilyen fájlt / könyvtárat szeretne megváltoztatni, miután elkészítette a meglévő Btrfs fájlrendszer pillanatképét, megváltoztathatja az írásvédett pillanatképet írható pillanatképre, és módosíthatja az abban a pillanatképben található fájlokat / könyvtárakat.
vii) Almennyiségek: A Btrfs fájlrendszernek sok almennyisége lehet. Az almennyiség a btrfs fájlrendszer meglévő fájlrendszerének gyökérfa (fő) elnevezett bináris fája (B-fa) (vagy belső / logikai fájlrendszer-gyökér). Az almennyiség nem önálló blokkeszköz. De a Btrfs almennyiségeket egyenként is csatlakoztathatja. A részmennyiségeket névtérnek tekintheti.
viii) A kvóta támogatásának megfelelő mennyisége: Kvótákat allokálhat a térfogatokhoz is. A kvóta túllépése után nem adhat hozzá új adatokat az almennyiséghez. A Btrfs részmennyiségi kvóták létrehozásához nincs szükség külön programokra.
ix) Az adatok és a metaadatok ellenőrző összegei: Az adatok sérülésének elkerülése érdekében a Btrfs alapértelmezés szerint a crc32c ellenőrző összegű algoritmusokat használja az adatokhoz és a fájlrendszer metaadataihoz. Az ellenőrző összegeket a fájlrendszer tárolja, hogy automatikusan ellenőrizze a fájlrendszer hibáit és az adatok sérüléseit a háttérben.
A Btrfs számos más ellenőrző összegű algoritmust támogat: xxhash, sha256 és blake2b.
x) Tömörítés: A Btrfs fájlrendszer támogatja az átlátszó fájltömörítést. A btrfs fájlrendszer fájljainak tömörítése és kicsomagolása a háttérben automatikusan megtörténik.
A Btrfs 3 tömörítési algoritmust támogat: ZLIB, LZO és ZSTD.
A ZLIB a btrfs fájlrendszer alapértelmezett tömörítési módszere.
xi) Integrált több eszköz támogatása: A Btrfs fájlrendszerek beépített logikai kötetkezelő (LVM) támogatással rendelkeznek. Több tárolóeszközt is felvehet egyetlen btrfs fájlrendszerbe. A RAID tömböket úgy is beállíthatja a btrfs fájlrendszeren, hogy nincs szükség külön szoftverre.
A Btrfs fájlrendszer támogatja az adatcsíkozást, az adatok tükrözését, az adatok csíkozását + tükrözését, valamint az egy- és kettős paritásos megvalósításokat.
Adatcsíkozás: Ha több tárolóeszközt adott hozzá ugyanabba a btrfs fájlrendszerbe, a btrfs ugyanazt a fájlt különböző fizikai eszközökön / partíciókon tárolhatja. Ezt hívjuk adatcsíkolásnak. Az adatcsíkozás javítja a fájlrendszer olvasási / írási teljesítményét. A RAID-0 széles körben használja az adatcsíkozás funkciót.
Adatok tükrözése: Ha több tárolóeszközt adott hozzá ugyanabba a btrfs fájlrendszerbe, akkor az egy tárolóeszközre írt összes adatot az összes többi tárolóeszközre írják. Ezt nevezzük adat tükrözésnek. A RAID-1 széles körben használja az adat tükrözés funkciót.
Adatcsíkok + egy paritás: A RAID-5 adatcsíkot és egyetlen elosztott paritást használ. Ha több tárolóeszközt adott hozzá egy btrfs fájlrendszerhez, akkor a RAID-5 több adattároló eszközön levágja az adatokat, és kiszámítja és tárolja a paritásblokkokat a tárolóeszközökön. A RAID-5 egyetlen meghajtó hibát képes fenntartani.
Adatcsíkok + kettős paritás: A RAID-6 adatcsíkot és kettős elosztott paritást használ. Ha több tárolóeszközt adott hozzá egy btrfs fájlrendszerhez, akkor a RAID-6 több adattároló eszközön fogja levágni az adatokat, és kettős paritásblokkokat számol ki és tárol a tárolóeszközökön. A RAID-6 két meghajtóhibát képes fenntartani. Ettől eltekintve megegyezik a RAID-5-tel (adatcsíkozás + egy paritás).
Adatcsíkozás + tükrözés: A RAID-10 egyszerre alkalmaz adatcsíkot és tükrözést. A RAID-10 páros számú, azonos méretű tárolóeszközt igényel egyetlen btrfs fájlrendszerhez. A RAID-10 btrfs fájlrendszerbe felvehető tárolóeszközök minimális száma 4. A tárolóeszköz fele adatcsíkolásra, a másik fele pedig a tárolóeszközök első felének adatainak tükrözésére szolgál (ahol az adatok csíkosak).
xii) SSD-tudatosság és optimalizálás: A btrfs fájlrendszer ismeri az SSD-t, és rendelkezik néhány SSD-optimalizálási funkcióval. A btrfs fájlrendszer rendelkezik az SSD tárolóeszközök TRIM / Discard támogatásával is.
A TRIM szolgáltatás képes felismerni és megjelölni a már nem használt adatmennyiségeket. Miután megjelölték a kiterjesztéseket, a btrfs fájlrendszer automatikusan törölheti őket, hogy a többi fájl felhasználhassa ezeket az adatkiterjesztéseket.
Az Elvetés funkció eltávolítja az SSD összes adatkiterjesztését. Ha el akarja adni az SSD-jét, ez a szolgáltatás jól jöhet.
xiii) Hatékony növekményes biztonsági mentés: A Btrfs támogatja az inkrementális mentést. Amikor először készít biztonsági másolatot a btrfs fájlrendszerről, pillanatképet készít az aktuális fájlrendszerről. Ezután a későbbi biztonsági másolatokat összehasonlítják az első pillanatképpel, és csak a változásokat tárolják a lemezen. Tehát minden későbbi biztonsági másolat kevesebb helyet foglal el, és a mentés gyorsabb lesz.
xiv) Háttérradír: Ez egy Btrfs fájlrendszeri folyamat, amelyet a Btrfs fájlrendszerben redundáns (több példányban) tárolt fájlokon található hibák keresésére és kijavítására használnak.
xv) Online fájlrendszer töredezettségmentesítése: Korábban elmagyaráztam a Btrfs Copy-on-Write fájlrendszer működését. A nagy fájlok a Btrfs fájlrendszer több részében vannak tárolva. A nagy fájlok módosításakor a módosítandó kiterjedések a fájlrendszer különböző szabad kiterjesztéseire másolódnak és ott módosulnak. Tehát a módosítatlan adat kiterjedések is megmaradnak, ha ez a fájlrendszer helyreállításához szükséges. Ez széttöredezettséget okoz (egy nagy fájl adatmennyisége nem lesz folyamatos, és szétszóródik az egész tárolóeszközön) a fájlrendszeren, mivel a nagy fájlok módosulnak. A túl sok töredezettség negatívan befolyásolja a fájlrendszert (lassabbá teszi a fájlrendszert az olvasási / írási műveleteknél).
A probléma megoldása érdekében a btrfs fájlrendszer támogatja az online fájlrendszer töredezettségmentesítését. Az online töredezettségmentesítéssel nem kell leválasztania a fájlrendszert a fájlrendszer töredezettségmentesítéséhez. Folyamatban tarthatja a fájlrendszert és továbbra is töredezettségmentesítheti. A töredezettségmentesítéssel a fájlok kiterjedése a fájlrendszer köré kerül, hogy ugyanolyan nagy fájl kiterjedése a lehető legkisebb legyen. A töredezettségmentesítés javítja a fájlrendszer teljesítményét.
xvi) Offline fájlrendszer ellenőrzése: A Btrfs fájlrendszer számos beépített eszközzel rendelkezik, amelyekkel ellenőrizheti a fájlrendszer hibáit és kijavíthatja azokat. Ezekkel az eszközökkel kijavíthatja a meghibásodott Btrfs fájlrendszert is (amelyet nem lehet csatlakoztatni).
xvii) A meglévő Ext2 / 3/4 és ReiserFS fájlrendszerek helyben történő átalakítása: A Btrfs fájlrendszer rendelkezik egy beépített btrfs-convert segédprogrammal, amelyet felhasználva meglévő Ext2 / 3/4 és ReiserFS fájlrendszereket Btrfs fájlrendszerekké konvertálhat.
A Btrfs fájlrendszer-átalakító program beolvassa a meglévő Ext2 / 3/4 (vagy ReiserFS) fájlrendszer metaadatait, létrehozza a Btrfs metaadatokat és elmenti azokat a fájlrendszerbe. A fájlrendszer mind a Btrfs, mind az Ext2 / 3/4 (vagy ReiserFS) metaadatokat megőrzi. A Btrfs fájlrendszer ugyanazokra a fájlblokkokra mutat, amelyeket az Ext2 / 3/4 (vagy ReiserFS) fájlrendszer fájlok használnak. A meglévő fájlrendszert és az adatblokkokat érintetlenül tartják, mivel a Btrfs egy írásra másolás (CoW) fájlrendszer. Ha egy fájlt módosít, a Btrfs fájlrendszer az eredeti adatblokkokat új szabad kiterjesztésekre másolja és ott módosítja.
xviii) vetőmag-eszközök: A Btrfs fájlrendszer támogatja az alapeszközöket. Létrehozhat egy írásvédett fájlrendszert, és sablonként használhatja (mag eszköz) más Btrfs fájlrendszerek létrehozásához. Ennek az az előnye, hogy csak a módosított adatokat írja be az új fájlrendszerbe. Az eredeti adatokat (a vetőgépeken) a jelenlegi állapotuk szerint megőrzik. Ez a szolgáltatás sok lemezterület és adatredundancia megtakarítására használható.
xix) Altérfogat-változások küldése / fogadása: A btrfs fájlrendszer részmennyiségi változásokat küldhet / fogadhat. A Btrfs fájlrendszer elküldheti az almennyiség növekményes változásait egy másik Btrfs fájlrendszerbe (másik számítógépben is lehet), amely fogadhatja az almennyiség változását. Ez a szolgáltatás a Btrfs fájlrendszer növekményes biztonsági mentésének készítésére szolgál helyileg vagy távolról. Ez a módszer gyorsabb és hatékonyabb, mint az rsync.
xx) Kötegelt / sávon kívüli deduplikáció: A Btrfs fájlrendszer támogatja a kötegelt vagy sávon kívüli deduplikációt. A másolás azután történik, hogy egy fájlt beírtak a fájlrendszerbe. A Btrfs fájlrendszer aktívan megvizsgálja a teljes fájlrendszert azonos kiterjedés esetén, és minden kiterjedésből csak egy példányt tart meg (eltávolítja a felesleges / ismétlődő kiterjesztéseket). Ugyanaz a copy-on-write (CoW) elv érvényesül erre a feladatra. A deduplikáció sok lemezterületet takarít meg.
xxi) Swapfile támogatás: Ha Linux Kernel 5 rendszert használ.0 vagy újabb, swap fájlokat hozhat létre a Btrfs fájlrendszeren.
A Swapfile-nak vannak bizonyos korlátai a Btrfs fájlrendszerben:
- A cserefájlt NoCoW-ként kell lefoglalni (nem másol-írásra)
- A cserefájlban nem lehet engedélyezni a tömörítést.
A Btrfs fájlrendszer stabilitása:
A Btrfs fájlrendszert a Btrfs csapata aktívan fejleszti. A fájlrendszer legtöbb funkciója stabil az írás idején. Néhány speciális funkció még nem elég stabil a termelési környezethez. A Btrfs csapata keményen dolgozik ezen stabilitási kérdések megoldásán.
Ha a Btrfs fájlrendszert szeretné használni a termelési kiszolgálón, ellenőrizze a hivatalos Status - btrfs Wiki oldalt, hogy megtudja, a szükséges fájlrendszer-szolgáltatások elég stabilak-e az Ön számára. Ne felejtsen el futtatni néhány tesztet a Btrfs fájlrendszer utolsó telepítése előtt, és ne felejtse el megőrizni a fontos adatok biztonsági másolatait. A biztonsági mentés megőrzése mindig fontos a termelési környezetek számára.
Az Ext4 fájlrendszer jövőbeli cseréje:
A Btrfs fájlrendszert gyorsan fejlesztik. A Btrfs fejlesztői csoport a fájlrendszer stabilitásával is törődik. Tehát mindent megtesznek, hogy a lehető legstabilabb legyen, miközben fejlesztik a btrfs fájlrendszert. Amint a btrfs fájlrendszer teljesen kifejlesztett, és az összes szolgáltatás elég stabil, akkor helyettesítheti az Ext4 fájlrendszert.
Referenciák:
[1] btrfs Wiki - https: // btrfs.wiki.kernel.org / index.php / Main_Page
[2] BTRFS - A kernelfa dokumentációja - https: // www.kernel.org / doc / html / latest / filesystems / btrfs.html
[3] BTRFS - Szószedet - https: // btrfs.wiki.kernel.org / index.php / Szószedet
[4] A „Btrfs” fájlrendszer jellemzői - https: // www.napló.com / features-of-the-btrfs-fájlrendszer /
[5] A fájlrendszerek összehasonlítása - https: // en.wikipédia.org / wiki /_fájl_rendszerek összehasonlítása
[6] Btrfs design - btrfs Wiki - https: // btrfs.wiki.kernel.org / index.php / Btrfs_design
[7] talán az inódok fogyását „komolyabban” lehetne venni? - https: // lwn.net / Cikkek / 724522 /
[8] A Btrfs csak olvasható pillanatképek írhatóvá tétele - https: // markandruth.társ.uk / 2016/12/29 / a-btrfs-csak olvasható-pillanatkép-írható készítése
[9] Adatcsíkozás - https: // en.wikipédia.org / wiki / Data_striping
[10] GYIK - btrfs wiki - https: // btrfs.wiki.kernel.org / index.php / FAQ
[11] Normál RAID-szintek - https: // hu.wikipédia.org / wiki / Standard_RAID_levels
[12] Vágás (számítás) - https: // en.wikipédia.org / wiki / Trim_ (számítástechnika)
[13] Félvezető-meghajtó - ArchWiki - https: // wiki.archlinux.org / index.php / Solid_state_drive # TRIM
[14] Btrfsck - btrfs Wiki - https: // btrfs.wiki.kernel.org / index.php / Btrfsck
[15] Konvertálás az Ext3 / 4 és a ReiserFS-ből - btrfs Wiki - https: // btrfs.wiki.kernel.org / index.php / Conversion_from_Ext3
[16] Növekményes biztonsági mentés - btrfs Wiki - https: // btrfs.wiki.kernel.org / index.php / Inkrementális_Másolat
[17] Deduplikáció - btrfs Wiki - https: // btrfs.wiki.kernel.org / index.php / deduplikáció
[18] Állapot - btrfs Wiki - https: // btrfs.wiki.kernel.org / index.php / Status