Hlavní navigace

Ext4: evoluční souborový systém

Adam Štrauch

Po dvou letech vývoje se souborový systém ext4 pomalu stabilizuje, sami vývojáři mu svěřují svá data a je pomalu na čase se podívat co všechno nás čeká, protože jej budeme zřejmě potkávat čím dál častěji. Nejedná se o žádná převratná vylepšení, ale spíše evoluci v navýšení výkonu a spolehlivosti.

Úvod

Theodore Ts'o je hlavním vývojářem utilit e2fsprogs, které slouží k práci se souborovými systémy ext(2,3,4) a angažuje se i na vývoji ext4. O něm jsme minulý týden informovali, že začal tento souborový systém sám používat na svém notebooku. Píše, že sice bude zálohovat trochu častěji, ale až na jeden malý problém nenarazil na nic co by mu bránilo v práci. Ext4 přichází se spoustou vlastností zlepšující výkon a omezující fragmentaci. Nově také přichází s možností defragmentovat celý souborový systém online.

Historie

Ext4 je sice mladý souborový systém, ale jelikož vychází, stejně jako jeho předchůdci, z dlouho vyvíjené verze, tak by se dalo říct, že první verze souborového systému ext se objevila v roce 1992. Samotné ext4 začalo vznikat v roce 2006. Jedná se opět o fork stávajícího souborového systému (ext3), do kterého jsou postupně přidávány další vlastnosti. Vývojáři ext3 navrhli několik vylepšení pro svůj souborový systém a některé byly dokonce implementovány, ale další nikoli a začalo se mluvit o vytvoření další verze ext. Někteří vývojáři navrhli, že by bylo lepší, kdyby ext3 zůstalo stabilní a nové vlastnosti se implementovaly až do ní. Argumenty pro vytvoření forku nakonec vývojáře přesvědčily a do jádra 2.6.19 se přidala podpora pro ext4.

Vlastnosti

Ext4 je na novinky bohatý. Poráží i starý limit maximální velikosti oddílu, který má ext3 na hodnotě 16 TiB při velikosti 8 KiB na jeden blok. Ext4 může mít oddíl veliký 1 exabyte. Stále se daří udržet dopřednou a zpětnou kompatibilitu, takže ext3 může uživatel připojit jako ext4 a obráceně. Byl také odstraněn limit 32 000 podadresářů v adresáři. Také byla přidána online defragmentace, což je vlastnost, jejíž absence je vyčítána Linuxu velmi dlouho.

Extents

Jednou z nedůležitějších novinek souborového systému ext4 jsou extenty. Jedná se o vlastnost, která dokáže namapovat velký rozsah fyzických bloků na disku na jeden ukazatel. Takhle jde spojit až 128 MiB velký prostor s velikostí bloků 4 KiB. To vylepšuje výkon, protože souborový systém nemusí hledat jednotlivé kousky souboru na disku a všechno má napsané v jednom extentu.

Persistent pre-allocation

Ext4 také řeší nově prealokaci bloků pro jeden soubor. Doposud se pro tuto činnost používala metoda, kdy se do souboru zapsalo spousty nul a tím se alokovalo potřebné místo navíc. Do ext4 bylo kvůli tomuto problému přidáno nové systémové volání preallocate(). Takto alokované místo by nemělo být fragmentované. Toto velmi ocení databázové systémy a také programy pro záznam různých audio a video přenosů, které ukládají data postupně podle toho, jak přijdou.

Delayed allocation

Občas se stává, že otevřené soubory postupně mění svoji velikost a rostou. Souborový systém se k těmto souborům chová tak, že data, která má zapsat, zapíše, a pokud je potřeba přidat další data, tak se může stát, že budou umístěny někde jinde a vznikne fragmentovaný soubor. Ext4 se snaží tomuto zabránit tím, že oddálí samotný zápis a hledání volných bloků, co nejvíce je to možné.

Multiblock allocator

Multiblock allocator slouží k namapování velkého množství bloků, učených pro jeden soubor, v jedné operaci. Díky tomu může souborový systém najít na disku dostatečný nefragmentovaný volný prostor, kam se všechna data bez fragmentace umístí. Tato vlastnost dovoluje programům odeslat hodně bloků najednou na rozdíl od existujícího mechanismu v jádře, které dovoluje posílat bloky pouze po jednom.

Vylepšený timestamp

Linux se dostává do velmi specifických zařízení a občas některé z těchto zařízení potřebuje přesnější čas než vyjádření timestampu po vteřinách. Jádro 2.6.23 přidává nanosekundy ke stávajícímu timestampu v systému a tohoto vylepšení využívá i ext4. Jako přídavek se k sekundové části přidaly 2 bity navíc a tím se posunul problém roku 2038 o dalších 500 let.

Vylepšená kontrola souborového systému

Program e2fck může nově ignorovat bloky nealokovaného místa a tabulku inodů a soustředí se jen na části souborového systému, kde by mohla být chyba. To zrychlí kontrolu celého souborového systému.

Výkonové porovnání s reiserfs

V dnešním článku jsem se rozhodl místo bonie++, použít jiné testy, které mají blíže k realitě. Testovací stroj je s procesorem AMD Athlon X2, má k dispozici 2 GiB RAM a LVM pole na discích 120+320+320 GiB. Při každém z testu je souborový systém vytvořen znovu a je použit 7 GiB velký oddíl, který je umístěn na konci 320 GiB disku. Jádro je použito z Gentoo a ext4 je zkompilováno bez podpory rozšířených práv a SELinuxu.

Vytvoření velké adresářové struktury

V tomto testu vytvořím adresářovou strukturu s pěti adresáři a každý z těchto adresářů bude mít 50 podadresářů. Každý adresář dále obsahuje 1000 souborů s obsahem několika málo bytů. Této struktury budu dále využít u testů s kompresí, dekompresí a u kopírování malých souborů. Pro vytvoření souborů používám malý script napsaný v pythonu. Pro každý test vytvářím souborový systém znovu a data, která budou použita, tam kopíruji z jiných oddílů (/tmp).

Souborový systém real user sys
ext4 0m24.505s 0m2.788s 0m11.192s
reiserfs 0m24.381s 0m3.041s 0m20.989s

V kernel space jasně vede ext4, celkový čas vytváření je podobný.

Komprese souborů

Souborový systém real user sys
ext4 0m55.063s 0m52.581s 0m2.376s
reiserfs 0m56.443s 0m52.752s 0m3.390s

Celkový čas je opět podobný, ale s ext4 se systém se soubory méně zabývá.

Dekomprese souborů

Souborový systém real user sys
ext4 0m25.110s 0m3.140s 0m11.157s
reiserfs 0m24.330s 0m3.255s 0m20.231s

Tento test dopadl podobně jako první. Vítěz je tedy ext4.

Kopírování malých souborů

Souborový systém real user sys
ext4 0m26.331s 0m0.000s 0m0.002s
reiserfs 0m21.998s 0m0.541s 0m20.185s

Kopírování souborů se u ext4 v kernel space prakticky neprojeví. Celkový čas je ovšem horší pro ext4.

Kopírování velkých souborů

Souborový systém real user sys
ext4 0m5.995s (200 MiB) a 0m22.549s (800MiB) 0m0.005s (200 MiB) a 0m0.012s (800MiB) 0m0.572s (200 MiB) a 0m2.487s (800MiB)
reiserfs 0m5.625s (200 MiB) a 0m23.379s (800MiB) 0m0.010s (200 MiB) a 0m0.019s (800MiB) 0m1.042s (200 MiB) a 0m3.950s (800MiB)

Pro tento test jsem se rozhodl použít film Big Buck Bunny s celkovou velikostí asi 200 MiB a Elephants Dreams s velikostí 800 MiB.

Shrnutí testů

Co se týče kernel space, tam jasně vede ext4, které se drží v jádře mnohem kratší dobu. Na druhou stranu celkový čas operace (který je ovlivněn parametry samotného disku) je velmi podobný. Ext4 má ve výkonu určitě co nabídnout.

Anketa

Plánujete nasadit ext4?

Závěr

Nové vlastnosti ext4 nejsou revoluční, ale spíš evoluční. Vývojáři si vytyčili jasné a reálné cíle a těch se drží. Ext4 je s každou verzí jádra použitelnější a osobně uvažuji o jeho použití na desktopu pro systémový oddíl. Je pravděpodobné, že se začne pomalu dostávat do distribucí, které ho budou mít nastavený jako výchozí souborový systém. Ext4 se ukázal jako velmi výkonný a jeho vlastnosti by měly udržet systém rychlý i při dlouhodobějším používání.

Našli jste v článku chybu?

15. 7. 2008 21:17

Uživatelce zkrouhli nick (neregistrovaný)
Tak to máte blbé, protože spolehlivé smazání nemá žádný FS - vyžaduje to totiž kompletní přepsání všech bloků (a pro extrémně paranoidní vícekrát, aby to nešlo přečíst v laboratoři), na což se každý rozumný FS vykašle (u toho péčka to budou řádově stovky MB). Spolehlivé mazání patří mimo FS, speciálním utilitám.

14. 7. 2008 12:05

Yenya (neregistrovaný)
To ale resite problem opozdeneho zapisu, ne opozdene alokace. Ta se navenek (z hlediska disku) projevuje stejne jako opozdeny zapis - jen _kam_ se bude zapisovat se urcuje az tesne pred zapisem (coz ale je jen interni optimalizace v pameti, z hlediska padu systemu pri vypadku napajeni se to chova stejne).

-Yenya, http://www.fi.muni.cz/~kas/blog/

DigiZone.cz: R2B2 a Hybrid uzavřely partnerství

R2B2 a Hybrid uzavřely partnerství

Lupa.cz: Levný tarif pro Brno nebude, je to kartel

Levný tarif pro Brno nebude, je to kartel

Měšec.cz: Exekuční poradna: ptejte se online

Exekuční poradna: ptejte se online

DigiZone.cz: SES zajistí HD pro M7 Group

SES zajistí HD pro M7 Group

Root.cz: Nová třída SD karet A1 s vysokým výkonem

Nová třída SD karet A1 s vysokým výkonem

Podnikatel.cz: Chtějte údaje k dani z nemovitostí do mailu

Chtějte údaje k dani z nemovitostí do mailu

120na80.cz: 5 nejčastějších mýtů o kondomech

5 nejčastějších mýtů o kondomech

120na80.cz: Co všechno ovlivňuje ženskou plodnost?

Co všechno ovlivňuje ženskou plodnost?

Měšec.cz: Za palivo zaplatíte mobilem (TEST)

Za palivo zaplatíte mobilem (TEST)

Vitalia.cz: Proč vás každý zubař posílá na dentální hygienu

Proč vás každý zubař posílá na dentální hygienu

Vitalia.cz: Pamlsková vyhláška bude platit jen na základkách

Pamlsková vyhláška bude platit jen na základkách

Lupa.cz: Obchod budoucnosti je bez front, košíků i pokladen

Obchod budoucnosti je bez front, košíků i pokladen

DigiZone.cz: Česká televize mění schéma ČT :D

Česká televize mění schéma ČT :D

Podnikatel.cz: Udávání a účtenková loterie, hloupá komedie

Udávání a účtenková loterie, hloupá komedie

120na80.cz: Pánové, pečujte o svoje přirození a prostatu

Pánové, pečujte o svoje přirození a prostatu

DigiZone.cz: V Plzni odstartovalo Radio 1

V Plzni odstartovalo Radio 1

Měšec.cz: Zdravotní a sociální pojištění 2017: Připlatíte

Zdravotní a sociální pojištění 2017: Připlatíte

Lupa.cz: Propustili je z Avastu, už po nich sahá ESET

Propustili je z Avastu, už po nich sahá ESET

Lupa.cz: Insolvenční řízení kvůli cookies? Vítejte v ČR

Insolvenční řízení kvůli cookies? Vítejte v ČR

DigiZone.cz: Sat novinky: slovenská TV8 HD i ruský NTV Mir

Sat novinky: slovenská TV8 HD i ruský NTV Mir