close
Preskočiť na obsah

ext4

z Wikipédie, slobodnej encyklopédie

ext4 alebo fourth extended filesystem (štvtý rozšírený súborový systém) je žurnálovací súborový systém vyvíjaný pre jadro Linuxu. Vznikol ako nástupca súborového systému ext3 a zachováva viaceré prvky návrhu predchádzajúcich súborových systémov rodiny ext, najmä ext2 a ext3.[1]

Ext4 bol navrhnutý ako evolučné rozšírenie ext3, nie ako úplne nový súborový systém. Jeho cieľom bolo zlepšiť škálovateľnosť, výkon a spoľahlivosť pri väčších úložiskách, pričom sa mala zachovať spätná kompatibilita tam, kde to technické vlastnosti umožňujú.[2]

Ako vývojová verzia pod názvom ext4dev bol pridaný do linuxového jadra verzie 2.6.19. V tejto fáze bol označovaný ako experimentálny súborový systém určený najmä pre vývojárov.[3] Za stabilný a vhodný na bežné používanie bol označený vo verzii 2.6.28 linuxového jadra, ktorá bola vydaná v decembri 2008.[4]

História a vývoj

[upraviť | upraviť zdroj]

Vývoj ext4 nadväzoval na obmedzenia ext3, ktorý bol dlhý čas bežným súborovým systémom v linuxových distribúciách. Ext3 priniesol žurnálovanie nad základom ext2, ale pri rastúcej kapacite diskov a väčších súboroch sa začali prejavovať jeho škálovateľnostné limity. Ext4 preto zaviedol nové dátové štruktúry a algoritmy, ktoré mali znížiť režijné náklady pri práci s veľkými súbormi a veľkými súborovými systémami.[2]

Dôležitou zmenou bol prechod na používanie rozšírení, po anglicky extents. Tie nahrádzajú tradičné mapovanie jednotlivých blokov používané v ext2 a ext3. Rozšírenie opisuje súvislý rozsah fyzických blokov na disku, čo znižuje množstvo metadát potrebných na popis veľkých súborov.[1]

Hlavné vlastnosti

[upraviť | upraviť zdroj]

Veľkosť súborov a súborového systému

[upraviť | upraviť zdroj]

Ext4 podporuje väčšie súborové systémy a väčšie súbory než ext3. Teoretické limity závisia od veľkosti bloku, funkcií zapnutých pri vytvorení súborového systému, verzie jadra a používateľských nástrojov. V dokumentácii Oracle Linuxu sa pre ext4 uvádza maximálna veľkosť súboru 16 TiB a maximálna veľkosť súborového systému 1 EiB, pričom dokumentácia zároveň upozorňuje, že prakticky dosiahnuteľné a podporované hodnoty môžu byť nižšie podľa systému a použitého jadra.[5]

Niektoré distribúcie môžu mať vlastné podporované limity. Napríklad dokumentácia Red Hat Enterprise Linux 9 uvádza pre ext4 maximálnu veľkosť jednotlivého súboru 16 TB a maximálnu veľkosť súborového systému 50 TB v rámci daného systému.[6]

Rozšírenia

[upraviť | upraviť zdroj]

Rozšírenia, po anglicky extents, sú jednou z najvýznamnejších zmien oproti ext3. Namiesto ukladania mapovania pre veľké množstvo jednotlivých blokov umožňujú uložiť informáciu o súvislom rozsahu blokov. To znižuje režijné náklady metadát, zlepšuje prácu s veľkými súbormi a môže znižovať fragmentáciu.[1]

Použitie rozšírení však ovplyvňuje spätnú kompatibilitu. Súborový systém ext4 vytvorený alebo skonvertovaný s niektorými novými vlastnosťami nemusí byť možné bezpečne pripojiť ako ext3.[1]

Alokácia blokov a fragmentácia

[upraviť | upraviť zdroj]

Ext4 používa viaceré mechanizmy na efektívnejšie prideľovanie blokov. Patrí medzi ne viacblokový alokátor, ktorý dokáže prideľovať viac blokov naraz, a oneskorená alokácia, pri ktorej sa presné umiestnenie blokov na disku odkladá až do okamihu zápisu dát. Cieľom je lepšie rozhodnutie o umiestnení dát a zníženie fragmentácie.[7]

Oneskorená alokácia môže zlepšiť výkon, ale zároveň znamená, že aplikácie, ktoré potrebujú istotu zápisu dát na disk, majú používať príslušné systémové volania, napríklad fsync(). Správanie pri výpadku napájania závisí aj od režimu žurnálovania a nastavení pripojenia súborového systému.[2]

Žurnálovanie

[upraviť | upraviť zdroj]

Ext4 je žurnálovací súborový systém. Žurnálovanie pomáha udržať konzistenciu súborového systému pri neočakávanom vypnutí alebo páde systému. Ext4 podporuje viac režimov práce so žurnálom. V režime data=ordered, ktorý je bežným predvoleným režimom, sa žurnálujú metadáta a dáta sú zapisované pred potvrdením príslušných metadát do žurnálu. Režim data=journal zapisuje do žurnálu dáta aj metadáta, ale za cenu nižšieho výkonu. Režim data=writeback žurnáluje metadáta bez zachovania poradia zápisu dát.[2]

Ext4 podporuje aj kontrolné súčty žurnálu, ktoré umožňujú jadru alebo nástroju na kontrolu súborového systému zistiť poškodenie častí žurnálu.[2]

Rýchlejšia kontrola súborového systému

[upraviť | upraviť zdroj]

Ext4 označuje nepoužité skupiny blokov a nepoužité časti tabuliek inode, vďaka čomu ich nástroje na kontrolu súborového systému nemusia celé prehľadávať. To môže výrazne skrátiť čas kontroly, najmä pri veľkých súborových systémoch.[6]

Ďalšie vlastnosti

[upraviť | upraviť zdroj]

Medzi ďalšie vlastnosti ext4 patria rozšírené atribúty, podpora väčších adresárov, časové pečiatky s jemnejším rozlíšením, podpora kvót, kontrolné súčty metadát a v novších verziách aj funkcie ako šifrovanie na úrovni súborového systému alebo fs-verity.[1][2]

Nie všetky vlastnosti musia byť dostupné v každej distribúcii alebo v každej verzii linuxového jadra. Dostupnosť závisí od jadra, verzie nástrojov e2fsprogs a od vlastností zapnutých pri vytvorení alebo úprave súborového systému.[1]

Kompatibilita s ext2 a ext3

[upraviť | upraviť zdroj]

Súborové systémy ext2 a ext3 je možné v mnohých systémoch pripojiť pomocou ovládača ext4. To umožňuje používať jeden ovládač pre viacero súborových systémov rodiny ext.[1]

Spätná kompatibilita však nie je úplná v opačnom smere. Ak ext4 používa nové vlastnosti, ktoré ext3 nepozná, takýto súborový systém nemožno bezpečne pripojiť ako ext3. Typickým príkladom sú rozšírenia extents alebo ďalšie vlastnosti formátu, ktoré menia štruktúru uložených dát.[1]

Na vytvorenie súborového systému ext4 sa bežne používa nástroj mkfs.ext4. Na kontrolu a opravu sa používa e2fsck, na zmenu niektorých parametrov tune2fs a na zmenu veľkosti súborového systému resize2fs.[6]

Ext4 môže byť zväčšený aj počas pripojenia, ak to podporuje použitý systém a podkladové blokové zariadenie. Zmenšovanie sa zvyčajne vykonáva na nepripojenom súborovom systéme po kontrole nástrojom e2fsck.[6]

Ext4 patrí medzi všeobecné lokálne súborové systémy používané v Linuxe. Je vhodný pre bežné systémové oddiely, domovské adresáre, servery a ďalšie prípady, kde je potrebný stabilný lokálny súborový systém so žurnálovaním. Pri veľmi veľkých úložiskách alebo špecifických pracovných záťažiach môžu administrátori zvoliť aj iné súborové systémy, napríklad XFS, Btrfs alebo ZFS, podľa požiadaviek na výkon, správu dát, snímky, kontrolu integrity alebo podporované limity.

Referencie

[upraviť | upraviť zdroj]
  1. 1 2 3 4 5 6 7 8 ext4(5) — Linux manual page [online]. man7.org, [cit. 2026-04-28]. Dostupné online.
  2. 1 2 3 4 5 6 ext4 General Information [online]. The Linux Kernel documentation, [cit. 2026-04-28]. Dostupné online.
  3. Linux 2.6.19 [online]. KernelNewbies, [cit. 2026-04-28]. Dostupné online.
  4. Linux 2.6.28 [online]. KernelNewbies, [cit. 2026-04-28]. Dostupné online.
  5. System Requirements and Limits [online]. Oracle Linux documentation, [cit. 2026-04-28]. Dostupné online.
  6. 1 2 3 4 Getting started with an ext4 file system [online]. Red Hat Documentation, [cit. 2026-04-28]. Dostupné online.
  7. Block and Inode Allocation Policy [online]. The Linux Kernel documentation, [cit. 2026-04-28]. Dostupné online.