web analytics

Linux Bestandssystemen

Print Friendly, PDF & Email

Een bestandssysteem is een manier om bestanden (en/of folders) te bewaren, organiseren, en benaderen op een opslagmedium. Er bestaan verschillende formaten van bestandssystemen. Sommige zijn exclusief aan een bepaald besturingssysteem gebonden, anderen kunnen dan weer door de meeste besturingssystemen gelezen worden.

Linux bestandssystemen

Tijdens de installatie van een Linux distributie krijg je de mogelijkheid om zelf je partities te bepalen. Als je dat doet, moet je ook het type bestandssysteem aanduiden voor de / (root), /home en /swap partitie. Voor die laatste is er geen probleem, daar er maar één type bestandssysteem is voor de /swap is dat is het ‘wisselbestand’ formaat.
Voor de / (root) en /home partitie heb je meerdere keuzes waarvan de EXT type bestandssystemen de meest recente zijn en ook deze zijn die we standaard gaan gebruiken.

Ext, Ext2, Ext3, Ext4

Ext staat voor “Extended file system” en was het eerste bestandssysteem dat exclusief voor Linux ontwikkeld werd. Het heeft een viertal versies voortgebracht.

Ext

“Ext” is de eerste versie van het bestandssysteem en werd in 1992 geïntroduceerd. Het was een upgrade van het Minix bestandssysteem dat toen gebruikt werd, maar het miste belangrijke mogelijkheden en wordt niet meer ondersteund door de meeste distributies.

ext2 – Second Extended Filesystem

Ext2 is geen ‘journaling file system’. Het was het eerste bestandssysteem dat ‘extended file attributes’ ondersteunde en 2 terabyte schijven aankon. Het ontbreken van een journaal betekent dat het minder vaak op schijf schrijft, wat het het ideaal maakt voor flashgeheugen zoals USB-sticks.  Het gebruik van Ext2 wordt nu toch afgeraden tenzij je een goede reden hebt om het toch te gebruiken.

  • Developed by Remi Card
  • Introduced in January 1993
  • Replacement for extended filesystem
  • Maximum file size: 16GiB – 2TiB, depending upon block size (1K, 2K, 4K or 8K)
  • Maximum volume/filesystem size: 2TiB – 32TiB
  • Maximum filename length: 255 bytes (255 characters)
  • Maximum number of files: 1018
  • Filenames: All characters except NULL(‘\0’) and ‘/’ are allowed in a file name
  • Date range: December 14, 1901 – January 18, 2038

ext3 – Third Extended Filesystem

Ext3 is feitelijk een Ext2 met een Journaling File System. Ext3 werd ontworpen om compatibel te zijn met Ext2 en om toe te laten om partities, zonder formatteren, om te zetten van Ext2 tot Ext3. Alhoewel het ouder is dan Ext4 en meer uitgetest is, geniet Ext4 toch de voorkeur.

  • Developed by Stephen Tweedie
  • Introduced in November 2001 (with Linux 2.4.15)
  • Journaled filesystem.
  • An ext2 filesystem can be converted to ext3 without any need of backup.
  • Maximum file size: 16GiB – 2TiB
  • Maximum volume/filesystem size: 2TiB – 32TiB
  • Maximum filename length: 255 bytes (255 characters)
  • Maximum number of files: Variable
  • Filenames: All characters except NULL(‘\0’) and ‘/’ are allowed
  • Date range: December 14, 1901 – January 18, 2038

ext4 – Fourth extended filesystem

Ext4 werd ontworpen om zowel met Ext2 en Ext3 compatibel te zijn. Je kan een Ext4 bestandssysteem als Ext3 koppelen of een Ext2/Ext3 bestandssysteem als Ext4 koppelen.
Het heeft enkele nieuwe eigenschappen die bestandsfragmentatie beperken, het laat grotere volumes en bestanden toe en het maakt gebruikt van ‘vertraagde toekenning’ (delayed allocation) om de levensduur van flash geheugen te vergroten. Het is momenteel het standaard bestandssysteem bij de meeste distributies.

  • Developers: Mingming Cao, Andreas Dilger, Alex Zhuravlev (Tomas), Dave Kleikamp, Theodore Ts’o, Eric Sandeen, Sam Naghshineh and others (from wikipedia.org)
  • Introduced in October 2008 (stable)
  • Journaled filesystem
  • Performance enhancements over its predecessor (ext3)
  • Maximum file size: 16TB
  • Maximum volume/filesystem size: 1EIB (exabyte)
  • Maximum filename length: 255 bytes (255 characters)
  • Maximum number of files: 4 billion
  • Filenames: All characters except NULL(‘\0’) and ‘/’ are allowed
  • Date range: December 14, 1901 – April 25, 2514
  • Total filesystem check time improved (fsck time)

Swap

Swap is feitelijk geen bestandssysteem. Het wordt gebruikt als viruteel geheugen en heeft geen bestandssysteem structuur. Je kan het ook niet koppelen om de inhoud ervan te zien.
Swap wordt gebruikt als een soort kladblok door de Linux kernel om tijdelijk gegevens te bewaren die het niet meer in het RAM geheugen kwijt kan. Het wordt ook gebruikt als je de computer in slaapstand zet.

Journaling Filesystem Definition

Een journaling file system is een bestandssysteem dat bijhoudt of aangevraagde verandering doorgevoerd zijn aan het bestand door de intentie op te slaan gekend onder de naam “journaal”, wat meestal een circulair log is. In het geval van een systeemcrash of stroomuitval kan zo’n systeem gemakkelijker terug online worden, met minder kans op corrupte bestanden.

Journaling vertraagt het schrijven naar schijf een beetje, maar het is op een laptop of op een desktop het zeker waard.Het is ook geen zo’n groot ‘overhead’ als je zou denken. Het volledig bestand wordt niet in het journaal geschreven, enkel de bestandsmetadata, inode of schijflocatie worden opgeslagen in het journaal alvorens het bestand zelf op schijf wordt geschreven.

BtrFS : De toekomst

Btrfs (B-tree FS, uitgesproken als Better FS of Butter) is een copy-on-write-bestandssysteem ontworpen en geïmplementeerd door Oracle en uitgebracht onder de GNU General Public License (GPL) voor Linuxsystemen. Btrfs is gemaakt als een antwoord op ZFS en de tekortkomingen van de huidige Ext-bestandssystemen.

Limieten

  • Maximumgrootte van het bestandssysteem 16 exabyte.
  • Maximumgrootte van één enkel bestand 16 exabyte.
  • Aantal bestanden in elk individueel bestandssysteem 264.
  • Maximumgrootte van bestandsnaam 255 bytes.

Eigenschappen

Btrfs beweert een “gemakkelijk te herstellen en te onderhouden bestandssysteem te zijn, dat zich focust op fouttolerantie”. Thans zijn er nog enkele basiseigenschappen die ontbreken op Btrfs, maar Btrfs is volop in ontwikkeling.

Eigenschappen:

  • Dynamische allocatie van inodes (geen maximumaantal bestanden bij het maken van het bestandssysteem)
  • Snapshots maken die beschrijfbaar zijn en snapshots maken van snapshots
  • Subvolumes
  • Object-level mirroring en striping
  • Controlesommen op data en metagegevens (voor een goede integriteit; op het moment wordt CRC-32C gebruikt, maar er zijn alternatieven gepland)
  • Compressie (zlib; mount optie -o compress)
  • Copy-on-write-logging voor alle data en metagegevens
  • goede samenwerking met de device mapper voor het gebruik van meerdere apparaten, met ingebouwde RAID-algoritmes
  • Online bestandssysteem en snelle offline check
  • Efficiënte incrementele back-ups en bestandssysteem-mirroring
  • Mogelijkheid tot het upgraden van ext3-bestandssysteem naar Btrfs en om terug in originele staat te herstellen
  • Solid state drive (SSD)-geoptimaliseerde modus (mount optie -o ssd; geen wear levelling. Het zorgt dat gegevens niet op dezelfde plaats weggeschreven worden door middel van meerdere superblocks.)
  • Online defragmentatie
  • Seed-device-ondersteuning

Zodra het systeem stabieler is, mag je BtrFS als standaard bestandssysteem verwachten in de komende distributies.

Andere Linux bestandssystemen

ZFS

ZFS is een bestandssysteem ontworpen en geïmplementeerd door een team van Sun geleid door Jeff Bonwick. Op 31 oktober 2005 werd de broncode van het uiteindelijke product geïntegreerd in de main trunk van Solaris en op 16 november 2005 werd het uitgebracht in OpenSolaris build 27. In juni 2006 kondigde Sun aan dat ZFS geïntegreerd werd in update 6/06 van Solaris 10, één jaar na de start van de OpenSolaris-community.

De naam betekent Zettabyte File System, maar is nu bekend als een letterwoord. Dit omdat de datalimiet een zettabyte is.

ZFS is een ‘nextgen’- of hybride-bestandsysteem, met name omdat er enkele functies, zoals RAID en volume management, geïntegreerd zijn. Dit is bij de momenteel gangbare bestandssystemen niet het geval. Met ZFS kan indien data op een (RAID) set van meerdere harde schijven is opgeslagen, deze set schijven vervolgens aan een ander systeem (met ZFS) gekoppeld worden om verder te worden gebruikt. Verder tackelt ZFS een aantal problemen ten gevolge van schijffouten, zoals het probleem van ‘silent corruption’. En er kunnen gewone (minder kostbare), van elkaar verschillende schijven zonder te veel nadelen in één set worden gebruikt.

XFS

XFS is een bestandssysteem dat is ontwikkeld door Silicon Graphics, Inc (SGI) voor het IRIX-besturingssysteem. In mei 2000 heeft SGI XFS vrijgegeven onder de GNU General Public License.
XFS is opgenomen in de Linuxkernel sinds versie 2.4.25.

Windows bestandssystemen

Windows heeft zijn eigen bestandssystemen die vanuit Linux te benaderen zijn.

FAT16, FAT32, and exFAT

Microsoft’s FAT bestandssysteem bevat geen journaal, dus is het ideaal voor externe USB-schijven. Deze bestandssystemen zijn een de facto voor alle besturingssystemen — Windows, macOS, Linux. Andere systemen kunnen FAT lezen. Daardoor zijn ze ook ideaal als je cross-platform gegevens wil uitwisselen. FAT32 is ouder maar exFAT is de ideale optie, daar het bestanden over de 4GB ondersteunt en partities tot 8 TB in grootte.

NTFS

New Technology File System (NTFS) is het bestandssysteem dat gebruikt wordt door Windows NT en hoger. NTFS is gebaseerd op HPFS, het bestandssysteem dat door Microsoft werd ontwikkeld voor OS/2 als een vervanging voor het oudere FAT-bestandssysteem dat MS-DOS gebruikte. NTFS heeft enkele verbeteringen ten opzichte van FAT, zoals de ondersteuning van “metagegevens” en bestandsbeveiliging. Bovendien maakt het gebruik van bepaalde gegevensstructuren die de prestaties, betrouwbaarheid en gebruik van schijfruimte verbeteren.

  • Maximale bestandsgrootte: beperkt door de schijfruimte
  • Maximale programmagrootte (.exe): 2 gigabyte
  • Maximale schijfgrootte: 256 terabyte
  • Ontwerpjaar: 1993

909 totaal aantal vertoningen, 6 aantal vertoningen vandaag

Beoordeling

Geef een reactie

%d bloggers liken dit: