Inleiding tot XFS- en Btrfs-bestandssystemen
XFS-bestandssysteem: XFS is een krachtig 64-bits journaalbestandssysteem. Het werd oorspronkelijk ontwikkeld door Silicon Graphics, Inc. in 1993 voor het IRIX-besturingssysteem en werd later in 2001 overgezet naar de Linux-kernel.
Btrfs-bestandssysteem: Btrfs of het B-Tree bestandssysteem is een modern Copy-on-Write (CoW) bestandssysteem. Het is nieuw in vergelijking met het Ext-bestandssysteem. Btrfs is oorspronkelijk ontworpen voor de Linux-besturingssystemen door de Oracle Corporation in 2007. In november 2013 werd het Btrfs-bestandssysteem stabiel verklaard voor de Linux-kernel.
Functievergelijking:
De XFS- en Btrfs-bestandssystemen zijn ontworpen om verschillende soorten problemen op te lossen. Hoewel het ontwerpdoel van het XFS-bestandssysteem anders was dan dat van het Btrfs-bestandssysteem, omdat het beide bestandssystemen zijn, kunnen we ze grondig vergelijken.
- Maximale partitiegrootte: Het XFS-bestandssysteem ondersteunt partitiegroottes tot 1 byte minder dan 8 EiB (8 EiB - 1 byte).
- Het Btrfs-bestandssysteem ondersteunt partitiegroottes tot 16 EiB.
- Maximale bestandsgrootte: Het XFS-bestandssysteem ondersteunt bestandsgroottes tot 1 byte en minder dan 8 EiB (8 EiB - 1 byte).
- Het Btrfs-bestandssysteem ondersteunt bestandsgroottes tot 16 EiB.
- Maximale bestandsnaam lengte: Het XFS-bestandssysteem ondersteunt bestandsnamen tot 255 tekens (255 bytes) lang.
- Het Btrfs-bestandssysteem ondersteunt ook bestandsnamen tot 255 tekens (255 bytes) lang.
- Toegestane tekens in directory en bestandsnamen: Het XFS-bestandssysteem staat alle tekens toe, behalve de / en NUL (\0) tekens in directory- en bestandsnamen.
- Het Btrfs-bestandssysteem staat ook alle tekens toe, behalve de / en NUL (\0)tekens in directory- en bestandsnamen.
OPMERKING: U kunt geen bestand of map maken met de naam . en … in een van de XFS- of Btrfs-bestandssystemen.
- Maximale padlengte: Het XFS-bestandssysteem heeft geen limieten voor de lengte van het pad van een bestand of map. U kunt dus diepe directorystructuren maken en uw bestanden in deze structuren bewaren.
- Hetzelfde geldt voor het Btrfs-bestandssysteem.
- Maximaal aantal bestanden: U kunt maximaal 2 . maken64 (= 18.446.744.073.709.551.616 ~= 18 quintillion) bestanden in een XFS-bestandssysteem.
- Hetzelfde geldt voor het Btrfs-bestandssysteem.
- Inode-toewijzingsmethode: Een inode is een gegevensstructuur van het bestandssysteem die wordt gebruikt om een bestand of een map te beschrijven. Dus voor een enkele map of bestand is één inode nodig, voor twee mappen of bestanden zijn er twee inodes, enzovoort.
- In het Ext4-bestandssysteem definieert u het aantal inodes dat het bestandssysteem kan ondersteunen bij het maken van het bestandssysteem. U kunt dit niet meer wijzigen nadat het bestandssysteem is aangemaakt. Als u te veel kleine bestanden maakt, heeft u mogelijk vrije schijfruimte op uw bestandssysteem, maar u kunt geen nieuwe bestanden/mappen maken tenzij u vrije inodes hebt. Dit is een belangrijke beperking voor het Ext4-bestandssysteem.
- In tegenstelling tot het Ext4-bestandssysteem is de toewijzing van inodes flexibel in het XFS-bestandssysteem. Het bestandssysteem kan dus zoveel inodes toevoegen als nodig is en je zult nooit zonder inodes komen te zitten.
- Het bovenstaande geldt ook voor het Btrfs-bestandssysteem.
- Controlesom/ECC-ondersteuning: Het Btrfs-bestandssysteem houdt de crc32c-controlesom bij van de gegevens en metagegevens die zijn opgeslagen in het bestandssysteem. Dus in het geval van datacorruptie kan het Btrfs-bestandssysteem de corruptie detecteren en de beschadigde bestanden of metadata herstellen.
- Het XFS-bestandssysteem houdt alleen de CRC32-controlesom van de metagegevens bij. Het houdt geen controlesom bij van de gegevens die zijn opgeslagen in het bestandssysteem, in tegenstelling tot het Btrfs-bestandssysteem.
- Ondersteuning voor journaal en copy-on-write: Het XFS-bestandssysteem is een journaling-bestandssysteem. Het heeft geen Copy-on-Write (CoW)-ondersteuning.
- Het Btrfs-bestandssysteem is een Copy-on-Write (CoW) bestandssysteem en heeft geen journaalondersteuning.
- Momentopname van het bestandssysteem: Het XFS-bestandssysteem kan geen snapshots van het bestandssysteem maken.
- Het Btrfs-bestandssysteem kan snapshots van het bestandssysteem maken. Met Btrfs kunt u alleen-lezen snapshots en beschrijfbare snapshots van het bestandssysteem maken.
OPMERKING: De momentopname van het bestandssysteem is een belangrijke functie. U kunt met deze functie een momentopname van uw bestandssysteem maken voordat u riskante acties onderneemt. Als dingen niet gaan zoals gepland, kun je met een snapshot teruggaan naar een eerdere staat waarin alles in het systeem werkte. Dit is een ingebouwde functie van het Btrfs-bestandssysteem. U hebt geen tools of software van derden nodig om een momentopname van een Btrfs-bestandssysteem te genereren.
- Versleuteling op bestandssysteemniveau: Het Btrfs-bestandssysteem ondersteunt geen codering op bestandssysteemniveau.
- Hetzelfde geldt voor het XFS-bestandssysteem.
- Deduplicatie op bestandssysteemniveau: Het Btrfs-bestandssysteem ondersteunt deduplicatie op bestandssysteemniveau. U hebt geen tools of software van derden nodig om deze functie te gebruiken.
- Het XFS-bestandssysteem heeft ook ondersteuning voor deduplicatie, maar de deduplicatiefunctie van het XFS-bestandssysteem is nog experimenteel.
OPMERKING: Depulicatie is een techniek om dubbele kopieën van gegevens uit het bestandssysteem te verwijderen en slechts één kopie van de gegevens (unieke gegevens) in het bestandssysteem te bewaren. Deze techniek wordt gebruikt om schijfruimte te besparen.
- Ondersteuning voor meerdere apparaten: Het Btrfs-bestandssysteem ondersteunt meerdere apparaten en bevat ingebouwde RAID-ondersteuning. Het Btrfs-bestandssysteem heeft een ingebouwde logische volumemanager (LVM) voor het toevoegen van meerdere opslagapparaten of partities aan een enkel Btrfs-bestandssysteem. Een enkel Btrfs-bestandssysteem kan meerdere schijven en partities omvatten.
- Het XFS-bestandssysteem ondersteunt niet meerdere apparaten, wat betekent dat u een enkel XFS-bestandssysteem niet over meerdere schijven of partities kunt spreiden. Om meerdere opslagapparaten en partities in een XFS-bestandssysteem te combineren, moet u logische volumebeheerders van derden gebruiken, zoals LVM 2. Om RAID in te stellen, moet u hulpprogramma's van derden gebruiken, zoals: dm-raid of mdadm.
- Het XFS-bestandssysteem is ontworpen om I/O-bewerkingen (invoer/uitvoer) parallel uit te voeren. Als u het XFS-bestandssysteem over meerdere apparaten verspreidt met LVM 2 of een andere logische volumebeheerder, zullen de prestaties van het bestandssysteem toenemen.
- Compressie op bestandssysteemniveau: Het XFS-bestandssysteem bevat geen ingebouwde ondersteuning voor compressie op bestandssysteemniveau.
- Het Btrfs-bestandssysteem bevat ingebouwde ondersteuning voor compressie op bestandssysteemniveau. Met deze functie kunt u een enkele map, een enkel bestand of het hele bestandssysteem comprimeren om schijfruimte te besparen.
- Offline Bestandssysteem Formaat Mogelijkheden: U kunt een XFS-bestandssysteem niet laten groeien (vergroten van de bestandssysteemgrootte) of verkleinen (verkleinen van de bestandssysteemgrootte) terwijl het bestandssysteem niet is aangekoppeld.
- U kunt een Btrfs-bestandssysteem laten groeien (vergroten van de bestandssysteemgrootte) of verkleinen (verkleinen van de bestandssysteemgrootte) terwijl het bestandssysteem niet is aangekoppeld.
- Mogelijkheden om online bestandssysteem te wijzigen: U kunt een XFS-bestandssysteem laten groeien (de grootte van het bestandssysteem vergroten) terwijl het bestandssysteem is aangekoppeld, maar u kunt een XFS-bestandssysteem niet verkleinen (verkleinen) terwijl het bestandssysteem is aangekoppeld.
- U kunt een Btrfs-bestandssysteem laten groeien (vergroten van de bestandssysteemgrootte) of verkleinen (verkleinen van de bestandssysteemgrootte) terwijl het bestandssysteem is aangekoppeld.
- Schaarse bestanden: De functie voor schaarse bestanden bespaart schijfruimte wanneer kleine bestanden (kleiner dan de blokgrootte) op het bestandssysteem worden opgeslagen. De XFS- en de Btrfs-bestandssystemen ondersteunen beide schaarse bestanden.
- Subtoewijzing blokkeren: Het Btrfs-bestandssysteem ondersteunt subtoewijzing van blokken.
- Het XFS-bestandssysteem ondersteunt geen bloksubtoewijzing.
OPMERKING: Wanneer een bestandssysteem grote bestanden opslaat in een bestandssysteem, wordt het grote bestand opgedeeld in blokken en worden de blokken opgeslagen in het bestandssysteem. Het laatste blok van het bestand, het staartblok genoemd, beslaat niet het hele blok. Als er veel kleine bestanden worden opgeslagen, nemen ze niet het hele blok in beslag en gaat er veel schijfruimte verloren. Met bloksubtoewijzing kunt u delen van een ander bestandsblok opslaan in het staartblok (het laatste blok van een ander bestand dat niet het hele blok in beslag nam) om schijfruimte te besparen.
- staart verpakking: Het Btrfs-bestandssysteem ondersteunt staartverpakking.
- Het XFS-bestandssysteem ondersteunt geen staartverpakking.
OPMERKING: Tailpacking is een onderdeel van bloksubtoewijzing. Zoals eerder besproken, nemen kleine bestanden geen volledig bestandsblok in beslag. Om kleine bestanden efficiënt op te slaan (bijv.g., programmabroncodes) in het bestandssysteem, wordt het staartblok van een klein bestand gebruikt om andere kleine bestanden op te slaan. Tailpacking verbetert de prestaties van het bestandssysteem en bespaart schijfruimte in bestandssystemen waarin veel kleine bestanden (bijv.g., programmabroncodes) worden opgeslagen.
- Op omvang gebaseerd bestandssysteem: Zowel de XFS- als de Btrfs-bestandssystemen zijn op uitbreidingen gebaseerde bestandssystemen.
OPMERKING: Een omvang is een aaneengesloten gebied van het opslagapparaat dat is gereserveerd voor een bestand in een bestandssysteem. Op omvang gebaseerde bestandssystemen slaan grote bestanden op in een aaneengesloten opslagruimte. Dit verbetert de prestaties van het bestandssysteem en verhoogt de opslagefficiëntie.
- Variabele bestandsblokgrootte: De blokgrootte wordt ingesteld voordat het bestandssysteem wordt gemaakt. Als het bestandssysteem eenmaal is gemaakt, kunt u de blokgrootte niet meer wijzigen.
- Het XFS-bestandssysteem ondersteunt vaste blokgrootte.
- Het Btrfs-bestandssysteem ondersteunt variabele blokgrootte. Het bestandssysteem kan de best mogelijke blokgrootte bepalen om een bestand op het bestandssysteem op te slaan op basis van de grootte van het bestand. Deze functie kan veel schijfruimte besparen.
- Toewijzen-op-flush: Zowel de XFS- als Btrfs-bestandssystemen ondersteunen allocate-on-flush.
OPMERKING: Het bestandssysteem wijst wat bufferruimte toe in het systeemgeheugen. Als er schijfschrijfverzoeken zijn, schrijft het bestandssysteem de datablokken niet rechtstreeks op het opslagapparaat. In plaats daarvan slaat het bestandssysteem de datablokken op in het buffergeheugen. Als het buffergeheugen vol is, schrijft het bestandssysteem alle openstaande datablokken tegelijk naar het opslagapparaat. Dit vermindert het CPU-gebruik, versnelt het schrijven naar schijven en vermindert schijffragmentatie.
- TRIM-ondersteuning: Zowel het XFS- als het Btrfs-bestandssysteem ondersteunen TRIM, wat een zeer belangrijke functie is voor SSD-opslagapparaten.
OPMERKING: Wanneer u een bestand van een SSD verwijdert, meldt het TRIM-commando het SSD-opslagapparaat welke pagina's (bestandsblokken) niet langer nodig zijn. De SSD wist de onnodige pagina's (bestandsblokken) uit de flash-opslag en bereidt de pagina's (bestandsblokken) voor op het opslaan van nieuwe gegevens. Zonder TRIM-ondersteuning zou de schrijfsnelheid van de SSD steeds langzamer worden naarmate de SSD zich vult met nieuwe gegevens.
Voordelen van XFS boven Btrfs
XFS is een stabiel 64-bits journaalbestandssysteem voor opslagapparaten met hoge capaciteit.
U kunt het XFS-bestandssysteem om de volgende redenen gebruiken:
- Parallelle I/O (Input/Output) Ondersteuning
Het XFS-bestandssysteem ondersteunt parallelle I/O en kan vanwege het ontwerp meerdere gegevensstromen voor bestanden leveren.
- Ondersteuning voor grote partities
Het XFS-bestandssysteem ondersteunt partitiegroottes tot 8 EiB (tot 8 EiB - 1 byte).
- Ondersteuning voor grote bestanden
Het XFS-bestandssysteem ondersteunt bestandsgroottes tot 8 EiB (tot 8 EiB - 1 byte).
- Ondersteuning voor journaals
Journaling zorgt voor consistentie van gegevens in het bestandssysteem in het geval van een stroomstoring of systeemcrash. In het geval van een stroomstoring of een systeemcrash, worden de gegevens die in het journaal zijn opgeslagen, hersteld en toegepast op het bestandssysteem.
- Directe I/O
Dit is een belangrijk kenmerk van het XFS-bestandssysteem. Het is essentieel voor toepassingen die een hoge lees-/schrijfsnelheid naar opslagapparaten vereisen. Directe I/O geeft opslagapparaten directe toegang tot de gegevensbuffer met behulp van DMA (Direct Memory Access), zodat de volledige I/O-bandbreedte van het opslagapparaat kan worden gebruikt.
- Gegarandeerde I/O
Het XFS-bestandssysteem kan de bandbreedte van het opslagapparaat reserveren voor bepaalde toepassingen. Deze functie is ideaal voor realtime toepassingen (bijv.g., video streamen).
Nadelen van het XFS-bestandssysteem
Er zijn enkele nadelen aan het XFS-bestandssysteem:.
Nadelen van het XFS-bestandssysteem zijn onder meer:
- Geen ingebouwde LVM-ondersteuning
Vergeleken met het Btrfs-bestandssysteem heeft het XFS-bestandssysteem geen ingebouwde logische volumemanager. Dus, je zult moeten gebruiken LVM 2 voor logisch volumebeheer.
- Geen ingebouwde RAID-ondersteuning
In vergelijking met het Btrfs-bestandssysteem heeft het XFS-bestandssysteem geen ingebouwde RAID-ondersteuning. Dus, je zult moeten gebruiken dm-raid of mdadm RAID configureren.
- Geen ondersteuning voor momentopnamen
Het XFS-bestandssysteem heeft geen snapshotfunctie van het bestandssysteem, in tegenstelling tot het Btrfs-bestandssysteem.
- Journaling kan niet worden uitgeschakeld
Net als bij sommige andere journaling-bestandssystemen, kunt u de journaling-functie van het XFS-bestandssysteem niet uitschakelen. Journaling is niet goed voor USB-flashstations. Als u het XFS-bestandssysteem op een USB-flashstation gebruikt, wordt de levensduur van de USB-flashdisk verkort vanwege de overbelasting van het journaal.
Voordelen van Btrfs boven XFS
Het Btrfs-bestandssysteem is een modern Copy-on-Write (CoW)-bestandssysteem dat is ontworpen voor opslagservers met hoge capaciteit en hoge prestaties. XFS is ook een krachtig 64-bits journaalbestandssysteem dat ook in staat is tot parallelle I/O-bewerkingen. Het XFS-bestandssysteem bevat veel belangrijke functies, waaronder Direct I/O, I/O met gegarandeerde snelheid en meer. Vergeleken met het XFS-bestandssysteem heeft het Btrfs-bestandssysteem echter veel voordelen.
De voordelen van het Btrfs-bestandssysteem ten opzichte van het XFS-bestandssysteem zijn onder meer:
i) Ingebouwde snapshots op bestandssysteemniveau.
ii) Ondersteuning voor meerdere apparaten.
iii) Ingebouwde RAID-ondersteuning.
iv) Flexibele inode-toewijzing.
v) Optimalisaties voor het opslaan van kleinere bestanden (dunne bestanden, subtoewijzing van blokken, staartpakking, variabele blokgrootte).
vi) Ingebouwde ondersteuning voor compressie op bestandssysteemniveau.
Dit zijn de bestandssysteemfuncties die ervoor kunnen zorgen dat u het Btrfs-bestandssysteem verkiest boven het XFS-bestandssysteem.
Conclusie
Dit artikel vergeleek de Btrfs- en XFS-bestandssystemen, inclusief een vergelijking van de belangrijkste kenmerken van elk bestandssysteem. Dit artikel zou je moeten helpen om te kiezen tussen de Btrfs- en XFS-bestandssystemen. Kies welk systeem het beste voor u werkt, op basis van uw unieke behoeften en voorkeuren.
Referenties:
- XFS - Wikipedia - https://en.wikipedia.org/wiki/XFS
- Vergelijking van bestandssystemen - Wikipedia - https://en.wikipedia.org/wiki/Comparison_of_file_systems
- XFS - ArchWiki - https://wiki.archlinux.org/index.php/XFS