Btrfs

Úvod do souborového systému Btrfs

Úvod do souborového systému Btrfs
Btrfs (B-Tree Filesystem) je moderní souborový systém copy-on-write (CoW) pro Linux. Btrfs si klade za cíl implementovat mnoho pokročilých funkcí souborového systému se zaměřením na odolnost proti chybám, opravy a snadnou správu. Souborový systém btrfs je navržen tak, aby podporoval požadavky na vysoce výkonné a velké úložné servery. Je vhodný pro datová centra v petabajtovém měřítku i pro mobilní smartphony.V tomto článku se budu zabývat souborovým systémem Btrfs a jeho funkcemi. Pojďme tedy začít.

Kopírovat při zápisu - CoW Filesystem:

Btrfs je souborový systém copy-on-write (CoW). Když se v souborovém systému CoW pokusíte upravit data v souborovém systému, souborový systém zkopíruje data, upraví data a poté zapíše upravená data zpět do jiného volného umístění souborového systému.

Hlavní výhodou souborového systému Copy-on-Write (CoW) je, že rozsah dat, který chce upravit, se zkopíruje do jiného umístění, upraví a uloží v jiném rozsahu souborového systému. Rozsah původních dat se nemění. Souborový systém btrfs tedy může eliminovat riziko poškození dat nebo částečné aktualizace v případě výpadku napájení během úpravy dat, protože původní data zůstanou nezměněna.

Hlavní nevýhodou souborového systému Copy-on-Write (CoW) je, že velké soubory mají tendenci se fragmentovat, protože jsou upravovány. Defragmentace je tedy nutná jednou za čas. Naštěstí souborový systém btrfs podporuje online defragmentaci. Abyste defragmentovali souborový systém btrfs, nemusíte souborový systém odpojovat.

Hlavní vlastnosti souborového systému Btrfs:

Hlavní vlastnosti souborového systému Btrfs jsou:

i) Ukládání souborů podle rozsahu: V souborovém systému založeném na rozsahu se úložná jednotka nazývá rozsah. Rozsah je souvislá oblast úložiště, která je vyhrazena pro soubor. Jeden soubor vyžaduje jeden rozsah, bez ohledu na to, jak malý je soubor. U větších souborů (velikost souboru větší než velikost rozsahu) bude zapotřebí více rozsahů. U větších souborů se metadata použijí ke sledování rozsahu, který soubor používá. V souborovém systému Btrfs mají metadata podstatně menší velikost. Menší metadata zlepšují efektivitu úložiště a výkon souborového systému.

ii) Obrovská podpora velikosti souboru: V souborovém systému Btrfs může být jeden soubor asi 264 bajtů nebo 16 EiB (exbibytů). Bez ohledu na to, jak velký je váš soubor, Btrfs ho může podporovat.

iii) Prostorově efektivní balení malých souborů: Normálně, bez ohledu na to, jak malý je soubor, bude jeho uložení vyžadovat jeden blok nebo jeden rozsah. To zbytečně hodně místa na disku. Chcete-li tento problém vyřešit, vloží souborový systém Btrfs menší soubory do metadat, aby byly menší soubory ukládány efektivně.

iv) Prostorově efektivní indexované adresáře: Adresáře souborového systému btrfs jsou indexovány dvěma různými způsoby. Pro vyhledávání názvů souborů se používá indexování podle klíčů. K odkazování na data se používá indexování klíčů na základě inode. Dvouúrovňové indexování zlepšuje výkon vyhledávání adresářů a souborů a snižuje požadavky na úložiště pro indexy.

v) Dynamické přidělování inodů: Chcete-li odkazovat na 1 soubor, potřebujete 1 inode. Mnoho souborových systémů (i.E., Ext4) mají pevný počet inodů. Pokud tedy vytvoříte příliš mnoho malých souborů, může vám na disku zbývat spousta místa, ale nebudete moci vytvářet žádné nové soubory. Po vytvoření souborového systému také nemůžete zvýšit maximální počet inodů.

Btrfs tento problém řeší tak, že inody dynamicky přiděluje podle potřeby. Můžete tedy vytvořit libovolný počet souborů, pokud budete mít na disku volné místo.

vi) Zapisovatelné snímky a snímky jen pro čtení: Souborový systém Btrfs podporuje snímky. Můžete pořídit snímek aktuálního souborového systému, který můžete použít k obnovení dat, pokud jste omylem odstranili některé soubory nebo některá data poškodili.

Ve výchozím nastavení jsou snímky btrfs pouze pro čtení. Jakmile pořídíte snímek jen pro čtení, nemůžete v tomto snímku změnit žádné soubory / adresáře. V každém případě, pokud chcete změnit libovolné soubory / adresáře poté, co jste pořídili snímek svého stávajícího souborového systému Btrfs, můžete změnit snímek jen pro čtení na zapisovatelný snímek a upravit všechny soubory / adresáře v tomto snímku.

vii) Podskupiny: Souborový systém Btrfs může mít mnoho dílčích svazků. Subvolume je pojmenovaný binární strom (B-strom) (nebo interní / logický kořen souborového systému) existujícího kořenového stromu souborového systému (hlavní) souborového systému btrfs. Subvolume není vlastní blokové zařízení. Ale dílčí svazky Btrfs můžete připojit jednotlivě. Subvolumes si můžete představit jako jmenný prostor.

viii) Podpora kvót vědomých subvolume: Můžete také přidělit kvóty pro dílčí svazky. Jakmile dojde k překročení kvóty, nebudete moci do dílčího svazku přidat žádná nová data. K vytváření kvót podpoložek Btrfs nebudete potřebovat žádné samostatné programy.

ix) Kontrolní součty údajů a metadat: Aby se zabránilo poškození dat, používá Btrfs ve výchozím nastavení algoritmy kontrolního součtu crc32c pro data a metadata souborového systému. Kontrolní součty jsou uloženy v souborovém systému a automaticky kontrolují chyby souborového systému a poškození dat na pozadí.

Btrfs podporuje mnoho dalších algoritmů kontrolního součtu: xxhash, sha256 a blake2b.

x) Komprese: Souborový systém Btrfs podporuje transparentní kompresi souborů. Komprese a dekomprese souborů v souborovém systému btrfs se provádí na pozadí automaticky.

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

ZLIB je výchozí metoda komprese souborového systému btrfs.

xi) Integrovaná podpora více zařízení: Souborové systémy Btrfs mají integrovanou podporu správce logických svazků (LVM). Do jednoho souborového systému btrfs můžete přidat více úložných zařízení. Můžete také konfigurovat pole RAID na souborovém systému btrfs, aniž byste potřebovali jakýkoli další software.

Souborový systém Btrfs podporuje datové prokládání, zrcadlení dat, prokládání dat + zrcadlení a jednoduché a dvojité paritní implementace.

Striping dat: Pokud jste do stejného souborového systému btrfs přidali více úložných zařízení, btrfs může uložit stejný soubor na různých fyzických zařízeních / oddílech. Tomu se říká prokládání dat. Prokládání dat zlepšuje výkonnost souborového systému při čtení / zápisu. RAID-0 značně využívá funkci prokládání dat.

Zrcadlení dat: Pokud jste do stejného souborového systému btrfs přidali více úložných zařízení, všechna data zapsaná na jedno úložné zařízení se zapíší na všechna ostatní úložná zařízení. Tomu se říká zrcadlení dat. RAID-1 ve velké míře využívá funkci zrcadlení dat.

Striping dat + jedna parita: RAID-5 používá prokládání dat a jednu distribuovanou paritu. Pokud jste do souborového systému btrfs přidali více úložných zařízení, RAID-5 odstraní data na více úložných zařízeních a vypočítá a uloží paritní bloky napříč úložnými zařízeními. RAID-5 může vydržet selhání jedné jednotky.

Striping dat + dvojitá parita: RAID-6 používá prokládání dat a dvojitou distribuovanou paritu. Pokud jste do souborového systému btrfs přidali více úložných zařízení, RAID-6 odstraní data na více úložných zařízeních a vypočítá a uloží dvojité paritní bloky napříč úložnými zařízeními. RAID-6 může vydržet dvě poruchy disku. Kromě toho je to stejné jako RAID-5 (datové proužky + jedna parita).

Striping dat + zrcadlení: RAID-10 používá datové prokládání a zrcadlení dat současně. RAID-10 vyžaduje přidání sudého počtu úložných zařízení stejné velikosti do jednoho souborového systému btrfs. Minimální počet úložných zařízení, která můžete přidat do souborového systému btrfs RAID-10, je 4. Polovina úložného zařízení bude použita pro prokládání dat a druhá polovina bude použita pro zrcadlení dat první poloviny úložných zařízení (kde jsou data prokládána).

xii) Povědomí o SSD a optimalizace: Souborový systém btrfs je SSD vědom a má některé funkce optimalizace SSD. Souborový systém btrfs má také podporu TRIM / Discard pro úložná zařízení SSD.

Funkce TRIM dokáže detekovat a označit rozsahy dat, které se již nepoužívají. Jakmile jsou přípony označeny, může je souborový systém btrfs automaticky vymazat, aby ostatní soubory mohly tyto datové oblasti používat.

Funkce Zahodit odstraní všechna datová rozšíření SSD. Pokud chcete svůj SSD prodat, může se vám tato funkce hodit.

xiii) Efektivní přírůstkové zálohování: Btrfs podporuje přírůstkové zálohování. Při prvním zálohování souborového systému btrfs pořídíte snímek aktuálního souborového systému. Poté budou všechny následné zálohy porovnány s prvním snímkem a na disk budou uloženy pouze změny. Jakékoli následné zálohy tedy zabere méně místa na disku a zálohy budou rychlejší.

xiv) Kartáč na pozadí: Jedná se o proces souborového systému Btrfs používaný k hledání a opravě chyb u souborů, které mají v souborovém systému Btrfs redundantní kopie (více kopií).

xv) Online defragmentace souborového systému: Dříve jsem vysvětlil, jak funguje souborový systém Btrfs Copy-on-Write. Velké soubory jsou uloženy ve více oblastech souborového systému Btrfs. Při úpravách velkých souborů se rozsahy, které se mají upravit, zkopírují do různých volných rozsahů souborového systému a tam se upraví. Nezměněné datové rozsahy jsou tedy zachovány také pro případ, že je to nutné pro obnovu souborového systému. To způsobí fragmentaci (datové oblasti velkého souboru nebudou spojité a budou rozptýleny po celém úložném zařízení) v souborovém systému, protože se mění velké soubory. Přílišná fragmentace negativně ovlivňuje souborový systém (zpomaluje operaci čtení a zápisu souborového systému).

Chcete-li tento problém vyřešit, podporuje souborový systém btrfs online defragmentaci souborového systému. S online defragmentací nemusíte odpojovat souborový systém, abyste souborový systém mohli defragmentovat. Souborový systém můžete udržovat v provozu a stále ho defragmentovat. Defragmentace bude přesouvat rozsahy souborů po souborovém systému tak, aby rozsahy stejného velkého souboru byly co nejvíce spojité. Defragmentace zlepšuje výkon souborového systému.

xvi) Offline kontrola souborového systému: Souborový systém Btrfs má mnoho vestavěných nástrojů, pomocí kterých můžete zkontrolovat chyby souborového systému a opravit je. Pomocí těchto nástrojů můžete také opravit poškozený souborový systém Btrfs (který nelze připojit).

xvii) Místní převod existujících souborových systémů Ext2 / 3/4 a ReiserFS: Souborový systém Btrfs má vestavěný nástroj btrfs-convert, který můžete použít k převodu existujícího souborového systému Ext2 / 3/4 a ReiserFS na souborový systém Btrfs.

Program převodu souborového systému Btrfs čte metadata existujícího souborového systému Ext2 / 3/4 (nebo ReiserFS), vytváří metadata Btrfs a ukládá je do souborového systému. Souborový systém uchovává metadata Btrfs i Ext2 / 3/4 (nebo ReiserFS). Souborový systém Btrfs ukazuje na stejné bloky souborů, jaké používají soubory souborového systému Ext2 / 3/4 (nebo ReiserFS). Stávající souborový systém a datové bloky zůstávají nedotčené, protože Btrfs je souborový systém Copy-on-Write (CoW). Když je soubor upraven, souborový systém Btrfs zkopíruje původní datové bloky do nových volných rozsahů a tam je upraví.

xviii) Secí zařízení: Souborový systém Btrfs podporuje seed zařízení. Můžete vytvořit souborový systém jen pro čtení a použít jej jako šablonu (seed zařízení) k vytvoření dalších souborových systémů Btrfs. Výhodou toho je, že do nového souborového systému budou zapsána pouze upravená data. Původní data (na počátečních zařízeních) budou zachována tak, jak jsou. Tuto funkci lze použít k úspoře velkého místa na disku a redundanci dat.

xix) Odeslat / přijmout změny dílčího svazku: Souborový systém btrfs může odesílat / přijímat změny dílčích svazků. Souborový systém Btrfs může odesílat přírůstkové změny dílčího svazku do jiného souborového systému Btrfs (může se také nacházet v jiném počítači), který může přijímat změny dílčího svazku. Tato funkce se používá k přírůstkovému zálohování souborového systému Btrfs lokálně nebo vzdáleně. Tato metoda je rychlejší a efektivnější než rsync.

xx) Deduplikace dávky / mimo pásmo: Souborový systém Btrfs podporuje dávkovou nebo out-of-band deduplikaci. K duplikaci dochází poté, co je soubor zapsán do souborového systému. Souborový systém Btrfs aktivně skenuje celý souborový systém na identické rozsahy a uchovává pouze jednu kopii každého rozsahu (odstraňuje nadbytečné / duplicitní rozsahy). Pro tuto úlohu se používá stejný princip kopírování-zápisu (CoW). Deduplikace šetří spoustu místa na disku.

xxi) Podpora swapfile: Pokud používáte linuxové jádro 5.0 nebo novější můžete v souborovém systému Btrfs vytvořit swapfiles.

Swapfile má v souborovém systému Btrfs některá omezení:

- Odkládací soubor musí být přidělen jako NoCoW (ne copy-on-write)

- Odkládací soubor nesmí mít povolenou žádnou kompresi.

Stabilita souborového systému Btrfs:

Souborový systém Btrfs je aktivně vyvíjen týmem Btrfs. V době psaní tohoto článku je většina funkcí souborového systému stabilní. Některé z pokročilých funkcí ještě nejsou dostatečně stabilní pro produkční prostředí. Tým Btrfs tvrdě pracuje na vyřešení těchto problémů se stabilitou.

Pokud chcete na svém produkčním serveru použít souborový systém Btrfs, podívejte se na oficiální stránku Wiki Status - btrfs a zjistěte, zda jsou požadované funkce souborového systému pro vás dostatečně stabilní nebo ne. Před konečným nasazením souborového systému Btrfs také nezapomeňte provést několik testů a nezapomeňte si zálohovat důležitá data. Uchovávání záloh je pro produkční prostředí vždy důležité.

Budoucí nahrazení souborového systému Ext4:

Souborový systém Btrfs se rychle vyvíjí. Vývojový tým Btrfs se také stará o stabilitu souborového systému. Při vývoji souborového systému btrfs se tedy snaží ze všech sil ho učinit co nejstabilnějším. Jakmile je souborový systém btrfs plně vyvinut a všechny jeho funkce jsou dostatečně stabilní, může nahradit souborový systém Ext4.

Reference:

[1] btrfs Wiki - https: // btrfs.wiki.jádro.org / index.php / Main_Page
[2] BTRFS - dokumentace ke stromu jádra - https: // www.jádro.org / doc / html / nejnovější / souborové systémy / btrfs.html
[3] BTRFS - Glosář - https: // btrfs.wiki.jádro.org / index.php / glosář
[4] Vlastnosti souborového systému „Btrfs“ - https: // www.theekekdiary.com / features-of-the-btrfs-souborový systém /
[5] Porovnání souborových systémů - https: // en.wikipedia.org / wiki / Comparison_of_file_systems
[6] Návrh Btrfs - btrfs Wiki - https: // btrfs.wiki.jádro.org / index.php / Btrfs_design
[7] Možná by se vyčerpání inodů dalo brát „vážněji“? - https: // lwn.net / Články / 724522 /
[8] Vytvoření zapisovatelných snímků jen pro čtení Btrfs - https: // markandruth.co.uk / 2016 / 12/29 / tvorba-a-btrfs-pouze pro čtení-snímek-zapisovatelný
[9] Datové proužky - https: // en.wikipedia.org / wiki / Data_striping
[10] FAQ - btrfs wiki - https: // btrfs.wiki.jádro.org / index.php / FAQ
[11] Standardní úrovně RAID - https: // en.wikipedia.org / wiki / Standard_RAID_levels
[12] Oříznutí (výpočet) - https: // en.wikipedia.org / wiki / Trim_ (výpočet)
[13] Jednotka SSD - ArchWiki - https: // wiki.archlinux.org / index.php / Solid_state_drive # TRIM
[14] Btrfsck - btrfs Wiki - https: // btrfs.wiki.jádro.org / index.php / Btrfsck
[15] Konverze z Ext3 / 4 a ReiserFS - btrfs Wiki - https: // btrfs.wiki.jádro.org / index.php / Conversion_from_Ext3
[16] Inkrementální zálohování - btrfs Wiki - https: // btrfs.wiki.jádro.org / index.php / přírůstkové_zálohování
[17] Deduplikace - btrfs Wiki - https: // btrfs.wiki.jádro.org / index.php / deduplikace
[18] Stav - btrfs Wiki - https: // btrfs.wiki.jádro.org / index.php / Stav

Hry Nejlepší linuxové distribuce pro hraní her v roce 2021
Nejlepší linuxové distribuce pro hraní her v roce 2021
Operační systém Linux má za sebou dlouhou cestu od svého původního, jednoduchého vzhledu založeného na serveru. Tento OS se v posledních letech nesmír...
Hry Jak zachytit a streamovat vaši herní relaci v systému Linux
Jak zachytit a streamovat vaši herní relaci v systému Linux
V minulosti bylo hraní her považováno pouze za koníček, ale postupem času došlo v herním průmyslu k obrovskému nárůstu z hlediska technologie a počtu ...
Hry Nejlepší hry pro ruční sledování
Nejlepší hry pro ruční sledování
Oculus Quest nedávno představil skvělou myšlenku ručního sledování bez ovladačů. S neustále se zvyšujícím počtem her a aktivit, které provádějí podpor...