Hlavní navigace

Fedora 33 přejde na Btrfs

Po vyškrnutnutí Btrfs z Red Hat Enterprise Linuxu a soustředění sil na Stratis může rozhodnutí Fedory působit překvapivě. Stojí za ním dostatečné důvody?
David Ježek 17. 7. 2020
Doba čtení: 5 minut

Sdílet

Jen v rychlosti připomeňme nejnovější fakt vzešlý z rozhodnutí Fedora Engineering and Steering Committee: s vydáním Fedora 33 přejde ve výchozí tato populární linuxová distribuce ze souborového systému Ext4 na Btrfs. Nejde o žádnou zásadní revoluci ani nevratný krok, ale pouze změnu ve výchozím nastavení instalace systému, který se v principu nedotkne lidí, kteří upgradují ze starší Fedory ani těch, kteří Btrfs nechtějí. Ti jednoduše setrvají u svého preferovaného filesystému, i kdyby to byl třeba Reiser4.

Hlasování mimochodem dopadlo 8 pro a 1 proti a týká se desktopových / Workstation verzí Fedory 33.

Co Btrfs Fedoře nabídne

V odůvodnění stojí například to, že přechod na Btrfs umožní přidat nové schopnosti tohoto souborového systému a také lépe řešit pro uživatele nestandardní situace typu docházejícího místa (připomeňme, že Fedora je jednou z těch distribucí, které nad vším propagují použití LVM). Btrfs má některé vlastnosti, které se v dnešní době hodí, například Copy-on-Write snapshoty, transparentní kompresi dat na úrovni souborového systému, optimalizace pro SSD, nativní podporu RAID, již naznačené lepší nakládání s docházejícím místem, propracovanější systém kontrolních součtů, I/O isolation pomocí cgroups2, podporu online zmenšení/zvětšení oddílů či jednodušší nastavení polí.

Na tomto místě připomeňme, že nasazením Btrfs jako výchozího se proslavilo zejména openSUSE. Ubuntu spíše koketuje se ZFS, ač zatím (s ohledem na to, že poslední vydání je LTS) k přechodu nedošlo. Každopádně toto vše naznačuje, že nad starým dobrým Ext4 se už pár let pozvolna stahují mračna (bez ohledu na to, že jej drtivá většina distribucí má i v roce 2020 jako výchozí).

Změny ve výchozích oddílech

Soupis na domovské Wiki Fedory uvádí navrhovanou změnu rozdělení oddílů. V současné době se používá logical volume vg/root přimountovaný jako / a vg/home přimountovaný jako /home. Ty jsou oddělené, takže mají i vlastní volné/zabrané místo.

Návrh by rád zavedl subvolume (podrobněji v článku z roku 2013) kořenového adresáře moutovaný jako / a subvolume pro home jako /home. Subvolume nemají velikost víceméně fungují jako adresáře ve společném prostoru a tak by se značně snížilo riziko, že na jednom z oddílů dojde místo (volné místo je sdílené).

Měnit by se nemělo to, že samostatný malý volume pro /boot bude na Ext4, a to z důvodů kompatibility pro instalace využívající dm-crypt sysroot. Zde by tedy nebyly automatické snapshoty/rollbacky. V případě využití šifrovaných dat by se každopádně nově místo LVM+Ext4 používal přímo systém pro volumes v rámci Btrfs. V upstreamu momentálně probíhají práce na podpoře nativního šifrování pro Btrfs, což by se po dokončení mohlo dostat do některého z budoucích vydání Fedory.

Možné budoucí optimalizace

Výše navržené a schválené změny představují jakési minimum, s nímž lze na Btrfs přejít. Systém toho ale umí více a výhledově by mohly do Fedory přijít i další změny. Jednou z nich je převedení i onoho 1GB /boot oddílu z Ext4 na Btrfs. Výhody by byly jasné: podpora snapshotů a rollbacku na úrovni souborového systému. Grub umí z Btrfs bootovat už více než 10 let, takže ani to by nebyl problém.

Další je samozřejmě komprese na úrovni souborového systému. Výhledově by Fedora mohla nasadit Zstd kompresi na vybrané adresáře, volitelný návrh zmiňuje /usr, /var/lib/flatpak, ~/.local/share/flatpak. Výhodou je úspora místa na disku, za určitých okolností vyšší výkon.

A do třetice je tu návrh na zavedení dalších subvolumes. Jmenovitě by svůj vlastní mohly dostat adresáře /var/log/, /var/lib/libvirt/images a ~/.local/share/gnome-boxes/images/. Výhodou by bylo, že by bylo možné je vyhodit ze snapshotů/rollbacků a send/receive, neboť systém snapshotů v Btrfs není rekurzivní a nejde do vnořených subvolumes.

Výhody pro Fedoru

Některé věci byly nastíněny už výše, zápis návrhu na Wiki shrnuje ještě podstatné výhody, které Fedora přechodem získá. Prvním je omezení rizika, že uživateli dojde volné místo. Na Btrfs by vše bylo „v jedné hromadě“ rozdělené na oddíly pomocí volumes/subvolumes. Navíc životnost uložišť by lidem prodloužilo zavedení komprese na úrovní souborového systému- A reflinky / snapshoty jsou výhodné i pro kontejnery.

Btrfs je také odolnější proti ztrátě dat, vše se ověřuje, případná poškozená data vyústí v I/O chybu, což je transparentnější pro aplikace. Btrfs se dále lépe chová pod velkou zátěží a jeho nasazení prospěje celkové kontrole zdrojů počítače (CPU, RAM a výše zmíněná I/O izolace).

V neposlední řadě je výhodou schopnost online změny velikost oddílů včetně zmenšení, třeba i z hlediska možné integrace systemd-homed. A nakonec Btrfs zjednodušuje správu a práci s komplexními systémy úložišť a přidává efektivně fungující replikaci, inkrementální zálohy s Btrfs send / Btrfs receive  atd.

Vlastně jak je to celé na Wiki Fedory popsáno, lze si klást otázku, proč k přechodu už dávno nedošlo.

Jak se to dotkne běžného uživatele?

Rád bych zde napsal pouze slovo „nijak“. Ve většině případů tomu také tak bude. Pokud běžného uživatele chápeme jako člověka, který kliká na tlačítko „další“, aby po půlhodině nastartoval svůj stroj s novou Fedorou, pak pro něj je Ext4 s podpůrnými nástroji (včetně LVM) zhruba stejně neviditelná věc jako Btrfs. Pokud se tvůrcům Fedory podaří přejít na Btrfs tak dokonale a pokud Btrfs bude stále zrát jako víno a do krásy jako v posledních letech, pak Fedoru čekají světlé zítřky.

Hackinbg

Samozřejmě se v příslušných diskusích objevovaly ostře negativní hlasy proti tomuto přechodu, třeba Vitaly Zaitsev označuje Btrfs za nejvíc nestabilní filesystém, co kdy vůbec viděl. Systém, který se rozbije i za ideálních okolností a vede ke kompletní ztrátě dat. Hovoří o mnoha stížnostech a nahlášených chybách a tom, že toto rozhodnutí bude mít [negativní] vliv na reputaci Fedory.

Takové komentáře, bez ohledu na motivaci jejich autorů, nepochybně najdeme i pro jakýkoli jiný souborový systém. Jsou lidé, kteří nedjí dopustit na Ext2/3/4, XFS, Btrfs, ZFS, NTFS, UFS či Reiser4 a stejně tak lidé, kteří všechny jmenované z duše nenávidí, neb jim přisuzují nějakou svoji minulou ztrátu dat. Počítače jsou dnes příliš komplexní na to, aby bylo možné 100% dát ruku do ohně za Btrfs, vždyť v útrobách pevných disků běží vlastní operační systémy a jejich vlastní procesory řídí myriády věcí, od NCQ až po drive-managed SMR zápis. Do toho všeho může „kecat“ Intel Management Engine a kdoví, co dalšího. Proto má Btrfs onu baterii pojistek ověřování dat, podobně jako třeba ZFS. Já mohu za sebe pouze konstatovat, že za poslední cca 3 roky, co Btrfs používám ve svém desktopu, jsem s ním nezaznamenal žádné problémy, ni žádnou ztrátu dat, ale totéž mohu říci i o Ext4 a NTFS.