Btrfs

Z DCEwiki
Skočit na navigaci Skočit na vyhledávání

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.

Poznámka
stroj:~# df -h /mnt
Souborový systém       Velikost Užito Volno Uži% Připojeno do
/dev/mapper/data-sklad     3,7T  3,4T  200G  95% /mnt
stroj:~# btrfs fi show
Label: 'box'  uuid: 8c25587e-6680-4669-b04a-b34725068564
        Total devices 1 FS bytes used 3.30TB
        devid    1 size 3.64TB used 3.64TB path /dev/dm-0

Btrfs Btrfs v0.19

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

Poznámka
spike:~# btrfs fi df /mnt
Data: total=3.49TB, used=3.31TB
System, DUP: total=8.00MB, used=428.00KB
System: total=4.00MB, used=0.00
Metadata, DUP: total=74.75GB, used=5.00GB
Metadata: total=8.00MB, used=0.00

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

Upozornění 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

Upozornění 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