Internet Info, s.r.o. Lupa Měšec Podnikatel Root Zdroják DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

Btrfs: zajímavý, ale nekompletní souborový systém

Btrfs (Butter FS) je souborový systém, který minulý rok začala vyvíjet firma Oracle. Obsahuje spousty zajímavých vlastností a na Linuxu je brán jako náhrada ext3. Jeho vývoj je zatím velmi bouřlivý, to nám ale nebrání se podívat na to, co je už hotové a zhodnotit dosavadní snažení vývojářů.

Tweetni to Twitter Jaggni to! Jagg Del.icio.us Delicious

Btrfs je, když…

Na desktopové souborové systémy se s klesajícími cenami disků kladou čím dál větší nároky. Uživatelé si přejí vytvářet zálohy, testovat distribuce Linuxu, provozovat RAID pole, ukládat spousty dat (multimédia, obrazy CD/DVD, …) a pokud možno tak, aby byl disk „nafukovací“. Nejen desktopy volají po nových vlastnostech souborových systémů, ale ani servery se zatím nedočkaly toho, co by opravdu chtěly. LVM2 není pro mnoho uživatelů ani administrátorů to pravé řešení. Zatímco ZFS se potácí v licenčních problémech, Oracle pomalu protlačuje vývoj svého vlastního souborového systému, který nazval btrfs. Ten přichází s velmi vyspělými vlastnostmi:

  • Maximální velikost souboru 264
  • Efektivní způsob ukládání malých souborů
  • Efektivní způsob indexování adresářů
  • Dynamicky alokované inody
  • Zapisovatelné snapshoty
  • Podsvazky
  • RAID 0 (striping), 1 (mirroring) a 10 (1+0)
  • Kontrolní součet dat a metadat
  • Kontrola souborového systému za běhu
  • Velmi rychlá kontrola souborového systému offline
  • Efektivní inkrementální zálohy
  • Nové vlastnosti se doplňují
  • CRFS

O několika vlastnostech bych se rád zmínil více. Maximální velikost nové souborové systémy ženou opravdu vysoko. Btrfs má ale i jiné výhody. Například efektivně ukládá malé soubory a index pro adresáře. Malé soubory, které jsou menší než jeden blok, mohou být zabaleny do jednoho bloku k sobě a tím zabírat méně místa. Adresáře jsou indexovány dvěma rozdílnými způsoby. Jeden používá TEA hash, druhý způsob je využíván u funkce readdir(), která vrací data seřazena podle čísla inodu. To se mnohem více podobná skutečnému rozprostření dat na disku a dočkáme se tak většího výkonu. Pro testování nových verzí programů nebo rovnou celé aktualizace linuxového systému se mohou hodit zapisovatelné snapshoty. Díky nim můžeme vytvořit oddíl podobný již existujícímu a využít ho pro zálohování nebo testování, změny v něm uskutečněné se nedostanou do původního oddílu. Snapshoty se po vytvoření nemění (neprojevují se změny provedené v původním oddílu) a jsou to tedy takové „časové obrazy“ disku. Ty se pak dají jednoduše překopírovat na jiné místo.

Historie

Btrfs je velmi mladý souborový systém. V roce 2007 jeho vývoj oznámil Oracle a poslední stabilní vydání je z 15. května 2008. Tento souborový systém má být náhradou zastarávajícího ext3, u kterého ani jeho vylepšená verze ext4 nepřináší vlastnosti, po kterých občas uživatelé volají. Oracle se rozhodlo přijít s něčím novým. S něčím co se dokáže postavit do ringu i s velikány jako je ZFS. Jako licence byla vybrána GPL z důvodu kompatibility s jádrem. Od začátku je tento systém navrhován pro linuxový kernel a je spjat s linuxovým device-mapperem. Ten využívá například i LVM nebo linuxový softwarový RAID. Je to tedy odladěná technologie dostupná na jádrech řad 2.4 i 2.6. Btrfs stále ještě není připraveno pro ostré nasazení, protože vývojáři nezaručují, že se ještě během vývoje nezmění struktura některých součástí.

Anketa

Vítáte příchod nového souborového systému do Linuxu?

       

CRFS

Spolu s btrfs byl navržen CRFS, protokol pro zpřístupnění dat klientům v síti. CRFS je úzce spjato s btrfs a skládá se z user-space daemonu crfsd a linuxového modulu. Vývoj je ve velmi rané alpha verzi, která zahrnuje navržení základního designu a implementaci základních vlastností. Nebylo zatím vypuštěno ani jedno vydání a zdrojové kódy je možné stáhnout z mercurial repozitáře. Některé vlastnosti se do alpha verze nedostanou, přece jen práce na něm začaly později než na btrfs.

Použití v praxi

Brtfs pokročilo za ten rok o velký kus a vyzkoušet si ho dnes může bez problémů každý. Rád bych tedy ukázal, jak souborový systém dostat do Linuxu a jak použít jeho základní vlastnosti.

Instalace

Instalace je jednoduchá. Stačí si stáhnout ze stránek btrfs zdrojové kódy posledního vydání, rozbalit a zkompilovat. Pozor na to, abyste stáhli jak btrfs, tak btrfs-progs. V době psaní tohoto článku je dispozici btrfs ve verzi 0.15 a další verze se v postupu mohou mírně lišit.

cd /usr/src
wget http://www.kernel.org/pub/linux/kernel/people/mason/btrfs/btrfs-0.15.tar.bz2
wget http://www.kernel.org/pub/linux/kernel/people/mason/btrfs/btrfs-progs-0.15.tar.bz2
tar xf btrfs-0.15.tar.bz2
tar xf btrfs-progs-0.15.tar.bz2
cd btrfs-0.15
make
insmod btrfs
cd ../btrfs-progs-0.15
make
make install 

Soubory pro práci s btrfs se nainstalují do /usr/local/bin. Některé distribuce nemají nastavenou proměnnou $PATH na tento adresář, a proto je v takovém případě ještě potřeba doplnit do ~/.bashrc u uživatele root jeden řádek.

export PATH=/usr/local/bin:"${PATH}" 

Naformátování oddílu

Práce s btrfs je pohodlná a formátování je stejné jako u jiných souborových systémů. Používá se k tomu nástroj mkfs.btrfs. Vytvořil jsem si pro testování, za pomoci LVM2, 4 oddíly.

mkfs.btrfs /dev/mydisks/btrfs1
mkfs.btrfs /dev/mydisks/btrfs2
mkfs.btrfs /dev/mydisks/btrfs3
mkfs.btrfs /dev/mydisks/btrfs4 

Tímto vytvoříme 4 oddíly stejně jako například u ext3. Btrfs umí však fyzické oddíly spojovat.

mkfs.btrfs /dev/mydisks/btrfs1 /dev/mydisks/btrfs2 /dev/mydisks/btrfs3 /dev/mydisks/btrfs4
nebo
mkfs.btrfs /dev/mydisks/btrfs* 

Pokud jako parametr programu mkfs.btrfs napíšeme 4 předchozí oddíly, tak se nám vytvoří jeden virtuální oddíl o velikosti součtu všech čtyř oddílů. Mountovat je pak můžeme pomocí kteréhokoli z nich.

mount /dev/mydisks/btrfs3 /mnt/p1 

Vytvoření RAID 0 a 1

Vytvoření RAID pole na úrovni souborového systému není o moc těžší než vytvoření normálního souborového systému. V dalším postupu budeme potřebovat program btrfs-vol.

mkfs.btrfs -m raid0 -d raid0 /dev/mydisks/btrfs1 /dev/mydisks/btrfs2
mkfs.btrfs -m raid1 /dev/mydisks/btrfs1 /dev/mydisks/btrfs2
mkfs.btrfs -m raid10 -d raid10 /dev/mydisks/btrfs* 

RAID můžeme vytvořit zvlášť pro data a zvlášť pro metadata. První řádek vytvoří pro data i metadata raid0 (striping). Druhý řádek vytvoří RAID 1 (mirroring) pro metadata. Třetí řádek vytvoří nad všemi čtyřmi oddíly jeden raid 10 oddíl.

Pokud některý z disků havaruje, btrfs nabízí možnost jednoduché výměny v běžícím stavu. Mějme RAID 1 složený ze dvou disků.

mkfs.btrfs -m raid1 -d raid1 /dev/mydisks/btrfs1 /dev/mydisks/btrfs2
mount /dev/mydisks/btrfs1 / 

Pokud jeden z disků havaruje, stačí přimountovaný oddíl přepnout do degradovaného stavu, špatný disk odpojit a dát nový.

mount -o degraded /dev/mydisks/btrfs2 /
btrfs-vol -r missing /mnt 

Klíčové slovo „missing“ je speciální slovo nahrazující chybějící disk. Tímto ho odstraníme z našeho RAIDu.

Pokud chceme z nějakého disku vytvořit RAID nebo doplnit chybějící disk z existujícího RAID pole, použijeme program btrfs-vol a nový disk jednoduše přidáme.

mkfs.btrfs /dev/mydisks/btrfs3
btrfs-vol -a /dev/mydisks/btrfs3 / 

Rozložení dat po obou discích dosáhneme opět pomocí programu btrfs-vol.

btrfs-vol -b / 

Stejně jako u přidávání oddílů můžeme oddíly odstraňovat.

btrfs-vol -r /dev/mydisks/btrfs1 / 

Pokud se rozhodneme s btrfs používat více zařízení, bude potřeba spustit program btrfsctl s parametrem -a hned po zavedení modulu, který prohledá všechny disky v /dev a pokusí se najít btrfs oddíly. O to by se v budoucnu měly postarat linuxové distribuce samy.

btrfsctl -a 

Zobrazení informací

Pokud máme disků hodně a nemáme o nich přehled, program „btrfs-show“ nám ukáže, co za oddíly s btrfs máme v našem systému.

Porovnávací testy

Pro srovnávací test jsem se rozhodl za protivníka vybrat ext3, kterému má být btrfs konkurencí. Jako testovací nástroj jsem použil bonnie++.

Btrfs

Sekvenční zápis Sekvenční čtení Náhodné čtení
Po znaku Blok Přepis Po znaku Blok Skoků
MB K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU
100 46813 87.8% 57984 17.7% 42466 5.1% 55964 86.3% 2141497 96.2% 107443.1 99.4%

Ext3

Sekvenční zápis Sekvenční čtení Náhodné čtení
Po znaku Blok Přepis Po znaku Blok Skoků
MB K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU
100 46174 88.3% 58130 19.4% 39165 4.9% 40445 63.2% 2024635 89.0% 107207.0 96.5%

Zhodnocení výsledků

Z tabulek lze vyčíst, že v zatěžování CPU jsou na tom oba filesystémy podobně i přes to, že ext3 mírně vede při čtení. Při zápisu „po znacích“ je btrfs pomalejší v obou testech. Ve čtení dat a stejně tak v náhodném přístupu (toto spíše závisí na samotném HDD) jsou si opět oba souborové systémy podobné. Výsledky testů nemají velkou vypovídající hodnotu o výkonu btrfs a uvádím je jen pro zajímavost. Btrfs se bude ještě hodně měnit a za půl roku se můžeme dočkat úplně jiných čísel.

Závěr

Brtfs se mi opravdu zamlouvá, ale vývoj je na něm ještě znát. Měl jsem problémy s RAIDem, které se mi nepodařilo vyřešit. Stejný problém jsem měl se snapshoty, které se mi vůbec nechtěly vytvořit. Správa oddílů v LVM je mnohem přehlednější, ale btrfs bych tuto vlastnost nezazlíval, protože funguje jinak, má jiné cíle a hlavně LVM2 už tu je s námi několik let a tak je vývoj mnohem dále. Tento souborový systém obsahuje opravdu spousty vlastností, které se dají využít jak na desktopu tak na serveru, takže si svoje místo v linuxových distribucích určitě najde. Oracle trefil s btrfs do černého.

Adam Štrauch

Adam Štrauch

Adam Štrauch je redaktorem serveru Root.cz a svobodný software nasazuje jak na desktopech tak i na routerech a serverech. Ve svém volném čase se stará o komunitní síť, ve které je již přes 100 členů.

Školení: Linux – Firewall, Samba, VPN

Na třídenním školení se naučíte nainstalovat a spravovat Firewall a Router, SAMBA Doménový a Souborový server. Dále si zprovozníte vlastní, zabezpečený VPN server.

Podrobnější informace a přihláška

Ohodnoťte jako ve škole:
Průměrná známka 2,50

Přehled názorů

2. os pl.
D.C. 7. 7. 2008 01:19
Nový
├ 
Re: 2. os pl.
BLEK. 7. 7. 2008 03:14
Nový
│
└ 
Re: 2. os pl.
nikola ciprich 7. 7. 2008 12:33
Nový
│
 
├ 
Re: 2. os pl.
anonymní uživatel 7. 7. 2008 12:44
Nový
│
 
└ 
Re: 2. os pl.
BLEK. 7. 7. 2008 13:49
Nový
│
 
 
└ 
Re: 2. os pl.
anonymní uživatel 7. 7. 2008 17:15
Nový
│
 
 
 
└ 
Re: 2. os pl.
Xerces 7. 7. 2008 21:52
Nový
│
 
 
 
 
└ 
Re: 2. os pl.
Biktop 11. 7. 2008 18:42
Nový
└ 
Re: 2. os pl.
Adam Štrauch 7. 7. 2008 08:24
Nový
Ten úvod je blbsot, prejže požadavky desktopu O.o
Uživatelka si přála…t v lihu 7. 7. 2008 03:17
Nový
├ 
Re: Ten úvod je blbsot, prejže požadavky desktopu O.o
Uživatelka si přála…t v lihu 7. 7. 2008 03:20
Nový
│
└ 
Re: Ten úvod je blbsot, prejže požadavky desktopu O.o
Daniel Smolik 7. 7. 2008 08:13
Nový
│
 
├ 
Re: Ten úvod je blbsot, prejže požadavky desktopu O.o
Mard 7. 7. 2008 11:59
Nový
│
 
│
├ 
Re: Ten úvod je blbsot, prejže požadavky desktopu O.o
Daniel Smolik 7. 7. 2008 12:12
Nový
│
 
│
│
└ 
Re: Ten úvod je blbsot, prejže požadavky desktopu O.o
BlackRider 14. 1. 2009 15:40
Nový
│
 
│
└ 
Re: Ten úvod je blbsot, prejže požadavky desktopu O.o
kotz 7. 7. 2008 18:17
Nový
│
 
└ 
Re: Ten úvod je blbsot, prejže požadavky desktopu O.o
Uživatelka si přála…t v lihu 7. 7. 2008 16:14
Nový
├ 
Re: Ten úvod je blbsot, prejže požadavky desktopu O.o
DNA 7. 7. 2008 03:51
Nový
│
└ 
Re: Ten úvod je blbsot, prejže požadavky desktopu O.o
Uživatelka si přála…t v lihu 7. 7. 2008 04:03
Nový
│
 
└ 
Re: Ten úvod je blbsot, prejže požadavky desktopu O.o
DNA 7. 7. 2008 13:47
Nový
├ 
Re: Ten úvod je blbsot, prejže požadavky desktopu O.o
M. Lox 7. 7. 2008 07:54
Nový
│
├ 
Re: Ten úvod je blbsot, prejže požadavky desktopu O.o
JS 7. 7. 2008 08:08
Nový
│
│
├ 
Re: Ten úvod je blbsot, prejže požadavky desktopu O.o
M. Lox 7. 7. 2008 08:16
Nový
│
│
└ 
Re: Ten úvod je blbsot, prejže požadavky desktopu O.o
M. Lox 7. 7. 2008 08:22
Nový
│
└ 
Re: Ten úvod je blbsot, prejže požadavky desktopu O.o
OIO 7. 7. 2008 08:52
Nový
│
 
├ 
Re: Ten úvod je blbsot, prejže požadavky desktopu O.o
M. Lox 7. 7. 2008 08:56
Nový
│
 
└ 
Re: Ten úvod je blbsot, prejže požadavky desktopu O.o
Keny 7. 7. 2008 09:54
Nový
├ 
Re: Ten úvod je blbsot, prejže požadavky desktopu O.o
Izak 7. 7. 2008 13:10
Nový
│
├ 
Re: Ten úvod je blbsot, prejže požadavky desktopu O.o
YOL 7. 7. 2008 13:27
Nový
│
│
├ 
Re: Ten úvod je blbsot, prejže požadavky desktopu O.o
anonymní uživatel 7. 7. 2008 13:59
Nový
│
│
│
└ 
Re: Ten úvod je blbsot, prejže požadavky desktopu O.o
YOL 7. 7. 2008 14:11
Nový
│
│
└ 
Re: Ten úvod je blbsot, prejže požadavky desktopu O.o
DNA 7. 7. 2008 14:47
Nový
│
└ 
Re: Ten úvod je blbsot, prejže požadavky desktopu O.o
Uživatelka si přála…t v lihu 7. 7. 2008 16:21
Nový
├ 
Re: Ten úvod je blbsot, prejže požadavky desktopu O.o
m1c4a1 9. 7. 2008 02:13
Nový
│
└ 
Re: Ten úvod je blbsot, prejže požadavky desktopu O.o
Rejpal 10. 7. 2008 20:51
Nový
│
 
└ 
Re: Ten úvod je blbsot, prejže požadavky desktopu O.o
HKMaly 15. 1. 2009 08:44
Nový
└ 
Re: Ten úvod je blbsot, prejže požadavky desktopu O.o
vtech 11. 7. 2008 08:58
Nový
RE: Btrfs: zajímavý, ale nekompletní souborový systém
Zdenek 7. 7. 2008 07:14
Nový
└ 
RE: Btrfs: zajímavý, ale nekompletní souborový systém
Adam Štrauch 7. 7. 2008 08:03
Nový
Rychlost
Martin Mareš 7. 7. 2008 09:18
Nový
├ 
Re: Rychlost
Ondrej 'SanTiago' Zajicek 7. 7. 2008 12:09
Nový
│
└ 
Re: Rychlost
Martin Mareš 7. 7. 2008 15:25
Nový
├ 
Re: Rychlost
Jan Molič 7. 7. 2008 12:18
Nový
└ 
Re: Rychlost
Semo 7. 7. 2008 13:41
Nový
 
└ 
Re: Rychlost
Martin Mareš 7. 7. 2008 15:21
Nový
Striping vs. stripping
Alois Vytlemek 7. 7. 2008 10:40
Nový
└ 
Re: Striping vs. stripping
Adam Štrauch 7. 7. 2008 11:55
Nový
RE: Btrfs: zajímavý, ale nekompletní souborový systém
cthulhu 7. 7. 2008 12:09
Nový
└ 
RE: Btrfs: zajímavý, ale nekompletní souborový systém
YOL 7. 7. 2008 12:22
Nový
 
├ 
RE: Btrfs: zajímavý, ale nekompletní souborový systém
Jakub Jermář 7. 7. 2008 12:52
Nový
 
│
└ 
RE: Btrfs: zajímavý, ale nekompletní souborový systém
lobo 9. 7. 2008 22:47
Nový
 
│
 
└ 
Re: RE: Btrfs: zajímavý, ale nekompletní souborový systém
Xerces 31. 7. 2009 09:31
Nový
 
├ 
RE: Btrfs: zajímavý, ale nekompletní souborový systém
anonymní uživatel 7. 7. 2008 12:56
Nový
 
│
└ 
RE: Btrfs: zajímavý, ale nekompletní souborový systém
YOL 7. 7. 2008 13:05
Nový
 
│
 
└ 
RE: Btrfs: zajímavý, ale nekompletní souborový systém
anonymní uživatel 7. 7. 2008 16:47
Nový
 
│
 
 
└ 
RE: Btrfs: zajímavý, ale nekompletní souborový systém
GLX 7. 7. 2008 18:44
Nový
 
└ 
RE: Btrfs: zajímavý, ale nekompletní souborový systém
cthulhu 7. 7. 2008 12:58
Nový
 
 
├ 
RE: Btrfs: zajímavý, ale nekompletní souborový systém
anonymní uživatel 7. 7. 2008 13:05
Nový
 
 
│
└ 
RE: Btrfs: zajímavý, ale nekompletní souborový systém
Rejpal 7. 7. 2008 15:51
Nový
 
 
│
 
└ 
RE: Btrfs: zajímavý, ale nekompletní souborový systém
Rejpal 7. 7. 2008 15:52
Nový
 
 
└ 
RE: Btrfs: zajímavý, ale nekompletní souborový systém
Izak 7. 7. 2008 13:20
Nový
Ext4,5,6
Harvie .cz 1. 8. 2009 16:25
Nový
└ 
Re: Ext4,5,6
pje 14. 6. 2010 14:32
Nový
       

Tento text je již více než dva měsíce starý. Chcete-li na něj reagovat v diskusi, pravděpodobně vám již nikdo neodpoví. Pro řešení aktuálních problémů doporučujeme využít naše diskusní fórum.

Zasílat nově přidané příspěvky e-mailem