Introduktion till XFS- och Btrfs-filsystem
XFS-filsystem: XFS är ett högpresterande 64-bitars journalsystem-filsystem. Det utvecklades ursprungligen av Silicon Graphics, Inc. 1993 för IRIX-operativsystemet och portades senare till Linux-kärnan 2001.
Btrfs-filsystem: Btrfs eller B-Tree-filsystemet är ett modernt CoW-filsystem (Copy-on-Write). Det är nytt jämfört med Ext-filsystemet. Btrfs designades ursprungligen för Linux-operativsystem av Oracle Corporation 2007. I november 2013 förklarades Btrfs-filsystemet stabilt för Linux-kärnan.
Funktionsjämförelse
XFS- och Btrfs-filsystemen utformades för att lösa olika typer av problem. Även om designmålet för XFS-filsystemet var annorlunda än för Btrfs-filsystemet, eftersom de båda är filsystem, kan vi jämföra dem på djupet.
- Maximal partitionsstorlek: XFS-filsystemet stöder partitionsstorlekar på upp till 1 byte mindre än 8 EiB (8 EiB - 1 byte).
- Btrfs-filsystemet stöder partitionsstorlekar på upp till 16 EiB.
- Maximal filstorlek: XFS-filsystemet stöder filstorlekar på upp till 1 byte och mindre än 8 EiB (8 EiB - 1 byte).
- Btrfs-filsystemet stöder filstorlekar på upp till 16 EiB.
- Maximal filnamnlängd: XFS-filsystemet stöder filnamn på upp till 255 tecken (255 byte).
- Btrfs-filsystemet stöder också filnamn på upp till 255 tecken (255 byte).
- Tillåtna tecken i katalog och filnamn: XFS-filsystemet tillåter alla tecken utom / och NULL (\ 0) tecken i katalog- och filnamn.
- Btrfs-filsystemet tillåter också alla tecken utom / och NULL (\ 0) tecken i katalog- och filnamn.
NOTERA: Du kan inte skapa en fil eller katalog med namnet . och .. i något av filsystemen XFS eller Btrfs.
- Maximal väglängd: XFS-filsystemet har inga gränser för längden på sökvägen till en fil eller katalog. Så du kan skapa djupa katalogstrukturer och hålla dina filer i dessa strukturer.
- Detsamma gäller för Btrfs-filsystemet.
- Max antal filer: Du kan skapa högst 264 (= 18,446,744,073,709,551,616 ~ = 18 quintillion) filer i ett XFS-filsystem.
- Detsamma gäller för Btrfs-filsystemet.
- Inode Allocation Method: En inod är en datasystemstruktur för filsystem som används för att beskriva en fil eller en katalog. Så, en enda katalog eller fil kräver en inod, två kataloger eller filer kräver två inoder och så vidare.
- I Ext4-filsystemet definierar du antalet inoder filsystemet kan stödja när du skapar filsystemet. Du kan inte ändra detta efter att filsystemet har skapats. Om du skapar för många små filer kan du ha ledigt diskutrymme kvar i ditt filsystem, men du kan inte skapa nya filer / kataloger om du inte har lediga inoder. Detta är en stor begränsning för Ext4-filsystemet.
- Till skillnad från Ext4-filsystemet är inodallokering flexibel i XFS-filsystemet. Så filsystemet kan lägga till så många inoder som behövs och du kommer aldrig att ta slut på inoder.
- Ovanstående gäller också för Btrfs-filsystemet.
- Kontrollsumma / ECC-stöd: Btrfs-filsystemet håller crc32c-kontrollsumma för data och metadata lagrade i filsystemet. I fall av datakorruption kan Btrfs-filsystemet upptäcka korruptionen och återställa de skadade filerna eller metadata.
- XFS-filsystemet håller bara CRC32-kontrollsumman för metadata. Det håller inte en kontrollsumma för de data som lagras i filsystemet, till skillnad från Btrfs-filsystemet.
- Journal- och Copy-on-Write-stöd: XFS-filsystemet är ett journaling-filsystem. Det har inte stöd för Copy-on-Write (CoW).
- Btrfs-filsystemet är ett CoW-filsystem (Copy-on-Write) och det har inte journalstöd.
- Snapshot för filsystem: XFS-filsystemet kan inte ta ögonblicksbilder av filsystemet.
- Btrfs-filsystemet kan ta ögonblicksbilder av filsystemet. Med Btrfs kan du ta skrivskyddade ögonblicksbilder och skrivbara ögonblicksbilder av filsystemet.
NOTERA: Bildsystemets ögonblicksbild är en viktig funktion. Du kan ta en ögonblicksbild av ditt filsystem med den här funktionen innan du försöker riskabla åtgärder. Om saker och ting inte går som planerat kan du med en ögonblicksbild gå tillbaka till ett tidigare tillstånd där allt i systemet fungerade. Detta är en inbyggd funktion i Btrfs-filsystemet. Du behöver inte verktyg eller programvara från tredje part för att skapa en ögonblicksbild av ett Btrfs-filsystem.
- Kryptering av filsystemnivå: Btrfs-filsystemet stöder inte kryptering av filsystemnivå.
- Detsamma gäller för XFS-filsystemet.
- Deduplicering av filsystemnivå: Btrfs-filsystemet stöder deduplicering på filsystemnivå. Du behöver inte verktyg eller programvara från tredje part för att använda den här funktionen.
- XFS-filsystemet har också stöd för deduplicering, men dedupliceringsfunktionen i XFS-filsystemet är fortfarande experimentell.
NOTERA: Depulication är en teknik för att eliminera duplicerade kopior av data från filsystemet och bara hålla en kopia av data (unika data) i filsystemet. Denna teknik används för att spara diskutrymme.
- Stöd för flera enheter: Btrfs-filsystemet stöder flera enheter och inkluderar inbyggt RAID-stöd. Btrfs-filsystemet har en inbyggd logisk volymhanterare (LVM) för att lägga till flera lagringsenheter eller partitioner till ett enda Btrfs-filsystem. Ett enda Btrfs-filsystem kan spänna över flera skivor och partitioner.
- XFS-filsystemet stöder inte flera enheter, vilket innebär att du inte kan spänna över ett enda XFS-filsystem över flera diskar eller partitioner. För att kombinera flera lagringsenheter och partitioner i ett XFS-filsystem måste du använda logiska volymhanterare från tredje part, t.ex LVM 2. För att ställa in RAID måste du använda verktyg från tredje part, t.ex dm-raid eller mdadm.
- XFS-filsystemet var utformat för att utföra I / O-operationer (input / output) parallellt. Om du spänner över XFS-filsystemet över flera enheter med LVM 2 eller en annan logisk volymhanterare kommer filsystemets prestanda att öka.
- Komprimering på filsystemnivå: XFS-filsystemet inkluderar inte inbyggt komprimeringsstöd för filsystemnivå.
- Btrfs-filsystemet innehåller inbyggt komprimeringsstöd för filsystemnivå. Med den här funktionen kan du komprimera en enda katalog, en enda fil eller hela filsystemet för att spara diskutrymme.
- Offline filsystem ändra storlek kapacitet: Du kan inte växa (öka filsystemstorleken) eller krympa (minska filsystemstorleken) ett XFS-filsystem medan filsystemet inte är monterat.
- Du kan växa (öka filsystemets storlek) eller krympa (minska filsystemets storlek) ett Btrfs-filsystem medan filsystemet inte är monterat.
- Online filsystems storlek kapacitet: Du kan växa (öka filsystemets storlek) ett XFS-filsystem medan filsystemet är monterat, men du kan inte krympa (minska filsystemets storlek) ett XFS-filsystem medan filsystemet är monterat.
- Du kan växa (öka filsystemets storlek) eller krympa (minska filsystemets storlek) ett Btrfs-filsystem medan filsystemet är monterat.
- Sparse filer: Den glesa filfunktionen sparar diskutrymme när små filer (mindre än blockstorleken) lagras på filsystemet. XFS- och Btrfs-filsystemen stöder båda glesa filer.
- Blockera delallokering: Btrfs-filsystemet stöder blocktilldelning.
- XFS-filsystemet stöder inte blocktilldelning.
NOTERA: När ett filsystem lagrar stora filer i ett filsystem delas den stora filen upp i block och blocken lagras i filsystemet. Det sista blocket i filen, som kallas svansblocket, upptar inte hela blocket. När många små filer lagras tar de inte upp hela blocket och mycket diskutrymme slösas bort. Blockera delallokering låter dig lagra delar av ett annat filblock i svansblocket (det sista blocket i en annan fil som inte upptog hela blocket) för att spara diskutrymme.
- Svansförpackning: Btrfs-filsystemet stöder svansförpackning.
- XFS-filsystemet stöder inte svansförpackning.
NOTERA: Svansförpackning är en del av blockdelningen. Som tidigare diskuterats upptar inte små filer ett helt filblock. För att effektivt lagra små filer (t.ex.g., programkällkoder) i filsystemet används svansblocket för en liten fil för att lagra andra små filer. Svansförpackning förbättrar filsystemets prestanda och sparar diskutrymme i filsystem där många små filer (t.ex.g., programkällkoder) lagras.
- Omfattningsbaserat filsystem: Både XFS- och Btrfs-filsystemen är omfattningsbaserade filsystem.
NOTERA: En utsträckning är ett sammanhängande område av lagringsenheten reserverad för en fil i ett filsystem. Omfattningsbaserade filsystem lagrar stora filer i ett angränsande lagringsområde. Detta förbättrar filsystemets prestanda och ökar lagringseffektiviteten.
- Variabel filstorlek: Blockstorleken ställs in innan filsystemet skapas. När filsystemet har skapats kan du inte ändra blockstorleken.
- XFS-filsystemet stöder fast blockstorlek.
- Btrfs-filsystemet stöder variabel blockstorlek. Filsystemet kan bestämma bästa möjliga blockstorlek för att lagra en fil i filsystemet baserat på filens storlek. Denna funktion kan spara mycket diskutrymme.
- Tilldela vid spolning: Både XFS- och Btrfs-filsystem stöder allokering-på-spolning.
NOTERA: Filsystemet tilldelar något buffertutrymme i systemminnet. När det finns förfrågningar om diskskrivning skriver inte filsystemet datablocken direkt på lagringsenheten. Istället lagrar filsystemet datablocken i buffertminnet. När buffertminnet är fullt skriver filsystemet alla väntande datablock till lagringsenheten på en gång. Detta minskar CPU-användningen, påskyndar diskskrivning och minskar diskfragmentering.
- TRIM-stöd: Både XFS- och Btrfs-filsystem stöder TRIM, vilket är en mycket viktig funktion för SSD-lagringsenheter.
NOTERA: När du tar bort en fil från en SSD meddelar TRIM-kommandot SSD-lagringsenheten om de sidor (filblock) som inte längre behövs. SSD raderar onödiga sidor (filblock) från flashminnet och förbereder sidorna (filblock) för lagring av nya data. Utan TRIM-stöd skulle SSD-skrivhastigheten gradvis bli långsammare när SSD fylls med nya data.
Fördelar med XFS jämfört med Btrfs
XFS är ett stabilt 64-bitars journaling-filsystem för lagringsenheter med hög kapacitet.
Du kan använda XFS-filsystemet av följande skäl:
- Parallell I / O-stöd (Input / Output)
XFS-filsystemet stöder parallell I / O och kan tillhandahålla flera dataströmmar för filer på grund av dess design.
- Stort partitionsstöd
XFS-filsystemet stöder partitionsstorlekar på upp till 8 EiB (upp till 8 EiB - 1 byte).
- Stort filstöd
XFS-filsystemet stöder filstorlekar på upp till 8 EiB (upp till 8 EiB - 1 byte).
- Journalstöd
Journaler säkerställer datakonsistens i filsystemet vid strömavbrott eller systemkrasch. I händelse av strömavbrott eller systemkrasch kommer de data som lagras i journalen att återställas och tillämpas på filsystemet.
- Direkt I / O
Detta är en viktig funktion i XFS-filsystemet. Det är viktigt för applikationer som kräver hög läs- / skrivhastighet för lagringsenheter. Direkt I / O tillåter lagringsenheter direkt åtkomst till databufferten med DMA (Direct Memory Access) så att hela I / O-bandbredden för lagringsenheten kan utnyttjas.
- Garanterad I / O
XFS-filsystemet kan reservera lagringsenhetens bandbredd för vissa applikationer. Denna funktion är idealisk för applikationer i realtid (t.ex.g., videostreaming).
Nackdelar med XFS-filsystemet
Det finns några nackdelar med XFS-filsystemet.
Nackdelarna med XFS-filsystemet inkluderar följande:
- Inget inbyggt LVM-stöd
Jämfört med Btrfs-filsystemet har XFS-filsystemet ingen inbyggd logisk volymhanterare. Så du måste använda LVM 2 för logisk volymhantering.
- Inget inbyggt RAID-stöd
Jämfört med Btrfs-filsystemet har XFS-filsystemet inte inbyggt RAID-stöd. Så du måste använda dm-raid eller mdadm för att konfigurera RAID.
- Inget snapshot-stöd
XFS-filsystemet har ingen filsystem-snapshot-funktion, till skillnad från Btrfs-filsystemet.
- Journaler kan inte inaktiveras
Som med andra journaliseringsfilsystem kan du inte inaktivera journalföringsfunktionen i XFS-filsystemet. Journalföring är inte bra för USB-flashenheter. Om du använder XFS-filsystemet på ett USB-minne, minskas USB-flashdiskens livstid på grund av journalöverbelastningen.
Fördelar med Btrfs över XFS
Btrfs-filsystemet är ett modernt Copy-on-Write (CoW) -filsystem utformat för högkapacitets- och högpresterande lagringsservrar. XFS är också ett högpresterande 64-bitars journaling-filsystem som också kan parallella I / O-operationer. XFS-filsystemet innehåller många viktiga funktioner, inklusive direkt I / O, garanterad I / O och mer. Jämfört med XFS-filsystemet har Btrfs-filsystemet dock många fördelar.
Fördelarna med Btrfs-filsystemet jämfört med XFS-filsystemet inkluderar följande:
i) Inbyggda snapshots på filsystemnivå.
ii) Stöd för flera enheter.
iii) Inbyggt RAID-stöd.
iv) Flexibel inodallokering.
v) Optimeringar för lagring av mindre filer (glesa filer, blocktilldelning, svansförpackning, variabel blockstorlek).
vi) Inbyggt komprimeringsstöd för filsystemnivå.
Det här är filsystemfunktionerna som kan få dig att välja Btrfs-filsystem framför XFS-filsystemet.
Slutsats
Den här artikeln jämförde Btrfs- och XFS-filsystemen, inklusive en jämförelse av de viktigaste funktionerna i varje filsystem. Den här artikeln ska hjälpa dig att välja mellan Btrfs- och XFS-filsystemen. Välj vilket system som fungerar bäst för dig, enligt dina unika behov och preferenser.
Referenser:
- XFS - Wikipedia - https: // sv.wikipedia.org / wiki / XFS
- Jämförelse av filsystem - Wikipedia - https: // sv.wikipedia.org / wiki / Comparison_of_file_systems
- XFS - ArchWiki - https: // wiki.archlinux.org / index.php / XFS