GNU/Linux >> Znalost Linux >  >> Linux

Základní návod na souborový systém Linux – ext2, ext3, ext4, JFS a XFS

Původní systém Linux používal jednoduchý souborový systém, který napodoboval funkčnost souborového systému Unix. V tomto tutoriálu probereme základní souborový systém používaný v Linuxu.

Ext souborový systém

Původní souborový systém představený s operačním systémem Linux se nazývá rozšířený souborový systém (nebo jen zkráceně ext). Poskytuje základní souborový systém podobný Unixu pro Linux, který používá virtuální adresáře pro práci s fyzickými zařízeními a ukládá data do bloků pevné délky na fyzických zařízeních.

Souborový systém ext používá systém zvaný inodes ke sledování informací o souborech uložených ve virtuálním adresáři. Systém inodů vytvoří na každém fyzickém zařízení samostatnou tabulku, která se nazývá tabulka inodů, do které se ukládají informace o souboru. Každý uložený soubor ve virtuálním adresáři má záznam v tabulce inodů. Rozšířená část názvu pochází z dodatečných dat, která sleduje u každého souboru a která se skládá z:

  • Název souboru
  • Velikost souboru
  • Vlastník souboru
  • Skupina, do které soubor patří
  • Přístupová oprávnění k souboru
  • Ukazatele na každý blok disku, který obsahuje data ze souboru

Linux odkazuje na každý inode v tabulce inodů pomocí jedinečného čísla (nazývaného číslo inodu), přiřazeného systémem souborů při vytváření datových souborů. Systém souborů používá k identifikaci souboru číslo inodu místo toho, aby musel používat celý název a cestu k souboru.

Souborový systém ext2

Původní souborový systém ext měl poměrně dost omezení, jako například omezení velikosti souborů na pouhé 2 GB. Nepříliš dlouho poté, co byl poprvé představen Linux, byl systém souborů ext upgradován, aby vytvořil druhý rozšířený systém souborů, nazvaný ext2. Jak můžete hádat, souborový systém ext2 je rozšířením základních schopností souborového systému ext, ale zachovává si stejnou strukturu. Systém souborů ext2 rozšiřuje formát tabulky inode, aby sledoval další informace o každém souboru v systému.

Tabulka ext2 inode přidává hodnoty času vytvořeného, ​​upraveného a posledního přístupu pro soubory, aby pomohla systémovým administrátorům sledovat přístup k souborům v systému. Souborový systém ext2 také zvyšuje maximální povolenou velikost souboru na 2 TB (pak v pozdějších verzích ext2, která byla zvýšena na 32 TB), aby pomohl pojmout velké soubory běžně se vyskytující na databázových serverech.

Kromě rozšíření tabulky inodů souborový systém ext2 také změnil způsob ukládání souborů v datových blocích. Běžným problémem se systémem souborů ext bylo, že když je soubor zapsán na fyzické zařízení, bloky používané k ukládání dat mají tendenci být rozptýleny po celém zařízení (tzv. fragmentace ). Fragmentace datových bloků může snížit výkon souborového systému, protože prohledání úložného zařízení pro přístup ke všem blokům pro konkrétní soubor trvá déle.

Systém souborů ext2 pomáhá snižovat fragmentaci tím, že při ukládání souboru alokuje bloky disku do skupin. Seskupením datových bloků pro soubor nemusí systém souborů hledat datové bloky na celém fyzickém zařízení, aby mohl soubor přečíst. Souborový systém ext2 byl po mnoho let výchozím souborovým systémem používaným v distribucích Linuxu, ale také měl svá omezení. Tabulka inode, i když je to příjemná funkce, která umožňuje systému souborů sledovat další informace o souborech, může způsobit problémy, které mohou být pro systém fatální. Pokaždé, když systém souborů uloží nebo aktualizuje soubor, musí upravit tabulku inodů novými informacemi. Problém je v tom, že to není vždy plynulá akce.

Pokud by se něco stalo s počítačovým systémem mezi ukládaným souborem a aktualizovanou tabulkou inodů, tyto dva by se nesynchronizovaly. Souborový systém ext2 je známý tím, že se snadno poškodí v důsledku selhání systému a výpadků napájení. I když jsou data souboru uložena na fyzickém zařízení v pořádku, pokud by záznam v tabulce inodů nebyl dokončen, systém souborů ext2 by ani nevěděl, že soubor existuje! Netrvalo dlouho a vývojáři zkoumali jinou cestu linuxových souborových systémů.

Systémy souborů deníků

Žurnálování souborových systémů poskytuje novou úroveň bezpečnosti systému Linux. Místo zápisu dat přímo do úložného zařízení a následné aktualizace tabulky inodů zapisují systémy souborů žurnálování změny souboru nejprve do dočasného souboru (nazývaného žurnál). Po úspěšném zápisu dat do paměťového zařízení a do tabulky inodů je záznam žurnálu odstraněn.

Pokud by se systém zhroutil nebo by došlo k výpadku napájení, než bude možné data zapsat na úložné zařízení, systém souborů žurnálu pouze načte soubor žurnálu a zpracuje všechna zbývající nekomprimovaná data. V Linuxu se běžně používají tři různé metody žurnálování, z nichž každá má jinou úroveň ochrany. Ty jsou uvedeny níže v tabulce.

Metody žurnálování souborového systému:

Metoda Popis
Datový režim Jak inode, tak data souboru jsou žurnálována. Nízké riziko ztráty dat, ale slabý výkon.
Objednaný režim Do žurnálu jsou zapsána pouze data inode, ale nebudou odstraněna, dokud nebudou data souboru úspěšně zapsána. Dobrý kompromis mezi výkonem a bezpečností.
Režim zpětného zápisu Do žurnálu se zapisují pouze data inode, žádná kontrola nad tím, kdy se data souboru zapisují. Vyšší riziko ztráty dat, ale stále lepší než nepoužívat žurnálování.

Omezení

Metoda žurnálování v režimu dat je zdaleka nejbezpečnější pro ochranu dat, ale je také nejpomalejší. Všechna data zapsaná na paměťové zařízení musí být zapsána dvakrát, jednou do žurnálu a poté znovu do skutečného paměťového zařízení. To může způsobit špatný výkon, zejména u systémů, které zapisují velké množství dat. V průběhu let se v Linuxu objevilo několik různých žurnálovacích souborových systémů. Následující části popisují oblíbené dostupné systémy souborů žurnálování Linuxu.

Rozšířené Linuxové žurnálovací souborové systémy

Stejná skupina, která vyvinula souborové systémy ext a ext2 v rámci projektu Linux, také vytvořila žurnálovací verze souborových systémů. Tyto žurnálovací souborové systémy jsou kompatibilní se souborovým systémem ext2 a je snadné mezi nimi převádět tam a zpět. V současnosti existují dva samostatné žurnálovací souborové systémy založené na souborovém systému ext2.

Systém souborů ext3

Souborový systém ext3 byl přidán do linuxového jádra v roce 2001 a až donedávna byl výchozím souborovým systémem používaným téměř všemi distribucemi Linuxu. Používá stejnou strukturu tabulky inodů jako souborový systém ext2, ale ke každému úložnému zařízení přidává žurnálový soubor pro žurnálování dat zapsaných na úložné zařízení.

Systém souborů ext3 standardně používá metodu žurnálování v uspořádaném režimu, pouze zapisuje informace o inodu do souboru žurnálu, ale neodstraňuje je, dokud nejsou datové bloky úspěšně zapsány na úložné zařízení. Metodu žurnálování používanou v souborovém systému ext3 můžete změnit buď na data, nebo na režim zpětného zápisu pomocí jednoduché volby příkazového řádku při vytváření systému souborů.

Zatímco souborový systém ext3 přidal základní žurnálování do souborového systému Linuxu, stále existovalo několik věcí, které mu chyběly. Například souborový systém ext3 neposkytuje žádnou obnovu po náhodném smazání souborů, není k dispozici žádná vestavěná komprese dat (ačkoli existuje záplata, kterou lze nainstalovat samostatně, která tuto funkci poskytuje) a souborový systém ext3 nepodporuje šifrování souborů. Z těchto důvodů se vývojáři v projektu Linux rozhodli pokračovat v práci na vylepšení souborového systému ext3.

Souborový systém ext4

Výsledkem rozšíření souborového systému ext3 byl (jak asi tušíte) souborový systém ext4. Souborový systém ext4 byl oficiálně podporován v jádře Linuxu v roce 2008 a nyní je výchozím souborovým systémem používaným ve většině populárních distribucí Linuxu, jako je Fedora a Ubuntu.

Kromě toho pro podporu komprese a šifrování podporuje souborový systém ext4 také funkci zvanou rozsahy. Extenty přidělují místo na úložném zařízení v blocích a do tabulky inodů ukládají pouze umístění počátečního bloku. To pomáhá šetřit místo v tabulce inodů, protože není nutné vypisovat všechny datové bloky používané k ukládání dat ze souboru.

Souborový systém ext4 také obsahuje předběžné přidělení bloků. Pokud chcete vyhradit místo na úložném zařízení pro soubor, o kterém víte, že se bude zvětšovat, se systémem souborů ext4 je možné alokovat všechny očekávané bloky pro soubor, nejen bloky, které fyzicky existují. Souborový systém ext4 vyplní vyhrazené datové bloky nulami a ví, že je nemá alokovat pro žádný jiný soubor.

Souborový systém Reiser

V roce 2001 vytvořil Hans Reiser první žurnálovací souborový systém pro Linux, nazvaný ReiserFS. Systém souborů ReiserFS podporuje pouze režim žurnálování se zpětným zápisem, kdy do souboru žurnálu zapisuje pouze data tabulky inodů. Protože do žurnálu zapisuje pouze data tabulky inodů, je souborový systém ReiserFS jedním z nejrychlejších žurnálovacích souborových systémů v Linuxu.

Dvě zajímavé funkce začleněné do systému souborů ReiserFS jsou, že můžete změnit velikost existujícího souborového systému, když je stále aktivní, a že používá techniku ​​zvanou tailpacking, která nacpe data z jednoho souboru do prázdného místa v datovém bloku z jiného souboru. Funkce aktivní změny velikosti systému souborů je skvělá, pokud musíte rozšířit již vytvořený systém souborů, aby se do něj vešlo více dat.

Žurnálovaný souborový systém (JFS)

Žurnálový souborový systém (JFS), pravděpodobně jeden z nejstarších žurnálovacích souborových systémů v okolí, byl vyvinut společností IBM v roce 1990 pro svou příchuť Unixu AIX. Do prostředí Linuxu však byl portován až ve své druhé verzi.

Poznámka – Oficiální název IBM druhé verze souborového systému JFS je JFS2, ale většina systémů Linux jej označuje pouze jako JFS.

Systém souborů JFS používá metodu uspořádaného žurnálování, ukládá do žurnálu pouze data tabulky inodů, ale neodstraňuje je, dokud nejsou skutečná data souboru zapsána na úložné zařízení. Tato metoda je kompromisem mezi rychlostí ReiserFS a integritou metody žurnálování v režimu dat.

Systém souborů JFS používá alokaci souborů na základě rozsahu, přidělující skupinu bloků pro každý soubor zapsaný na úložné zařízení. Tato metoda zajišťuje menší fragmentaci na úložném zařízení. Mimo nabídky IBM Linux není souborový systém JFS populárně používán, ale můžete se s ním na své cestě s Linuxem setkat.

Souborový systém xfs

Žurnálovací souborový systém XFS je dalším souborovým systémem původně vytvořeným pro komerční unixový systém, který si prorazil cestu do světa Linuxu. Silicon Graphics Incorporated (SGI) původně vytvořil XFS v roce 1994 pro svůj komerční unixový systém IRIX. Do prostředí Linuxu byl uvolněn pro běžné použití v roce 2002.

Souborový systém XFS používá režim zpětného zápisu žurnálování, který poskytuje vysoký výkon, ale představuje určité riziko, protože skutečná data nejsou uložena v souboru žurnálu. Souborový systém XFS také umožňuje online změnu velikosti souborového systému, podobně jako souborový systém ReiserFS, s tím rozdílem, že souborové systémy XFS lze pouze rozšiřovat a nikoli zmenšovat.


Linux
  1. Jak změnit názvy linuxových oddílů na EXT4 / EXT3 / EXT2 a Swap

  2. 25 nejčastějších otázek a odpovědí v rozhovoru pro Linux

  3. Jak vytvořit a připojit souborové systémy v Linuxu

  1. 7 způsobů, jak určit typ systému souborů v Linuxu (Ext2, Ext3 nebo Ext4)

  2. Jak připojit a odpojit souborový systém v Linuxu

  3. Jak zjistím, zda je oddíl ext2, ext3 nebo ext4?

  1. Jak migrovat souborové systémy Ext2/Ext3 na Ext4 v Linuxu

  2. Vlastnosti a rozdíly v souborovém systému Linux Ext2, Ext3 a Ext4

  3. Co jsou měkké a pevné odkazy v systému souborů Linux