Extent

Extent je v informatice výraz pro speciální vlastnost souborového systému, která umožňuje uložit větší data ve větších úsecích (tzv. extenty), než je tomu při tradičním ukládání po jednotlivých alokačních jednotkách. Extenty jsou uloženy souvisle (tj. bez fragmentace) a zároveň je pro jejich popis potřeba méně metadat než při uložení stejných dat po jednotlivých alokačních jednotkách. Extenty tak urychlují práci s pevným diskem díky lineárnímu posuvu hlaviček a zmenšení množství metadat, které je nutné pro tuto operaci přečíst.

Při tradičním ukládání dat je prostor na úložném zařízení (například pevný disk) rozdělen na alokační jednotky. Ukládaná data jsou zapisována do volných alokačních jednotek a jejich seznam je zapsán do metadat. Alokační jednotky s daty a metadaty pak dohromady tvoří soubor. Při následném čtení je nejprve nutné přečíst metadata a podle jejich obsahu pak teprve vlastní data. Protože má typická alokační jednotka velikost 4 KiB (shodně s velikostí stránky paměti), je potřebné množství metadat pro velké soubory enormní a navíc se obvykle jedná o řadu sousedících (navazujících) alokačních jednotek. Extenty umožňují do metadata zapsat pouze počátek souvislého úseku alokačních jednotek a jejich počet (resp. délku dat). Tím je výrazně redukováno množství metadat a navíc extent není fragmentován.

Při porušení jednoho sektoru disku ve vyhrazené blokové struktuře způsobí mnohem větší ztrátu dat, než jeden špatný sektor v uložených datech. Aby bylo možné odolávat fragmentaci, několik souborových systémů se alokuje on-flush, tj. seskupí se do jednotného celku a zpracovávají se dohromady a tím uleví zatížení CPU.

Jeden extent se může stát v systému souborů alokační jednotkou o velikosti až 128 MiB souvislého místa na disku, místo mnoha jednotlivých datových bloků o standardní velikosti 4 KiB (viz extenty v Ext4).

Mnoho moderních souborových systémů také provádějí zápis copy-on-write, i když to zvyšuje fragmentaci.

Implementace

[editovat | editovat zdroj]

Následující souborové systémy podporují tvorbu extentu:

  • ASM – Automatic Storage Management – Databázový systém Oracle
  • BFSBeOS, Zeta a Haiku operační systémy
  • Btrfs – Linuxový souborový systém (od jádra 2.6.29-rc1)
  • Ext4 – Linuxový souborový systém (povolení extentů od jádra 2.6.23)
  • Files-11 – Digital Equipment Corporation (sub ekvivalent Hewlett-Packard) souborový systém openVMS
  • HFS a HFS+ – Hierarchové souborové systémy – Apple Macintosh
  • HPFS – High Performance File System
  • IceFS – IceFileSystem – volitelný pro systémy MorphOS
  • JFS – Journaled File System – používán na AIX, OS/2 a v některých Linuxových distribucí
  • Melio FS – sdílené úložiště pro platformu Windows od společnosti Sanbolic
  • Microsoft SQL Server – verze 2000-2008 podporuje extenty do velikosti 64 KB
  • Multi-Programming Executive – souborový systém od společnosti Hewlett-Packard
  • NTFS – poslední verze souborového systému společnosti Microsoft
  • OCFS2 – Oracle Cluster File System – sdílený souborový systém pro platformu Linux
  • Reiser4 – Linuxový souborový systém (v režimu „extent“)
  • SINTRAN III – Souborový systém použitý společností Norsk Data
  • UDF – Universal Disk Format – zavedený standard pro optická media
  • VERITAS File System – povoleno prostřednictvím alokace API a CLI
  • XFS – SGIc souborový systém „druhé generace“


Související články

[editovat | editovat zdroj]

Externí odkazy

[editovat | editovat zdroj]

V tomto článku byl použit překlad textu z článku Extent_(file_systems) na anglické Wikipedii.