Btrfs
Vytvoření souborového systému
Komprese
Aby se prováděla komprese, musí být ve volbách pro mount uveden parametr compress. Pokud není kompresní poměr uspokojivý (jak zjistím kompresní poměr?), tak lze přidat parametr compress-force.
Jedním z důvodů špatného kompresního poměru může být že Btrfs interně upustí od komprese souboru, z důvodu přetížení CPU.
Práce s btrfs
Snapshoty
Kontrola volného místa
Při použití btrfs příkaz df nemusí zobrazovat validní hodnotu. Je to z toho důvodu, že kromě dat jsou na disku uložená také metadata, která si vezmou své místo. Ke kontrole volného místa je proto lepší používat přímo administrační utilitu btrfs. Rozdíl je pěkně vidět na následujícím ukázkovém výpisu. Ačkoliv příkaz df uvádí volných 200GB, je ve skutečnosti volných 340GB.
Dotazem přímo na připojený souborový systém je možné získat podrobnější výpis, který prozradí i kolik místa zabírají samotná data a kolik metadata
Reflink
Defragmentace
Defragmentace je proces, kdy se data jednoho souboru, rozdělená na více objektů rozházených po celém disku scelí do jednoho nového objektu.
Btrfs pracuje s on-line defragmentací. To znamená, že lze objekty defragmentovat za normálního provozu. Defragmentace se totiž v btrfs provádí de fakto automaticky, při každém kopírování či přesouvání souboru, neboť cílový objekt se vytváří z těch stávajících jako zbrusu nový, scelením objektů původních. Díky tomu jsou takové operace v btrfs bezpečnější než u jiných FS, protože původní objekty se odstraňují až poté co úspěšně vytvořen objekt nový.
I tak se ale může stát, že se vyskytnou defragmentované soubory. Obzvláště tehdy, je-li disk poměrně plný, protože k jednou vytvořeným objektům se už btrfs automaticky nevrací. Proto lze objekty deframentovat i dodatečně.
Každá položka souborového systému je samostatný objekt. Defragmentace adresáře v případě btrfs se tedy v žádném případě neaplikuje rekurzivně na objekty, které jsou jinak jeho součástí. Defragmentují se pouze metadata, která se týkají objektu který je defragmentován (adresář).
Rekurzivní defragmentaci lze provést s využitím utility find
Přitom je třeba mít na vědomí, že při defragmentaci objektu, pro který v rámci btrfs existuje nějaká přírůstková kopie (COW) - typicky objekt, který je součástí snapshotu, dojde k jejich vzájemnému oddělení a vytvoření vzájemně nezávislých objektů. Tzn. že si data ukousnou další místo na disku! |
Vyvážení - balance
Vyvažování (balance) je operace, která prostě vezme všechna data a metadata a přepíše je na jiné místo disku, s tím že je propasíruje přes alokační mechanismus. Tj. mechanismus, který rozhoduje kam se má co uložit.
Toto vyvažování bylo původně navrženo pro použití u btrfs rozloženého přes fvíce fyzických zařízení - odtud také název této funkcionality. Ale dá se využít i tehdy, pokud se přidá další zařízení, když hrozí zaplácnutí disku.
Tato operace má i další postranní efekty, které lze s výhodou využít: - Je-li na zařízení alokováno hodně bloků dat, které jsou jinak poměrně nevyužité, lze jejich zpřeházením scelit místo, neboť během vyvažování dojde k efektivnějšímu uložení dat a metadat. - Na souborovém systému, kde došlo k chybě při replikaci (např. u RAID-1 kde umřel disk) to donutí obnovit ztracenou kopii z metadat na aktuálně aktivním zařízení.
Co je důležité vědět
Vyvažování nijak nepracuje s tzv. B-stromy, takže nemá žádný vliv na zrychlení přístupu k souborovému systému. |
Scrub
Obnova btrfs
Pro obnovu btrfs existuje utilita btrfs-restore, která umožňuje nedestruktivním způsobem obnovit data ze souborového systému, který nejde namontovat.
Odkazy
- https://btrfs.wiki.kernel.org/index.php/Problem_FAQ Oficiální FAQ
- https://wiki.archlinux.org/index.php/Installing_on_Btrfs_root Btrfs jako kořenosý souborový systém
- https://wiki.archlinux.org/index.php/Maximizing_Performance Maximalizace výkonu u Btrfs