Ext4

Från Wiki.linux.se
Hoppa till navigering Hoppa till sök

Ext4 (Fourth Extended File System)

Inledning

ext4 (Fourth Extended File System) är en förbättring och vidareutveckling av dess föregångare, ext3, och är ett av de mest använda filsystemen inom Linux-ekosystemet. Ext4 är känt för sin höga prestanda, tillförlitlighet och avancerade funktioner, vilket gör det till ett populärt val för datalagring på Linux-baserade system. Denna artikel kommer att utforska ext4-filsystemet i tekniskt detalj, inklusive dess historia, arkitektur och funktioner.

Historia

Ext4 utvecklades som en följd av ext2 och ext3-filsystemen. Ext2 var den första versionen och introducerade många av de grundläggande koncepten i filsystemet. Ext3 lade till journaling, vilket förbättrade datans integritet och pålitlighet. Ext4, som första gången släpptes 2006, utökade kapaciteten, ökade prestandan och förbättrade datalagringen i jämförelse med sina föregångare.

Arkitektur

Ext4 har flera viktiga tekniska komponenter:

Blockstorlek

Ext4 stöder olika blockstorlekar, inklusive 1 KB, 2 KB, 4 KB och 8 KB. Den flexibla blockstorleken möjliggör optimering för olika användningsfall, med mindre blockstorlekar som är bra för små filer och större blockstorlekar som är effektiva för stora filer.

Extent Tree

Ext4 använder ett extent tree-förvaltningssystem för att hantera stora filer mer effektivt. Istället för att spåra varje enskild datablock för en fil, används extents för att representera en sekvens av sammanhängande datablock. Detta minskar metadatabelasten och förbättrar prestanda.

Journaling

Ext4 har en förbättrad journaling-mekanism som ökar dataintegriteten genom att hålla koll på filsystemets ändringar. Det finns flera journaling-lägen tillgängliga, inklusive ordered, writeback och data=journal, som var och en erbjuder olika nivåer av integritet och prestanda.

Online Resizing

Ext4 stöder online filsystemförändringar, vilket innebär att du kan ändra storleken på ett aktivt ext4-filsystem utan att behöva demontera det. Detta är användbart för att hantera växande lagringsbehov utan att störa tjänsten.

Hårddisk och SSD-Optimering

Ext4 är optimerat för att fungera bra på både traditionella hårddiskar och SSD-enheter. Det använder funktioner som begärandekö och TRIM för att förbättra prestanda på SSD-enheter.

Funktioner

Ext4 erbjuder flera avancerade funktioner som gör det till ett kraftfullt filsystem:

Stora Filer och Volymer

Ext4 kan hantera mycket stora filer och volymer med stöd för filer upp till 16 TB och volymer upp till 1 EB (exabyte). Detta gör det lämpligt för användningsfall med stor datalagring.

Snabb Skrivning

Ext4 är känt för sin snabba skrivningsprestanda, särskilt när det gäller små filer. Detta är särskilt viktigt för uppgifter som loggning och systemjournaler.

Checksummar

Ext4 använder checksummar för att kontrollera dataintegriteten och upptäcka skadade filer eller block.

Stöd för Kryptering

Ext4 stöder datakryptering på filnivå, vilket ger en extra nivå av säkerhet för användardata.

Radera filer i ext4

När en fil raderas i ett ext4-filsystem, vilket är standardfilsystemet i många Linux-distributioner, genomgår processen flera steg som påverkar både filen och filsystemets metadata. Här är en steg-för-steg översikt av raderingsprocessen i ext4:

1. Raderingsbegäran

- Användaråtgärd:

Processen börjar när en användare begär radering av en fil, vanligtvis genom ett kommando i terminalen som `rm` eller genom en åtgärd i en grafisk filhanterare.

2. Uppdatering av Katalogstrukturen

- Ta bort Katalogposten: Ext4 uppdaterar den katalog (eller mapp) där filen finns. Katalogposten som pekar på filen tas bort. Detta gör att filen inte längre är åtkomlig via filsystemets katalogstruktur.

3. Uppdatering av Inode

- Varje fil i ext4-filsystemet har en inode, som är en datastruktur som lagrar metadata om filen (till exempel filstorlek, ägare, rättigheter, och pekare till de datablock där filens innehåll lagras).

- När en fil raderas, minskar filsystemet referensräknaren för den associerade inoden. Om referensräknaren når noll (vilket innebär att inga länkar kvarstår till filen), markeras inoden och de tillhörande datablocken som lediga.

4. Frigörande av Datablock

- Frigör Block:

Ext4 markerar de datablock som användes för att lagra filens innehåll som lediga. Detta gör att dessa block kan återanvändas av filsystemet för att lagra data från andra filer.

5. Filen Är Inte Omedelbart Överskriven

- Precis som i NTFS, när en fil raderas i ext4, är dess faktiska innehåll inte omedelbart fysiskt raderat eller överskrivet på disken. Innehållet finns kvar på de datablock som tidigare allokerades för filen tills dessa block återanvänds för att lagra nya data.

6. Återställning av Raderade Filer

- På grund av att de faktiska datablocken inte omedelbart överskrivs, kan raderade filer ibland återställas med hjälp av specialiserad återställningsprogramvara, särskilt om återställningen sker snart efter raderingen.

Sammanfattning

Raderingsprocessen i ext4 involverar uppdatering av katalogstrukturen och inoder för att reflektera borttagningen av filen och frigöra de datablock som användes för att lagra filens innehåll. Även om referenserna till filen tas bort och dess innehåll inte längre är direkt åtkomligt, finns filens data faktiskt kvar på disken tills dess att det överskrivs av nya data. Detta gör det möjligt för återställningsverktyg att potentiellt återställa raderade filer, särskilt om inga nya data har skrivits till de berörda blocken.

Kommando för ext4 filesystem

mkfs.ext4:

Detta kommando används för att skapa ett nytt ext4-filsystem på en partition eller enhet. Det används vid formatering av enheter för att använda ext4.

Till exempel:

sudo mkfs.ext4 /dev/sdX

e2fsck:

Kommandot e2fsck används för att kontrollera och reparera ett ext4-filsystem. Du kan köra det för att kontrollera filsystemets integritet och korrigera eventuella fel. Till exempel:

sudo e2fsck -f /dev/sdX

tune2fs:

Med tune2fs-kommandot kan du ändra konfigurationen och parametrarna för ett befintligt ext4-filsystem. Du kan använda det för att ändra etiketten på filsystemet, justera journalinställningar och mer. Till exempel:

sudo tune2fs -L "NyttNamnPåFilsystemet" /dev/sdX

dumpe2fs:

Med dumpe2fs kan du visa detaljerad information om ett ext4-filsystem, inklusive dess superblock, blockstorlek, journalinställningar och mycket mer. Till exempel:

dumpe2fs /dev/sdX