Btrfs

Úvod do súborového systému Btrfs

Úvod do súborového systému Btrfs
Btrfs (B-Tree Filesystem) je moderný súborový systém copy-on-write (CoW) pre Linux. Cieľom Btrfs je implementovať mnoho pokročilých funkcií súborového systému so zameraním na odolnosť voči chybám, opravy a ľahkú správu. Súborový systém btrfs je navrhnutý tak, aby podporoval požiadavky na vysokovýkonné a veľké úložné servery. Je vhodný pre dátové centrá v petabajtovom meradle, ako aj pre mobilné telefóny.V tomto článku sa budem venovať súborovému systému Btrfs a jeho funkciám. Takže poďme na to.

Kopírovať pri zápise - CoW Filesystem:

Btrfs je súborový systém copy-on-write (CoW). Keď sa v súborovom systéme CoW pokúsite upraviť údaje v súborovom systéme, súborový systém skopíruje údaje, upraví ich a potom zapíše upravené údaje späť na iné voľné miesto v súborovom systéme.

Hlavnou výhodou súborového systému Copy-on-Write (CoW) je, že rozsah údajov, ktorý chce upraviť, sa skopíruje na iné miesto, upraví sa a uloží sa v inom rozsahu súborového systému. Rozsah pôvodných údajov sa nemení. Súborový systém btrfs teda môže eliminovať riziko poškodenia údajov alebo čiastočnej aktualizácie v prípade výpadku napájania počas úpravy údajov, pretože pôvodné údaje zostanú nezmenené.

Hlavnou nevýhodou súborového systému Copy-on-Write (CoW) je to, že veľké súbory majú tendenciu sa pri ich úprave fragmentovať. Raz za čas sa teda vyžaduje defragmentácia. Našťastie súborový systém btrfs podporuje online defragmentáciu. Na defragmentáciu súborového systému btrfs teda nemusíte odpojiť súborový systém.

Hlavné vlastnosti súborového systému Btrfs:

Hlavné vlastnosti súborového systému Btrfs sú:

i) Ukladanie súborov podľa rozsahu: V súborovom systéme založenom na rozsahu sa úložná jednotka nazýva rozsah. Rozsahom je súvislá oblasť úložiska vyhradená pre súbor. Jeden súbor vyžaduje jeden rozsah bez ohľadu na to, aký malý je súbor. Pre väčšie súbory (veľkosť súboru je väčšia ako veľkosť rozsahu) bude potrebných viac rozsahov. V prípade väčších súborov sa na sledovanie rozsahu, ktorý súbor používa, použijú metadáta. V súborovom systéme Btrfs majú metadáta podstatne menšiu veľkosť. Menšie metadáta zlepšujú efektívnosť úložiska a výkon súborového systému.

ii) Podpora obrovských rozmerov súborov: V súborovom systéme Btrfs môže byť jeden súbor asi 264 bajtov alebo veľkosť 16 EiB (exbajtov). Bez ohľadu na to, aký veľký je váš súbor, Btrfs ho môže podporovať.

iii) Priestorovo efektívne balenie malých súborov: Normálne, bez ohľadu na to, aký malý je súbor, bude jeho uloženie vyžadovať jeden blok alebo jeden rozsah. Takto zbytočne strácate miesto na disku. Na vyriešenie tohto problému vloží súborový systém Btrfs menšie súbory do metadát, aby efektívne ukladal menšie súbory.

iv) Priestorovo efektívne indexované adresáre: Adresáre súborového systému btrfs sú indexované dvoma rôznymi spôsobmi. Na vyhľadávanie názvu súboru sa používa indexácia podľa kľúča. Na referenčné údaje sa používa indexovanie kľúčov na základe inodov. Dvojúrovňové indexovanie zlepšuje výkon vyhľadávania adresárov a súborov a znižuje požiadavky na ukladanie indexov.

v) Dynamické prideľovanie inód: Potrebujete 1 inode na odkazovanie na 1 súbor. Veľa súborových systémov (t.j.e., Ext4) majú pevný počet inódov. Takže ak vytvoríte príliš veľa malých súborov, môže vám na disku zostať veľa miesta, ale nebudete môcť vytvárať žiadne nové súbory. Po vytvorení súborového systému tiež nemôžete zvýšiť maximálny počet inódov.

Btrfs tento problém rieši dynamickým prideľovaním inód podľa potreby. Môžete teda vytvoriť ľubovoľný počet súborov, pokiaľ máte na disku voľné miesto.

vi) Zapisovateľné snímky a snímky iba na čítanie: Súborový systém Btrfs podporuje snímky. Môžete urobiť snímku aktuálneho súborového systému, ktorú môžete použiť na obnovenie svojich údajov, ak ste omylom odstránili niektoré súbory alebo poškodili niektoré údaje.

V predvolenom nastavení sú snímky btrfs iba na čítanie. Po vytvorení snímky iba na čítanie nemôžete na tejto snímke meniť žiadne súbory ani adresáre. V každom prípade, ak chcete po vytvorení snímky existujúceho súborového systému Btrfs zmeniť akékoľvek súbory / adresáre, môžete zmeniť snímku iba na čítanie na snímku zapisovateľnú a upraviť všetky súbory / adresáre v tejto snímke.

vii) Podskupiny: Súborový systém Btrfs môže mať veľa čiastkových zväzkov. Subvolume je pomenovaný binárny strom (B-strom) (alebo interný / logický koreň súborového systému) existujúceho koreňového stromu súborového systému (hlavný) súborového systému btrfs. Podväzok nie je vlastné blokové zariadenie. Ale čiastkové zväzky Btrfs môžete pripojiť jednotlivo. Podväzky si môžete predstaviť ako menný priestor.

viii) Podpora kvót vedomých subvolume: Môžete prideliť kvóty aj pre čiastkové zväzky. Po prekročení kvóty nebudete môcť do čiastkového zväzku pridať žiadne nové údaje. Na vytvorenie kvót podpoložiek Btrfs nebudete potrebovať žiadne samostatné programy.

ix) Kontrolné súčty údajov a metadát: Aby sa zabránilo poškodeniu údajov, používa Btrfs predvolene algoritmy kontrolného súčtu crc32c pre údaje a metadáta súborového systému v predvolenom nastavení. Kontrolné súčty sa ukladajú v súborovom systéme, aby sa automaticky skontrolovali chyby súborového systému a poškodenia údajov na pozadí.

Btrfs podporuje mnoho ďalších algoritmov kontrolného súčtu: xxhash, sha256 a blake2b.

x) Kompresia: Systém súborov Btrfs podporuje transparentnú kompresiu súborov. Kompresia a dekompresia súborov v súborovom systéme btrfs sa vykonáva na pozadí automaticky.

Btrfs podporuje 3 kompresné algoritmy: ZLIB, LZO a ZSTD.

ZLIB je predvolená metóda kompresie súborového systému btrfs.

xi) Integrovaná podpora viacerých zariadení: Systémy súborov Btrfs majú zabudovanú podporu správcu logických zväzkov (LVM). Do jedného súborového systému btrfs môžete pridať viac úložných zariadení. Môžete tiež nakonfigurovať polia RAID na súborovom systéme btrfs bez potreby ďalšieho softvéru.

Súborový systém Btrfs podporuje striping dát, zrkadlenie dát, striping dát + zrkadlenie a implementácie jednej a dvojitej parity.

Striping dát: Ak ste do rovnakého súborového systému btrfs pridali viac úložných zariadení, btrfs môže uložiť ten istý súbor na rôzne fyzické zariadenia / oddiely. Toto sa nazýva pruhovanie údajov. Proklad dát zvyšuje výkon čítania a zápisu súborového systému. RAID-0 vo veľkej miere využíva funkciu pruhovania údajov.

Zrkadlenie údajov: Ak ste do rovnakého súborového systému btrfs pridali viac úložných zariadení, všetky údaje zapísané na jedno úložné zariadenie sa zapíšu na všetky ostatné úložné zariadenia. Toto sa nazýva zrkadlenie dát. RAID-1 vo veľkej miere využíva funkciu zrkadlenia údajov.

Striping dát + jedna parita: RAID-5 využíva dátové pásy a jednu distribuovanú paritu. Ak ste do súborového systému btrfs pridali viac úložných zariadení, RAID-5 odstráni údaje na viacerých úložných zariadeniach a vypočíta a uloží paritné bloky medzi úložnými zariadeniami. RAID-5 môže vydržať zlyhanie jednej jednotky.

Striping dát + dvojitá parita: RAID-6 využíva striping dát a dvojitú distribuovanú paritu. Ak ste do súborového systému btrfs pridali viac úložných zariadení, RAID-6 odstráni údaje na viacerých úložných zariadeniach a vypočíta a uloží bloky dvojitej parity medzi úložné zariadenia. RAID-6 môže vydržať dve poruchy disku. Okrem toho je to rovnaké ako RAID-5 (striping dát + jedna parita).

Striping dát + zrkadlenie: RAID-10 používa súčasne striping dát a zrkadlenie dát. RAID-10 vyžaduje, aby sa do jedného súborového systému btrfs pridal párny počet úložných zariadení rovnakej veľkosti. Minimálny počet úložných zariadení, ktoré môžete pridať do súborového systému btrfs RAID-10, je 4. Polovica úložného zariadenia sa použije na pruhovanie údajov a druhá polovica sa použije na zrkadlenie údajov prvej polovice úložných zariadení (kde sú dáta pruhované).

xii) Povedomie o SSD a optimalizácia: Súborový systém btrfs je informovaný o SSD a má niektoré funkcie optimalizácie SSD. Súborový systém btrfs má tiež podporu TRIM / Discard pre úložné zariadenia SSD.

Funkcia TRIM dokáže zistiť a označiť rozsahy údajov, ktoré sa už nepoužívajú. Keď sú prípony označené, môže ich súborový systém btrfs automaticky vymazať, aby ostatné súbory mohli tieto dátové rozsahy používať.

Funkcia Zahodiť odstráni všetky dátové rozšírenia jednotky SSD. Ak chcete predať svoj disk SSD, táto funkcia sa vám môže hodiť.

xiii) Efektívne prírastkové zálohovanie: Btrfs podporuje prírastkové zálohovanie. Pri prvom zálohovaní súborového systému btrfs sa vytvorí snímka aktuálneho súborového systému. Všetky následné zálohy sa potom porovnajú s prvou snímkou ​​a na disk sa uložia iba zmeny. Akékoľvek následné zálohy teda zaberú menej miesta na disku a zálohy budú rýchlejšie.

xiv) Čistenie pozadia: Jedná sa o proces súborového systému Btrfs, ktorý sa používa na vyhľadanie a opravu chýb v súboroch, ktoré majú v súborovom systéme Btrfs redundantné kópie (viac kópií).

xv) Online defragmentácia súborového systému: Skôr som vysvetlil, ako funguje súborový systém Btrfs Copy-on-Write. Veľké súbory sú uložené vo viacerých rozšíreniach súborového systému Btrfs. Pri úprave veľkých súborov sa rozsahy, ktoré sa majú upraviť, skopírujú do rôznych voľných rozsahov súborového systému a upravia sa tam. Nezmenené rozsahy údajov sa teda zachovajú aj v prípade, že sú potrebné na obnovu súborového systému. To spôsobí fragmentáciu (dátové rozsahy veľkého súboru nebudú spojité a budú rozptýlené po celom úložnom zariadení) v súborovom systéme, pretože sa upravujú veľké súbory. Príliš veľa fragmentácie negatívne ovplyvňuje súborový systém (spomalí operáciu čítania a zápisu súborového systému).

Na vyriešenie tohto problému podporuje súborový systém btrfs online defragmentáciu súborového systému. Pri online defragmentácii nemusíte za účelom defragmentácie súborového systému odpojiť súborový systém. Súborový systém môžete udržiavať v chode a stále ho defragmentovať. Defragmentácia presunie rozsahy súborov okolo súborového systému, aby boli rozsahy rovnakého veľkého súboru čo najviac spojité. Defragmentácia zvyšuje výkon súborového systému.

xvi) Offline kontrola súborového systému: Súborový systém Btrfs má veľa zabudovaných nástrojov, ktoré môžete použiť na kontrolu chýb súborového systému a ich opravu. Pomocou týchto nástrojov môžete tiež opraviť poškodený súborový systém Btrfs (ktorý sa nedá pripojiť).

xvii) Miestna konverzia existujúcich súborových systémov Ext2 / 3/4 a ReiserFS: Súborový systém Btrfs má zabudovaný obslužný program btrfs-convert, ktorý môžete použiť na prevod existujúceho súborového systému Ext2 / 3/4 a ReiserFS na súborový systém Btrfs.

Program na konverziu súborového systému Btrfs číta metadáta existujúceho súborového systému Ext2 / 3/4 (alebo ReiserFS), vytvára metadáta Btrfs a ukladá ich do súborového systému. Systém súborov uchováva metadáta Btrfs aj Ext2 / 3/4 (alebo ReiserFS). Systém súborov Btrfs ukazuje na rovnaké bloky súborov, aké používajú súbory systému Ext2 / 3/4 (alebo ReiserFS). Existujúci súborový systém a dátové bloky zostávajú nedotknuté, pretože Btrfs je súborový systém Copy-on-Write (CoW). Keď je súbor upravený, súborový systém Btrfs skopíruje pôvodné dátové bloky do nových voľných rozsahov a tam ich upraví.

xviii) Sejacie zariadenia: Systém súborov Btrfs podporuje seedovacie zariadenia. Môžete vytvoriť súborový systém iba na čítanie a použiť ho ako šablónu (seed zariadenie) na vytvorenie ďalších súborových systémov Btrfs. Výhodou toho je, že do nového súborového systému sa zapíšu iba upravené údaje. Pôvodné údaje (na počiatočných zariadeniach) sa zachovajú tak, ako sú. Túto funkciu je možné použiť na zníženie množstva miesta na disku a redundancie údajov.

xix) Zmeny čiastkového objemu odosielania a prijímania: Súborový systém btrfs môže odosielať / prijímať zmeny čiastkových zväzkov. Súborový systém Btrfs môže odosielať prírastkové zmeny čiastkového zväzku do iného súborového systému Btrfs (môže sa nachádzať aj v inom počítači), ktorý môže prijímať zmeny čiastkového zväzku. Táto funkcia sa používa na prírastkové zálohovanie súborového systému Btrfs lokálne alebo vzdialene. Táto metóda je rýchlejšia a efektívnejšia ako rsync.

xx) Deduplikácia dávky / mimo pásma: Súborový systém Btrfs podporuje dávkovú alebo mimopásmovú deduplikáciu. K duplikácii dôjde po zápise súboru do súborového systému. Súborový systém Btrfs aktívne kontroluje identický rozsah celého súborového systému a uchováva iba jednu kópiu z každého rozsahu (odstraňuje nadbytočné / duplicitné rozsahy). Pre túto úlohu sa používa rovnaký princíp kopírovania a zápisu (CoW). Deduplikácia šetrí veľa miesta na disku.

xxi) Podpora swapfile: Ak používate Linux Kernel 5.0 alebo novšie, môžete vytvoriť swapfiles v súborovom systéme Btrfs.

V súborovom systéme Btrfs existujú určité obmedzenia Swapfile:

- Swapový súbor musí byť pridelený ako NoCoW (nie copy-on-write)

- Swapový súbor nesmie mať povolenú žiadnu kompresiu.

Stabilita súborového systému Btrfs:

Súborový systém Btrfs je aktívne vyvíjaný tímom Btrfs. Väčšina funkcií súborového systému je v čase písania tohto článku stabilná. Niektoré z pokročilých funkcií nie sú zatiaľ dostatočne stabilné pre produkčné prostredie. Tím Btrfs usilovne pracuje na riešení týchto problémov so stabilitou.

Ak chcete na svojom produkčnom serveri použiť súborový systém Btrfs, pozrite sa na oficiálnu stránku Wiki Status - btrfs a zistite, či sú potrebné funkcie súborového systému pre vás dostatočne stabilné alebo nie. Nezabudnite tiež vykonať nejaké testy pred konečným nasadením svojho súborového systému Btrfs a nezabudnite si zálohovať svoje dôležité údaje. Udržiavanie zálohy je pre produkčné prostredie vždy dôležité.

Budúca výmena súborového systému Ext4:

Systém súborov Btrfs sa rýchlo vyvíja. Vývojový tím Btrfs sa tiež stará o stabilitu súborového systému. Pri vývoji súborového systému btrfs sa teda snažia urobiť všetko pre to, aby bola čo najstabilnejšia. Keď je súborový systém btrfs úplne vyvinutý a všetky jeho funkcie sú dostatočne stabilné, môže nahradiť súborový systém Ext4.

Referencie:

[1] btrfs Wiki - https: // btrfs.wiki.jadro.org / index.php / Main_Page
[2] BTRFS - Dokumentácia k jadrovému stromu - https: // www.jadro.org / doc / html / latest / filesystems / btrfs.html
[3] BTRFS - Glosár - https: // btrfs.wiki.jadro.org / index.php / glosár
[4] Vlastnosti súborového systému „Btrfs“ - https: // www.teekdiary.com / features-of-the-btrfs-filesystem /
[5] Porovnanie súborových systémov - https: // en.wikipedia.org / wiki / Comparison_of_file_systems
[6] Dizajn Btrfs - btrfs Wiki - https: // btrfs.wiki.jadro.org / index.php / Btrfs_design
[7] Možno by sa nedostatok inodov dal brať „vážnejšie“? - https: // lwn.net / Články / 724522 /
[8] Vytváranie zápisov snímok Btrfs iba na čítanie - https: // markandruth.spol.uk / 2016/12/29 / making-a-btrfs-read-only-snapshot-writeable
[9] Striping data - https: // sk.wikipedia.org / wiki / Data_striping
[10] Časté otázky - btrfs wiki - https: // btrfs.wiki.jadro.org / index.php / FAQ
[11] Štandardné úrovne RAID - https: // en.wikipedia.org / wiki / Standard_RAID_levels
[12] Orezanie (výpočet) - https: // sk.wikipedia.org / wiki / Trim_ (výpočtová)
[13] Jednotka SSD - ArchWiki - https: // wiki.archlinux.org / index.php / Solid_state_drive # TRIM
[14] Btrfsck - btrfs Wiki - https: // btrfs.wiki.jadro.org / index.php / Btrfsck
[15] Konverzia z Ext3 / 4 a ReiserFS - btrfs Wiki - https: // btrfs.wiki.jadro.org / index.php / Conversion_from_Ext3
[16] Prírastkové zálohovanie - btrfs Wiki - https: // btrfs.wiki.jadro.org / index.php / prírastkové_zálohovanie
[17] Deduplikácia - btrfs Wiki - https: // btrfs.wiki.jadro.org / index.php / deduplikácia
[18] Stav - btrfs Wiki - https: // btrfs.wiki.jadro.org / index.php / Stav

Hry Ako vyvíjať hru v systéme Linux
Ako vyvíjať hru v systéme Linux
Pred desiatimi rokmi by len málo používateľov Linuxu predpovedalo, že ich obľúbený operačný systém bude jedného dňa populárnou hernou platformou pre k...
Hry Open source porty komerčných herných strojov
Open source porty komerčných herných strojov
Na hranie starých i niektorých z nedávnych herných titulov je možné využiť bezplatné hry s otvoreným zdrojom a multiplatformové herné enginy. V tomto ...
Hry Najlepšie hry z príkazového riadku pre systém Linux
Najlepšie hry z príkazového riadku pre systém Linux
Príkazový riadok nie je pri použití systému Linux iba vaším najväčším spojencom - môže byť tiež zdrojom zábavy, pretože ho môžete použiť na hranie mno...