GNU/Linux >> Znalost Linux >  >> Linux

Pochopení souborových systémů Linux:ext4 a další

Většina moderních distribucí Linuxu výchozí souborový systém ext4, stejně jako předchozí distribuce Linuxu výchozí ext3, ext2 a – pokud se vrátíte dostatečně daleko – ext.

Pokud jste v Linuxu – nebo v souborových systémech – noví, možná vás zajímá, co ext4 přináší na stůl, co ext3 ne. Také by vás mohlo zajímat, zda je ext4 vůbec ještě v aktivním vývoji, vzhledem k přívalům zpráv o alternativních souborových systémech, jako jsou btrfs, xfs a zfs.

Další zdroje pro Linux

  • Cheat pro příkazy Linuxu
  • Cheat sheet pro pokročilé příkazy systému Linux
  • Bezplatný online kurz:Technický přehled RHEL
  • Síťový cheat pro Linux
  • Cheat sheet SELinux
  • Cheat pro běžné příkazy pro Linux
  • Co jsou kontejnery systému Linux?
  • Naše nejnovější články o Linuxu

Nemůžeme pokrýt vše o souborových systémech v jediném článku, ale pokusíme se vám přiblížit historii výchozího souborového systému Linuxu, kde se nachází a na co se můžete těšit.

Při přípravě tohoto přehledu jsem hodně čerpal z různých článků o ext souborových systémech Wikipedie, wiki záznamů kernel.org o ext4 a mých vlastních zkušeností.

Stručná historie ext

Souborový systém MINIX

Než existoval ext, existoval souborový systém MINIX. Pokud nejste ve své historii Linuxu, MINIX byl velmi malý operační systém podobný Unixu pro mikropočítače IBM PC/AT. Andrew Tannenbaum jej vyvinul pro výukové účely a jeho zdrojový kód (v tištěné podobě!) vydal v roce 1987.

Ačkoli jste si mohli prohlédnout zdroj MINIX, ve skutečnosti to nebyl bezplatný a otevřený software (FOSS). Vydavatelé Tannebaumovy knihy požadovali za provoz MINIX licenční poplatek 69 USD, který byl zahrnut v ceně knihy. Přesto to bylo na tu dobu neuvěřitelně levné a přijetí MINIXu se rychle rozběhlo a brzy překonalo původní Tannenbaumův záměr používat jej pouze k výuce kódování operačních systémů. Během 90. let minulého století jste mohli najít instalace MINIXu prosperující na univerzitách po celém světě – a mladý Linus Torvalds použil MINIX k vývoji původního linuxového jádra, poprvé oznámeného v roce 1991 a vydaného pod licencí GPL v prosinci 1992.

Ale počkejte, toto je systém souborů článek, jo? Ano, a MINIX měl svůj vlastní souborový systém, na který se také spoléhaly rané verze Linuxu. Stejně jako MINIX by se dal nemilosrdně popsat jako příklad „hračky“ svého druhu – souborový systém MINIX mohl zpracovávat názvy souborů pouze do 14 znaků a adresovat pouze 64 MB úložiště. V roce 1991 měl typický pevný disk již velikost 40-140 MB. Linux zjevně potřeboval lepší souborový systém!

ext

Zatímco Linus hackoval začínající linuxové jádro, Rémy Card pracoval na prvním ext souborovém systému. Poprvé implementován v roce 1992 – pouhý rok po prvním oznámení samotného Linuxu! – vyřešil nejhorší z problémů souborového systému MINIX.

Ext z roku 1992 používal novou vrstvu abstrakce virtuálního souborového systému (VFS) v jádře Linuxu. Na rozdíl od předchozího souborového systému MINIX mohl ext adresovat až 2 GB úložiště a zpracovat 255znakové názvy souborů.

Ale ext neměl dlouhou vládu, hlavně kvůli jeho primitivnímu časovému razítku (pouze jedno časové razítko na soubor, spíše než tři samostatná razítka pro vytváření inodů, přístup k souborům a úpravy souborů, které známe dnes). O pouhý rok později ext2 snědl svůj oběd.

ext2

Rémy si jasně uvědomil omezení ext docela rychle, protože o rok později navrhl ext2 jako jeho náhradu. Zatímco ext měl stále své kořeny v operačních systémech „hraček“, ext2 byl od začátku navržen jako souborový systém komerční úrovně na stejných principech jako BSD Berkeley Fast File System.

Ext2 nabízel maximální velikosti souborů v gigabajtech a velikosti souborového systému v terabajtech, čímž se pevně zařadil do velké ligy devadesátých let. Byl rychle a široce přijat, jak v linuxovém jádře a nakonec v MINIXu, tak i moduly třetích stran, které jej zpřístupnily pro MacOS a Windows.

Stále však existovaly problémy, které bylo třeba vyřešit:souborové systémy ext2, stejně jako většina souborových systémů 90. let, byly náchylné ke katastrofálnímu poškození, pokud se systém zhroutil nebo ztratil energii během zápisu dat na disk. Postupem času také trpěly značnými ztrátami výkonu v důsledku fragmentace (ukládání jednoho souboru na více místech, fyzicky rozptýlených po rotujícím disku).

Navzdory těmto problémům se dnes ext2 v některých ojedinělých případech stále používá – nejčastěji jako formát pro přenosné USB flash disky.

ext3

V roce 1998, šest let po přijetí ext2, Stephen Tweedie oznámil, že pracuje na jeho výrazném vylepšení. Tím se stal ext3, který byl přijat do hlavní řady Linuxu s jádrem verze 2.4.15 v listopadu 2001.

Ext2 si většinou vedl u linuxových distribucí velmi dobře, ale – stejně jako FAT, FAT32, HFS a další souborové systémy té doby – byl náchylný ke katastrofálnímu poškození při výpadku napájení. Pokud při zápisu dat do souborového systému ztratíte napájení, může to zůstat v takzvaném nekonzistentním stav — stav, ve kterém byly věci ponechány napůl hotové a napůl nedokončené. To může vést ke ztrátě nebo poškození obrovských pásů souborů, které nesouvisejí s tím, který se ukládá, nebo dokonce k nepřipojitelnosti celého souborového systému.

Ext3 a další souborové systémy z konce 90. let, jako je Microsoft NTFS, používají žurnálování k vyřešení tohoto problému. Žurnál je speciální alokace na disku, kde jsou zápisy ukládány v transakcích; pokud transakce dokončí zápis na disk, jsou její data v žurnálu potvrzena k samotnému souborovému systému. Pokud systém selže předtím, než je tato operace potvrzena, nově restartovaný systém ji rozpozná jako nedokončenou transakci a vrátí ji zpět, jako by se nikdy neuskutečnila. To znamená, že soubor, na kterém se pracuje, může být stále ztracen, ale souborový systém samotný zůstává konzistentní a všechna ostatní data jsou v bezpečí. V implementaci linuxového jádra ext3 jsou k dispozici tři úrovně žurnálování:journal , objednáno a zpětný zápis .

  • Deník je režim s nejnižším rizikem, zapisuje data i metadata do žurnálu před jejich odesláním do souborového systému. To zajišťuje konzistenci souboru, do kterého se zapisuje, i souborového systému jako celku, ale může výrazně snížit výkon.
  • Objednáno je výchozí režim ve většině distribucí Linuxu; objednaný režim zapisuje metadata do žurnálu, ale odesílá data přímo do souborového systému. Jak název napovídá, objednávka operací je zde rigidní:Za prvé, metadata jsou odevzdána do žurnálu; za druhé, data jsou zapsána do souborového systému a teprve poté jsou přidružená metadata v žurnálu vyprázdněna do samotného souborového systému. To zajišťuje, že v případě havárie budou metadata spojená s neúplnými zápisy stále v žurnálu a souborový systém může tyto nedokončené zápisy dezinfikovat a žurnál vrátit zpět. V uspořádaném režimu může selhání způsobit poškození souboru nebo souborů, do kterých se během havárie aktivně zapisuje, ale samotný souborový systém – a soubory, do kterých se aktivně nezapisují – jsou zaručeny bezpečné.
  • Zpětný zápis je třetí – a nejméně bezpečný – režim deníku. V režimu zpětného zápisu, jako je uspořádaný režim, jsou metadata žurnálována, ale data nikoli. Na rozdíl od uspořádaného režimu mohou být metadata i data zapsána v jakémkoli pořadí, které dává smysl pro nejlepší výkon. To může nabídnout výrazné zvýšení výkonu, ale je to mnohem méně bezpečné. Ačkoli režim zpětného zápisu stále nabízí záruku bezpečnosti pro samotný souborový systém, soubory, které byly zapsány během nebo před havárií jsou náchylné ke ztrátě nebo poškození.

Stejně jako předtím ext2, ext3 používá 16bitové interní adresování. To znamená, že při velikosti bloku 4K je největší velikost souboru, kterou zvládne, 2 TiB při maximální velikosti souborového systému 16 TiB.

ext4

Theodore Ts'o (který byl do té doby hlavním vývojářem ext3) oznámil ext4 v roce 2006 a do hlavní řady Linuxu byl přidán o dva roky později, v jádře verze 2.6.28. Ts'o popisuje ext4 jako provizorní technologii, která výrazně rozšiřuje ext3, ale stále se spoléhá na starou technologii. Očekává, že bude nakonec nahrazen skutečným souborovým systémem nové generace.

Ext4 je funkčně velmi podobný ext3, ale přináší podporu velkého souborového systému, vylepšenou odolnost vůči fragmentaci, vyšší výkon a vylepšená časová razítka.

Ext4 vs ext3

Ext3 a ext4 mají některé velmi specifické rozdíly, na které se zde zaměřím.

Zpětná kompatibilita

Ext4 byl speciálně navržen tak, aby byl co nejvíce zpětně kompatibilní s ext3. To nejenže umožňuje upgradovat souborové systémy ext3 na místě na ext4; také umožňuje ovladači ext4 automaticky připojovat souborové systémy ext3 v režimu ext3, takže není nutné udržovat obě kódové báze odděleně.

Velké souborové systémy

Souborové systémy Ext3 používaly 32bitové adresování, což je omezovalo na 2 soubory TiB a 16 souborových systémů TiB (za předpokladu velikosti bloků 4 kB; některé souborové systémy ext3 používají menší velikosti bloků, a jsou tak omezeny ještě více).

Ext4 používá 48bitové interní adresování, díky čemuž je teoreticky možné alokovat soubory až 16 TiB na souborových systémech až do 1 000 000 TiB (1 EiB). Dřívější implementace ext4 byly některými uživatelskými nástroji stále omezeny na 16 souborových systémů TiB, ale od roku 2011 e2fsprogs přímo podporoval vytváření souborových systémů>16TiB ext4. Jako jeden příklad, Red Hat Enterprise Linux smluvně podporuje souborové systémy ext4 pouze do 50 TiB a doporučuje svazky ext4 ne větší než 100 TiB.

Vylepšení alokace

Ext4 zavádí mnoho vylepšení ve způsobech alokace úložných bloků před jejich zápisem na disk, což může výrazně zvýšit výkon čtení i zápisu.

Rozsahy

Rozsah je rozsah souvislých fyzických bloků (až 128 MiB, za předpokladu velikosti bloku 4 kB), které lze rezervovat a adresovat najednou. Využití rozsahů snižuje počet inodů požadovaných daným souborem a výrazně snižuje fragmentaci a zvyšuje výkon při zápisu velkých souborů.

Přidělení více bloků

Ext3 zavolal svůj alokátor bloků jednou pro každý nový přidělený blok. To by mohlo snadno vést k velké fragmentaci, když je současně otevřeno více zapisovačů. Ext4 však používá zpožděnou alokaci, která mu umožňuje sjednotit zápisy a lépe se rozhodovat o tom, jak alokovat bloky pro zápisy, které ještě neprovedl.

Trvalé předběžné přidělení

Při předběžném přidělování místa na disku souboru musí většina souborových systémů při vytváření zapsat do bloků pro tento soubor nuly. Ext4 umožňuje použití fallocate() místo toho, což zaručuje dostupnost prostoru (a pokouší se pro něj najít souvislý prostor), aniž by bylo nutné do něj nejprve zapisovat. To výrazně zvyšuje výkon při zápisu i budoucím čtení zapsaných dat pro streamování a databázové aplikace.

Zpožděná alokace

Toto je žvýkací – a sporná – funkce. Zpožděná alokace umožňuje ext4 čekat na alokaci skutečných bloků, do kterých bude zapisovat data, dokud nebude připraven odeslat tato data na disk. (Naproti tomu ext3 by alokoval bloky okamžitě, i když data stále proudila do mezipaměti pro zápis.)

Zpoždění alokace bloků, jak se data hromadí v mezipaměti, umožňuje souborovému systému činit rozumnější rozhodnutí o tom, jak tyto bloky alokovat, což snižuje fragmentaci (zápis a později čtení) a výrazně zvyšuje výkon. Bohužel se zvyšuje možnost ztráty dat v programech, které nebyly speciálně napsány pro volání fsync() když chce programátor zajistit, aby byla data zcela vyprázdněna na disk.

Řekněme, že program zcela přepíše soubor:

fd=open("file" ,O_TRUNC); write(fd, data); close(fd);

U starších souborových systémů close(fd); je dostačující k zaručení obsahu file budou vyprázdněny na disk. I když zápis není, přísně vzato, transakční, existuje velmi malé riziko ztráty dat, pokud dojde k selhání po soubor je uzavřen.

Pokud se zápis nezdaří (kvůli chybám v programu, chybám na disku, výpadku napájení atd.), původní verze a novější verze souboru může být ztracena nebo poškozena. Pokud jiné procesy přistupují k souboru během jeho zapisování, uvidí poškozenou verzi. A pokud mají soubor otevřený jiné procesy a neočekávají, že se jeho obsah změní – např. sdílená knihovna namapovaná do více spuštěných programů – mohou selhat.

Aby se těmto problémům vyhnuli, někteří programátoři nepoužívají O_TRUNC vůbec. Místo toho mohou zapisovat do nového souboru, zavřít jej a poté přejmenovat na starý:

fd=open("newfile"); write(fd, data); close(fd); rename("newfile", "file");

Pod souborovými systémy bez zpožděná alokace, to je dostatečné k tomu, aby se předešlo potenciálnímu poškození a problémům se selháním uvedeným výše:Protože rename() je atomová operace, nebude přerušena havárií; a spuštěné programy budou nadále odkazovat na starou, nyní již nepropojenou verzi file tak dlouho, dokud k němu mají otevřenou kliku. Ale protože zpožděná alokace ext4 může způsobit zpoždění zápisu a změnu pořadí, rename("newfile","file") lze provést před obsah newfile jsou ve skutečnosti zapsány na disk, což otevírá problém paralelních procesů, které získávají špatné verze file všechno znovu.

Aby se to zmírnilo, linuxové jádro (od verze 2.6.30) se pokouší detekovat tyto běžné případy kódu a vynutit okamžité přidělení příslušných souborů. To snižuje, ale nezabrání možné ztrátě dat – a vůbec to nepomáhá s novými soubory. Pokud jste vývojář, vezměte prosím na vědomí:jediné způsob, jak zaručit okamžitý zápis dat na disk, je zavolat fsync() přiměřeně.

Neomezený počet podadresářů

Ext3 byl omezen na celkem 32 000 podadresářů; ext4 umožňuje neomezený počet. Počínaje jádrem 2.6.23 používá ext4 indexy HTree ke zmírnění ztráty výkonu s velkým počtem podadresářů.

Kontrolní součet deníku

Ext3 neprovedl kontrolní součet svých žurnálů, což představovalo problémy pro disková nebo řadičová zařízení s vlastní mezipamětí, mimo přímou kontrolu jádra. Pokud by řadič nebo disk s vlastní mezipamětí zapisoval mimo pořadí, mohlo by to narušit pořadí žurnálovacích transakcí ext3 a potenciálně poškodit soubory zapisované během (nebo nějakou dobu před) zhroucením.

Teoreticky je tento problém vyřešen použitím bariér proti zápisu – při připojování souborového systému nastavíte barrier=1 v možnostech připojení a zařízení bude respektovat fsync() volá až na kov. V praxi bylo zjištěno, že úložná zařízení a řadiče často ne čestné bariéry zápisu – zlepšení výkonu (a srovnávacích testů, kde jsou srovnávány s konkurencí), ale otevírání možnosti poškození dat, kterému se mělo zabránit.

Kontrolní součet žurnálu umožňuje souborovému systému uvědomit si, že některé jeho záznamy jsou neplatné nebo mimo pořadí při prvním připojení po havárii. Vyhnete se tak omylu v podobě vrácení částečných nebo neuspořádaných žurnálových záznamů a dalšímu poškození souborového systému – i když úložná zařízení lžou a nerespektují překážky.

Rychlé kontroly souborového systému

Pod ext3 vyžadovala kontrola celého souborového systému – včetně smazaných a prázdných souborů – při fsck je vyvoláno. Naproti tomu ext4 označuje nepřidělené bloky a části tabulky inodů jako takové, což umožňuje fsck úplně je přeskočit. To výrazně zkracuje dobu spuštění fsck na většině souborových systémů a je implementován od jádra 2.6.24.

Vylepšená časová razítka

Ext3 nabízel časová razítka s přesností na jednu sekundu. I když je to dostačující pro většinu použití, kritické aplikace často hledají mnohem, mnohem přísnější kontrolu času. Ext4 se zpřístupňuje těmto podnikovým, vědeckým a kritickým aplikacím tím, že nabízí časové značky v nanosekundách.

Souborové systémy Ext3 také neposkytovaly dostatek bitů pro ukládání dat po 18. lednu 2038. Ext4 zde přidává další dva bity, čímž prodlužuje epochu Unixu o dalších 408 let. Pokud to čtete v roce 2446 AD, doufejme, že jste již přešli na lepší souborový systém – ale udělá mi to posmrtně velkou, velkou radost, pokud stále měříte čas od UTC 00:00, 1. ledna 1970.

Online defragmentace

Ani ext2, ani ext3 přímo nepodporovaly online defragmentaci – tedy defragmentaci souborového systému při připojení. Ext2 obsahoval obslužný program e2defrag , který dělal to, co název napovídá – ale bylo potřeba jej spouštět offline, zatímco souborový systém nebyl připojen. (To je samozřejmě obzvláště problematické pro kořenový souborový systém.) Situace byla ještě horší v ext3 – ačkoli ext3 měl mnohem menší pravděpodobnost, že bude trpět závažnou fragmentací než ext2, když spouštěl e2defrag proti souborovému systému ext3 může vést ke katastrofálnímu poškození a ztrátě dat.

Ačkoli byl ext3 původně považován za „neovlivněný fragmentací“, procesy, které využívají masivně paralelní procesy zápisu do stejného souboru (např. BitTorrent), jasně ukázaly, že to tak úplně není. Několik hacků a řešení v uživatelském prostoru, jako je Shake, to řešilo tak či onak – ale byly pomalejší a v různých ohledech méně uspokojivé než skutečný proces defragmentace na úrovni jádra, který bere v úvahu souborový systém.

Ext4 řeší tento problém přímo pomocí e4defrag , online nástroj pro defragmentaci na úrovni bloku a rozsahu, v režimu jádra, s podporou souborového systému.

Probíhající vývoj ext4

Ext4 je stejně jako Monty Python oběť moru jednou řekla:"Ještě ne zcela mrtvá!" Ačkoli to jeho hlavní vývojář považuje za pouhou zarážku na cestě ke skutečně nové generaci souborového systému, žádný z pravděpodobných kandidátů ještě nějakou dobu nebude připraven (kvůli technickým nebo licenčním problémům) na nasazení jako kořenový souborový systém.

Do budoucích verzí ext4 se stále vyvíjí několik klíčových funkcí, včetně kontrolního součtu metadat, prvotřídní podpory kvót a velkých alokačních bloků.

Kontrolní součet metadat

Protože ext4 má redundantní superbloky, kontrolní součet metadat v nich nabízí souborovému systému způsob, jak sám zjistit, zda je primární superblok poškozen a potřebuje použít alternativní. Je možné se zotavit z poškozeného superbloku bez kontrolního součtu – ale uživatel by si nejprve musel uvědomit, že byl poškozený a poté zkuste ručně připojit souborový systém pomocí alternativního. Vzhledem k tomu, že připojení souborového systému pro čtení a zápis s poškozeným primárním superblokem může v některých případech způsobit další škody, není to dostatečné řešení ani pro dostatečně zkušeného uživatele!

Ve srovnání s extrémně robustním kontrolním součtem jednotlivých bloků nabízeným souborovými systémy nové generace, jako je btrfs nebo zfs, je kontrolní součt metadat ext4 docela slabou vlastností. Ale je to mnohem lepší než nic.

Ačkoli to zní jako zbytečné – ano, kontrolní součet VŠECHNY VĚCI! – existuje několik významných problémů s přišroubováním kontrolních součtů do souborového systému po faktu; podrobnosti naleznete v dokumentu návrhu.

Prvotřídní podpora kvót

Počkat, kvóty?! Máme je od ext2 dnů! Ano, ale vždy to byl jen dodatečný nápad a vždycky byly tak trochu na hovno. Pravděpodobně nemá cenu zacházet do chlupatých detailů, ale návrhový dokument uvádí způsoby, jak budou kvóty přesunuty z uživatelského prostoru do jádra a jak budou správněji a výkonněji vynucovány.

Velké alokační bloky

Jak čas plyne, tyto otravné úložné systémy jsou stále větší a větší. Vzhledem k tomu, že některé disky SSD již používají 8K hardwarové bloky, je současné omezení ext4 na 4K bloky stále více omezující. Větší úložné bloky mohou snížit fragmentaci a výrazně zvýšit výkon za cenu většího „slackého“ prostoru (prostoru, který zbyde, když potřebujete pouze část bloku k uložení souboru nebo poslední část souboru).

Chlupaté detaily si můžete prohlédnout v dokumentu návrhu.

Praktická omezení ext4

Ext4 je robustní, stabilní souborový systém a je to to, co by většina lidí měla pravděpodobně používat jako kořenový souborový systém v roce 2018. Ale nedokáže si poradit se vším. Pojďme si krátce promluvit o některých věcech, které byste neměli očekávat od ext4 – nyní nebo pravděpodobně v budoucnu.

Ačkoli ext4 dokáže adresovat až 1 EiB – ekvivalent 1 000 000 TiB – dat, opravdu, skutečně by se o to neměl pokoušet. Existují problémy s rozsahem nad rámec pouhé schopnosti zapamatovat si adresy mnohem více bloků a ext4 se nyní (a pravděpodobně nikdy nebude) příliš škálovat nad 50-100 TiB dat.

Ext4 také dostatečně nezaručuje integritu vašich dat. Jak velký pokrok byl žurnálování zpět ve dnech ext3, nepokrývá mnoho běžných příčin poškození dat. Pokud jsou data poškozena, když jsou již na disku – vadným hardwarem, dopadem kosmického záření (ano, opravdu) nebo prostou degradací dat v průběhu času – ext4 nemůže takové poškození detekovat ani opravit.

Na základě posledních dvou položek je ext4 pouze čistým systémem souborů a ne správce svazku úložiště. To znamená, že i když máte více disků – a tedy paritu nebo redundanci, ze kterých byste teoreticky mohli obnovit poškozená data – ext4 to nemůže vědět nebo to využít ve svůj prospěch. I když je to teoreticky možné oddělit souborový systém a systém správy svazku úložiště do samostatných vrstev bez ztráty funkcí automatické detekce a opravy poškození, takto nejsou navrhovány současné systémy úložiště a pro nové návrhy by to představovalo značné problémy.

Alternativní souborové systémy

Než začneme, jedno varování:Buďte velmi opatrně s jakýmkoli alternativním souborovým systémem, který není zabudován do a přímo podporován jako součást hlavního jádra vaší distribuce!

I když je souborový systém bezpečný , jeho použití jako kořenového souborového systému může být naprosto děsivé, pokud se během upgradu jádra něco zadrhne. Pokud nejste extrémně vyhovuje myšlence bootování z alternativních médií a manuálnímu a trpělivému šťouchání do modulů jádra, konfigurací grub a DKMS z chrootu... neodcházejte z rezervace s kořenovým souborovým systémem na systému, který je pro vás důležitý.

Mohou existovat dobré důvody pro použití souborového systému, který vaše distribuce přímo nepodporuje – ale pokud ano, důrazně vám doporučuji jej připojit po systém je funkční a funkční. (Například můžete mít kořenový souborový systém ext4, ale většinu dat ukládáte do fondu zfs nebo btrfs.)

XFS

XFS je asi tak hlavní řada, jakou neext souborový systém dostane pod Linux. Je to 64bitový žurnálovací souborový systém, který je zabudován do linuxového jádra od roku 2001 a nabízí vysoký výkon pro velké souborové systémy a vysoký stupeň souběžnosti (tj. opravdu velký počet procesů, které všechny zapisují do souborového systému najednou).

XFS se stal výchozím souborovým systémem pro Red Hat Enterprise Linux od RHEL 7. Stále má několik nevýhod pro domácí uživatele nebo uživatele v malých firmách – především je to skutečná bolest změnit velikost existujícího souborového systému XFS do té míry, že obvykle přináší více má smysl vytvořit další a zkopírovat data.

I když je XFS stabilní a výkonný, není mezi ním a ext4 dostatečný konkrétní rozdíl v konečném použití, aby bylo možné doporučit jeho použití kdekoli, kde není výchozí (např. RHEL7) pokud řeší konkrétní problém, který máte s ext4, jako jsou souborové systémy s kapacitou>50 TiB.

XFS v žádném případě není souborovým systémem "nové generace" ve způsobu, jakým jsou ZFS, btrfs nebo dokonce WAFL (proprietární souborový systém SAN). Stejně jako ext4 by měl být s největší pravděpodobností považován za zarážku na cestě k něčemu lepšímu.

ZFS

ZFS byl vyvinut společností Sun Microsystems a pojmenován po zettabyte – ekvivalentu 1 bilionu gigabajtů – protože by teoreticky mohl řešit tak velké úložné systémy.

Skutečný souborový systém nové generace, ZFS nabízí správu svazků (možnost adresovat více jednotlivých úložných zařízení v jednom souborovém systému), kryptografický kontrolní součet na úrovni bloku (umožňující detekci poškození dat s extrémně vysokou mírou přesnosti), automatickou opravu poškození (kde je k dispozici redundantní nebo paritní úložiště), rychlá asynchronní přírůstková replikace, inline komprese a další. Mnohem více.

Největším problémem ZFS z pohledu uživatele Linuxu je licencování. ZFS byla licencována CDDL, což je semi-permisivní licence, která je v rozporu s GPL. O důsledcích používání ZFS s linuxovým jádrem se vedou četné spory, názory sahají od „je to porušení GPL“ přes „je to porušení CDDL“ až po „je to naprosto v pořádku, jen to nebylo testováno u soudu. " Nejpozoruhodnější je, že Canonical zahrnul kód ZFS do svých výchozích jader od roku 2016 bez právního napadení.

V tuto chvíli dokonce jako velmi Sám nadšený uživatel ZFS bych ZFS jako kořenový souborový systém Linuxu nedoporučoval. Pokud chcete využít výhod ZFS na Linuxu, nastavte malý kořenový souborový systém na ext4, pak umístěte ZFS na své zbývající úložiště a umístěte na něj data, aplikace, cokoliv chcete – ale ponechte root na ext4, dokud vaše distribuce nebude explicitně podporuje kořenový adresář zfs.

btrfs

Btrfs — zkratka pro B-Tree Filesystem a obvykle se vyslovuje „butter“ — oznámil Chris Mason v roce 2007 během svého působení ve společnosti Oracle. Btrfs se zaměřuje na většinu stejných cílů jako ZFS, nabízí správu více zařízení, kontrolní součty po blocích, asynchronní replikaci, inline kompresi a další.

Od roku 2018 je btrfs přiměřeně stabilní a použitelný jako standardní souborový systém s jedním diskem, ale pravděpodobně by se na něj nemělo spoléhat jako na správce svazků. Ve srovnání s ext4, XFS nebo ZFS trpí v mnoha běžných případech použití značnými problémy s výkonem a jeho funkce nové generace – replikace, topologie více disků a správa snímků – mohou být pěkně zabugované, s výsledky od katastrofálně sníženého výkonu. ke skutečné ztrátě dat.

Pokračující stav btrfs je kontroverzní; SUSE Enterprise Linux jej přijal jako svůj výchozí souborový systém v roce 2015, zatímco Red Hat oznámil, že již nebude podporovat btrfs počínaje RHEL 7.4 v roce 2017. Pravděpodobně stojí za zmínku, že produkční, podporovaná nasazení btrfs jej používají jako jednodiskový souborový systém, ne jako správce svazku více disků a la ZFS – dokonce i Synology, která na svých úložných zařízeních používá btrfs, ale pro správu disků jej vrství na konvenční linuxové jádro RAID (mdraid).


Linux
  1. Pochopení příkazů vypnutí, vypnutí, zastavení a restartu v Linuxu

  2. Jak získat přístup k souborovým systémům Linux ve Windows 10 a WSL 2

  3. Zkontrolujte místo na disku v Linuxu pomocí příkazů df a du

  1. Inodes a souborový systém Linux

  2. Vlastnosti a rozdíly v souborovém systému Linux Ext2, Ext3 a Ext4

  3. Souborový systém pro sdílení disků mezi Linuxem a FreeBSD

  1. Linux – Rozumíte unixovým oprávněním a typům souborů?

  2. Jak změnit velikost oddílů a souborových systémů na nich?

  3. 10 Příklady příkazů Linux Fsck ke kontrole a opravě souborového systému