ext3 - ext3

ext3
Vývojáři Stephen Tweedie
Celé jméno Třetí rozšířený souborový systém
Představeno Listopad 2001 s Linuxem 2.4.15
Identifikátor oddílu 0x83 ( MBR )
EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 ( GPT )
Struktury
Obsah adresáře Tabulka, hašovaný B-strom s povoleným dir_index
Přidělení souboru bitmapa (volné místo), tabulka (metadata)
Špatné bloky Stůl
Limity
Max. velikost svazku 4 TiB - 32 TiB
Max. velikost souboru 16 GiB - 2 TiB
Max. počet souborů Proměnná, přidělená v době vytvoření
Max. délka názvu souboru 255 bajtů
Povolené znaky v názvech souborů Všechny bajty kromě NUL ('\ 0') a '/'
Funkce
Zaznamenaná data modifikace (mtime), modifikace atributu (ctime), přístup (atime)
Časové období 14. prosince 1901-18. Ledna 2038
Rozlišení data 1 s
Atributy allow-undelete, append-only, h-tree (directory), immutable, journal, no-atime, no-dump, secure-delete, synchronous-write, top (directory)
Oprávnění systému souborů Unixová oprávnění, ACL a libovolné atributy zabezpečení (Linux 2.6 a novější)
Transparentní komprese Ne
Transparentní šifrování Ne (k dispozici na úrovni blokovacího zařízení)
Deduplikace dat Ne
jiný
Podporované operační systémy Linux , BSD , ReactOS , Windows (prostřednictvím IFS )

ext3 nebo třetí rozšířený souborový systém je žurnálový souborový systém, který běžně používá jádro Linuxu . Dříve to byl výchozí souborový systém pro mnoho populárních distribucí Linuxu . Stephen Tweedie nejprve odhalil, že pracuje na prodloužení ext2 v Journaling the Linux ext2fs Filesystem v dokumentu z roku 1998 a později v poštovním seznamu jádra v únoru 1999. Od 2.4.15 byl souborový systém sloučen s hlavním jádrem Linuxu v listopadu 2001. Jeho hlavní výhodou oproti ext2 je ukládání do deníku , což zvyšuje spolehlivost a eliminuje potřebu kontroly systému souborů po nečistém vypnutí. Jeho nástupcem je ext4 .

Výhody

Výkon (rychlost) ext3 je méně atraktivní než konkurenční systémy souborů Linux, jako jsou ext4, JFS , ReiserFS a XFS , ale ext3 má významnou výhodu v tom, že umožňuje upgrady na místě z ext2 bez nutnosti zálohovat a obnovovat data . Srovnávací testy naznačují, že ext3 také využívá méně CPU než ReiserFS a XFS. Díky relativní jednoduchosti a širší testovací základně je také považován za bezpečnější než ostatní systémy souborů Linux.

ext3 přidává do ext2 následující funkce:

  • journal
  • Online růst souborového systému
  • HTree indexování pro větší adresáře

Bez těchto funkcí je jakýkoli souborový systém ext3 také platným souborovým systémem ext2. Tato situace umožnila použití dobře testovaných a vyspělých nástrojů pro údržbu souborových systémů pro údržbu a opravy souborových systémů ext2 také s ext3 bez větších změn. Systémy souborů ext2 a ext3 sdílejí stejnou standardní sadu nástrojů e2fsprogs , která obsahuje nástroj fsck . Blízký vztah také umožňuje přímou konverzi mezi dvěma systémy souborů (dopředu na ext3 a zpět na ext2).

ext3 postrádá „moderní“ funkce souborového systému, jako je dynamické přidělování inodů a rozsahy . Tato situace může být někdy nevýhodou, ale pro obnovitelnost je to významná výhoda. Metadata systému souborů jsou v pevných, dobře známých umístěních a datové struktury mají určitou nadbytečnost. Při výrazném poškození dat mohou být ext2 nebo ext3 obnovitelné, zatímco stromový systém souborů nikoli.

Omezení velikosti

Maximální počet bloků pro ext3 je 2 32 . Velikost bloku se může lišit, což ovlivňuje maximální počet souborů a maximální velikost systému souborů:

Velikost bloku Maximální
velikost souboru
Maximální
velikost systému souborů
1 KiB 16 GiB 2 TiB
2 KiB 256 GiB 8 TiB
4 KiB 2 TiB 16 TiB
8 KiB 2 TiB 32 TiB
  1. ^ V Linux, 8 KB velikost bloku je k dispozici pouze na architekturách, které umožňují 8 KiB stránek , jako je alfa .

Úrovně deníku

V implementaci Linuxu ext3 jsou k dispozici tři úrovně deníku :

Deník (nejnižší riziko)
Metadata i obsah souboru se zapisují do deníku, než se potvrdí do hlavního systému souborů. Protože je deník na disku relativně souvislý, může to zlepšit výkon, pokud má deník dostatek místa. V ostatních případech se výkon zhoršuje, protože data musí být zapsána dvakrát - jednou do deníku a jednou do hlavní části souborového systému.
Objednané (střední riziko)
Pouze metadata jsou žurnálována; obsah souboru není, ale je zaručeno, že obsah souboru bude zapsán na disk, než budou přidružená metadata označena jako potvrzená v deníku. Toto je výchozí nastavení u mnoha distribucí Linuxu. Dojde -li k výpadku napájení nebo k panice jádra během zápisu nebo připojování souboru, deník oznámí, že nový soubor nebo připojená data nebyla „potvrzena“, takže budou vymazány procesem čištění. (Připojené soubory a nové soubory mají tedy stejnou úroveň ochrany integrity jako úroveň „žurnálovaných“.) Přepisované soubory však mohou být poškozeny, protože původní verze souboru není uložena. Je tedy možné skončit se souborem v přechodném stavu mezi novým a starým, bez dostatečných informací k obnovení jednoho nebo druhého (nová data se nikdy nedostala na disk úplně a stará data nejsou nikde uložena). Ještě horší je, že přechodný stav může prokládat stará a nová data, protože pořadí zápisu je ponecháno na hardwaru disku.
Zpětný zápis (nejvyšší riziko)
Pouze metadata jsou žurnálována; obsah souboru není. Obsah může být zapsán před nebo po aktualizaci deníku. V důsledku toho může dojít k poškození souborů upravených těsně před havárií. Například připojený soubor může být v deníku označen jako větší, než ve skutečnosti je, což na konci způsobí odpadky. Starší verze souborů se také mohou neočekávaně objevit po obnovení deníku. Nedostatek synchronizace mezi daty a deníkem je v mnoha případech rychlejší. JFS používá tuto úroveň žurnálování, ale zajišťuje, že při restartu dojde k vynulování veškerých „odpadků“ způsobených nepsanými daty. XFS také používá tuto formu deníku.

Ve všech třech režimech je vnitřní struktura systému souborů zajištěna konzistentní i po havárii. V každém případě bude ovlivněn pouze datový obsah souborů nebo adresářů, které byly upravovány při havárii systému; zbytek bude po uzdravení neporušený.

Nevýhody

Funkčnost

Protože cílem ext3 je zpětná kompatibilita s předchozím ext2, mnoho struktur na disku je podobných strukturám ext2. Ext3 proto postrádá nejnovější funkce, jako jsou rozsahy , dynamická alokace inodů a bloková sublokace . Adresář může mít nejvýše 31998 podadresářů , protože inode může mít nejvýše 32 000 odkazů (každý přímý podadresář zvyšuje počet čítačů odkazů inodů nadřazené složky v odkazu „..“).

ext3, jako většina současných souborových systémů Linux, by neměl být fsck -ed, když je souborový systém připojen k zápisu. Pokus o kontrolu souborového systému, který je již připojen v režimu čtení/zápis, (velmi pravděpodobně) detekuje nesrovnalosti v metadatech souborového systému. Pokud se metadata souborového systému mění a fsck aplikuje změny ve snaze přenést „nekonzistentní“ metadata do „konzistentního“ stavu, pokus o „opravu“ nesrovnalostí poškodí souborový systém.

Defragmentace

Na úrovni souborového systému nefunguje žádný online nástroj pro defragmentaci ext3 . K dispozici je v režimu offline ext2 defragmentace, e2defrag. Nicméně, e2defragmůže vést ke zničení dat v závislosti na hraných bity zapnuty v souborovém systému; neví, jak zacházet s mnoha novějšími funkcemi ext3.

Existují nástroje defragmentace v uživatelském prostoru, například Shake a defrag. Shake funguje tak, že přidělí místo pro celý soubor jako jednu operaci, což obecně způsobí, že alokátor najde souvislé místo na disku. Pokud existují soubory, které jsou použity současně, Shake se je pokusí zapsat vedle sebe. Defragmentace funguje tak, že každý soubor zkopírujete přes sebe. Tato strategie však funguje, pouze pokud má souborový systém dostatek volného místa. Skutečný nástroj pro defragmentaci pro ext3 neexistuje.

Jak však uvádí Příručka správce systému Linux, „Moderní souborové systémy Linux udržují fragmentaci na minimu tím, že udržují všechny bloky v souboru blízko sebe, i když je nelze ukládat do po sobě jdoucích sektorů. Některé souborové systémy, jako ext3, efektivně alokujte volný blok, který je nejblíže ostatním blokům v souboru. Proto není nutné se starat o fragmentaci v systému Linux. "

Zatímco ext3 je odolný vůči fragmentaci souborů, ext3 může být fragmentován v průběhu času nebo pro specifické vzorce použití, jako je pomalé psaní velkých souborů. V důsledku toho má ext4 (nástupce ext3) online nástroj pro defragmentaci souborového systému e4defrag a aktuálně podporuje rozsahy (souvislé oblasti souborů).

Obnovit

ext3 nepodporuje obnovu odstraněných souborů. Ovladač ext3 aktivně maže soubory vymazáním inodů souborů z důvodu bezpečnosti při selhání.

Stále existuje několik technik a nějaký bezplatný a proprietární software pro obnovu odstraněných nebo ztracených souborů pomocí analýzy deníku systému souborů; nezaručují však žádné konkrétní obnovení souborů.

Komprese

e3compr je neoficiální oprava pro ext3, která provádí transparentní kompresi . Je to přímý port e2compr a stále potřebuje další vývoj. Dobře se kompiluje a spouští s upstream jádry, ale deníky zatím nejsou implementovány.

Nedostatek podpory snímků

Na rozdíl od řady moderních souborových systémů ext3 nemá nativní podporu pro snímky , schopnost rychle zachytit stav souborového systému v libovolných časech. Místo toho se spoléhá na méně prostorově efektivní snímky na úrovni svazku, které poskytuje Linux LVM . Systém souborů Next3 je upravenou verzí ext3, která nabízí podporu snímků, ale zachovává kompatibilitu s formátem ext3 na disku.

Žádné kontrolní součty v deníku

ext3 neprovádí kontrolní součet při zápisu do deníku. Pokud na úložném zařízení s extra mezipamětí není bariéra = 1 povolena jako možnost připojení (v /etc /fstab ) a pokud hardware provádí ukládání do mezipaměti mimo pořadí, hrozí riziko vážného poškození souborového systému během havárie. Důvodem je, že úložná zařízení s mezipaměti pro zápis hlásí systému, že data byla zcela zapsána, i když byla zapsána do (volatilní) mezipaměti.

Pokud se zápisy na pevný disk provádějí mimo pořadí (kvůli moderním pevným diskům, které ukládají do mezipaměti zápisy, aby se amortizovaly rychlosti zápisu), je pravděpodobné, že člověk napíše potvrzovací blok transakce dříve, než budou zapsány ostatní relevantní bloky. Pokud dojde k výpadku napájení nebo neopravitelnému selhání dříve, než budou zapsány ostatní bloky, bude nutné systém restartovat. Po restartu systém souborů znovu přehraje protokol jako obvykle a přehraje „vítěze“ (transakce s blokem potvrzení, včetně neplatné transakce výše, která byla shodou okolností označena platným blokem potvrzení). Výpis nedokončeného disku výše tedy bude pokračovat, ale s použitím poškozených dat deníku. Systém souborů tak při přehrávání deníku omylem přepíše normální data poškozenými daty. Pokud by byly použity kontrolní součty, kde by bloky transakce „falešný vítěz“ byly označeny vzájemným kontrolním součtem, mohl to souborový systém lépe znát a nepřehrát poškozená data na disk. Kontrolní součet deníku byl přidán do ext4.

Systémy souborů procházející rozhraním mapovače zařízení (včetně softwarových implementací RAID a LVM) nemusí podporovat bariéry a vydají varování, pokud je použita tato možnost připojení. Existují také některé disky, které správně neimplementují rozšíření proplachování mezipaměti pro zápis nutné pro překážky v práci, což způsobuje podobné varování. V těchto situacích, kde bariéry nejsou podporovány nebo praktické, je možné spolehlivé uspořádání zápisu vypnutím mezipaměti pro zápis na disk a použitím možnosti data=journalpřipojení. Vypnutí mezipaměti disku může být vyžadováno, i když jsou k dispozici bariéry.

Aplikace jako databáze očekávají, že volání fsync () vymaže čekající zápisy na disk a implementace bariéry ne vždy vymaže mezipaměť pro zápis jednotky v reakci na toto volání. Existuje také potenciální problém s implementací bariéry související se zpracováním chyb během událostí, jako je například selhání disku. Je také známo, že někdy některé virtualizační technologie správně nepředávají příkazy fsync nebo flush na podkladová zařízení (soubory, svazky, disk) z hostujícího operačního systému. Podobně některé pevné disky nebo řadiče implementují vyprázdnění mezipaměti nesprávně nebo vůbec, ale přesto inzerují, že je podporováno, a nevracejí při použití žádnou chybu. Existuje tolik způsobů, jak nesprávně zpracovávat zpracování fsync a zapisovat mezipaměť, je bezpečnější předpokládat, že proplachování mezipaměti nefunguje, pokud není výslovně testováno, bez ohledu na to, jak jsou jednotlivé součásti považovány za spolehlivé.

Vyhynutí v blízkém čase z důvodu omezení razítka

Ext3 ukládá data jako unixový čas pomocí čtyř bajtů v záhlaví souboru. 32 bitů neposkytuje dostatečný prostor pro pokračování zpracování souborů po 18. lednu 2038 - problém roku 2038 . Očekává se, že toto „Geek's Millenium“ způsobí rozsáhlé narušení, pokud nebude včas řešeno.

ext4

časová závislost fsck na počtu inodů (ext3 vs. ext4)

28. června 2006, Theodore Ts'o , hlavní vývojář ext3, oznámil vylepšenou verzi s názvem ext4. 11. října 2008 byly v úložištích zdrojových kódů Linux 2.6.28 sloučeny záplaty, které označují ext4 jako stabilní kód, což znamená konec vývojové fáze a doporučení jeho přijetí. V roce 2008 Ts'o uvedl, že ačkoli ext4 má vylepšené funkce, jako je mnohem rychlejší než ext3, nejedná se o zásadní pokrok, používá starou technologii a je mezerou; Ts'o věří, že Btrfs je lepší směr, protože „nabízí vylepšení škálovatelnosti, spolehlivosti a snadnosti správy“. Btrfs má také „řadu stejných designových nápadů, jaké měl reiser3 / 4 “.

Viz také

Reference

externí odkazy