Czy jest sens używać tego już chyba wieczyście niedokończonego, linuksowego systemu plików?
Nada się na laptopa albo zewnętrzny dysk USB ale o poważniejszych zastosowań raczej zapomnijmy
Btrfs to skrót od B-Tree File System i często wymawiany jako butter lub butter eff ess. Oznacza najbardziej zaawansowany system plików obecny w głównym jądrze Linuksa. Pod pewnymi względami, btrfs stara się po prostu wyprzeć ext4, póki co ciągle domyślny system plików dla większości dystrybucji. Ale btrfs ma również dostarczać nowatorskie funkcje przełamujące schemat prostego systemu plików, między innymi łącząc w sobie funkcjonalność menedżera macierzy RAID i menedżera wolumenów.
Faktycznie, btrfs już teraz jest doskonałym zamiennikiem ext4 dla pojedynczego dysku. Ale jeśli masz nadzieję zastąpić ZFS lub jakiegoś RAIDa – nie będzie łatwo. Choć projekt btrfs usunął wiele z istotnych problemów, z którymi wystartował w 2009 roku, niektóre z nich pozostają z nami do teraz.
Historia
Założycielem projektu btrfs jest Chris Mason, który zaczął nad nim pracować w 2007 roku podczas pracy w Oracle. To sprawia, że wiele osób uważa, że btrfs jest projektem Oracle - a tak nie jest. Projekt należał do Masona, nie do jego pracodawcy, i do dziś pozostaje projektem społecznościowym, nieobciążonym korporacyjną własnością. W 2009 roku btrfs 1.0 został przyjęty do jądra Linuksa w wersji 2.6.29. Niemniej btrfs nie był jeszcze wtedy tak naprawdę gotowy na stosowanie „w produkcji”. Tak naprawdę przez pierwsze cztery lata btrfs był w swoistej wersji beta. Minęło już prawie osiem lat od usunięcia tagu experimental, ale wiele z odwiecznych problemów btrfsa nadal pozostaje nierozwiązanych. Więc podchodźcie do tego wynalazku ostrożnie.
Cechy
Btrfs ma tylko jednego prawdziwego konkurenta w przestrzeni systemów plików Linuksa i BSD: OpenZFS. Poza tym, że btrfs jest prostym jednodyskowym systemem plików, oferuje wiele topologii dyskowych (RAID), zarządzanie wolumenami (por. Linux Logical Volume Manager), migawki kopiuj-zapisz, asynchroniczną replikację przyrostową, automatyczne naprawianie uszkodzonych danych i kompresję.
Gdybyś chciał zbudować system bez btrfs i ZFS z podobnymi funkcjami, potrzebowałbyś całej masy wynalazków, np. mdraid, LVM no i wreszcie jakiegoś systemu plików w rodzaju ext4 lub xfs – a i tak nie uzyskałbyś tego co oferuje samodzielnie btrfs. Owszem, LVM ma snapshoty ale nie ma bezpośredniej ich replikacji. Ani ext4 ani xfs nie oferują kompresji inline. I chociaż mdraid może oferować naprawianie danych, jeśli włączysz dm-integrity
, to nie jest to tak wygodne jak w btrfs.
Krótko mówiąc, nie da się zreplikować całego obiecanego zestawu funkcji btrfs na starszym stosie pamięci masowych. Aby uzyskać cały pakiet możliwości potrzebujesz albo btrfs albo ZFS.
Topologie wielodyskowe Btrfs
Niestety, btrfs sam w sobie zawodzi w wielu zastosowaniach. Takim polem, na którym trudno zalecić stosowanie tego systemu plików, są topologie wielodyskowe.
Btrfs oferuje pięć topologii wielodyskowych: btrfs-raid0, btrfs-raid1, btrfs-raid10, btrfs-raid5, oraz btrfs-raid6. Mimo że w dokumentacji topologie te są zwykle określane w prostszy sposób - np. jako raid1, a nie btrfs-raid1 - zdecydowanie dobrze jest pamiętać o tym przedrostku bo topologie te mogą w niektórych przypadkach bardzo różnić się od swoich konwencjonalnych odpowiedników.
Na przykład btrfs-raid1 wcale nie łączy dysków w pary, może wykorzystać całą kolekcję dysków bez strat. Za każdym razem, gdy blok jest zapisywany do btrfs-raid1, jest on zapisywany identycznie na dwóch oddzielnych dyskach - dowolnych dwóch oddzielnych dyskach. Ponieważ nie ma stałych parowań, btrfs-raid1 może po prostu zapełnić wszystkie dyski w tym samym przybliżonym tempie, proporcjonalnym do ich pozostałej do wykorzystania pojemności.
Topologie btrfs-raid5 i btrfs-raid6 są nieco podobne do btrfs-raid1 w tym sensie, że - w przeciwieństwie do ich konwencjonalnych odpowiedników - są w stanie obsłużyć niedopasowane rozmiary dysków poprzez dynamiczne dostosowanie się w miarę zapełniania się mniejszych dysków. Ani btrfs-raid5, ani btrfs-raid6 nie powinny być jednak przez Was używane w pracy, na produkcji. Z kolei topologie btrfs-raid10 i btrfs-raid0 są znacznie bliższe swoim konwencjonalnym odpowiednikom i dla większości celów można je traktować jako bezpośrednie zamienniki, które mają te same mocne i słabe strony jak zwykłe RAIDy.
Pozostaje jeszcze kwestia wydajności - która w typowych warunkach i konfiguracjach może być o rzędy wielkości gorsza niż w przypadku ZFS czy mdraida.