Doordat schijven snel een flink stuk groter werden, werden de grenzen van de bestandsystemen bereikt en moesten er nieuwe oplossingen bedacht worden. Eén van die oplossing is 'journalling'. Als je vroeger over de stroomkabel struikelde, dan moest bij het opstarten het bestandssysteem gecontroleerd worden ('fsck'). Met een kleine disk is zoiets nog wel te overzien (een paar minuten), maar met een grote disk kon dit al gauw oplopen tot een paar uur. Daarom voegden de ontwikkelaars een journal toe, waarin opgeslagen wordt welke veranderingen er zijn geweest. Deze veranderingen kunnen na een crash opnieuw afgespeeld worden en zo kan het systeem een stuk sneller weer in de lucht zijn. Bestandssystemen met journalling zijn nu standaard op Unix(-achtige) systemen.

Metadata en cloud

De schaalvergroting heeft ook tot nieuwe uitdagingen geleid. Zo is het vele malen goedkoper om een grotere harde schijf in een systeem te prikken dan gebruikers data te laten opruimen. Maar, meer data betekent ook dat data makkelijker 'kwijt' raakt. Nieuwe zoektechnieken, hevig steunend op metadata en soms geïntegreerd in desktopomgevingen, moeten hier verlichting in brengen. Deze technieken werken op dit moment nog niet optimaal (de zoekhond in Windows XP en Beagle in GNOME zijn verschrikkelijk traag), en er is veel discussie over of deze data in het bestandssysteem opgeslagen moet worden, of in een aparte database die bijhoudt wat er op het systeem staat.

De 'cloud' maakt het er verder ook niet eenvoudiger op. Het kan best zijn dat data die ergens in Azië wordt geüpload een paar seconden later in Nederland nodig is en even later weer ergens in Afrika. Replicatie van een schier eindeloze stroom van data over datacenters over de hele wereld is weer een compleet andere tak van sport. Als het goed werkt, dan is iedereen in de wolken, maar gaat het fout, dan barst het gedonder los.

De andere kant op hebben bestandssystemen in mobiele apparatuur weer totaal andere eisen, zoals het zo efficiënt mogelijk lezen van en schrijven naar flash, om verslijten van de chips te voorkomen. Deze 'wear levelling' technieken zorgen voor heel andere eisen aan bestandsystemen en programmatuur.

Ontwikkelingen

De laatste jaren is het dan ook flink druk geweest in de ontwikkelingen van bestandssystemen. Belangrijke ontwikkelingen van de afgelopen tijd zijn ZFS van Sun en ext4 in de Linux kernel.

ext4 kan eerder beschouwd worden als een verbetering van ext3, dan als een revolutionair nieuw systeem. Net als ext3 is het een journalling filesystem. Vooral de limieten die ext3 heeft, zoals de hoeveelheid mappen in een map en de hoeveelheid data zijn een flink eind opgerekt. ext4 is recentelijk als standaard bestandssysteem opgenomen voor Fedora 11. Of dat verstandig is geweest valt nog te bezien: onlangs bleken gebruikers die ext4 gebruikten nogal wat van hun data kwijt te zijn. Hopelijk hadden ze een goede backup.

ZFS van Sun is daarentegen wel erg revolutionair. Het bestandssysteem combineert onder andere snapshots, logical volume management en copy-on-write en kan tot ongekende groottes schalen. Het is dan ook niet voor niets dat veel mensen laaiend enthousiast zijn over ZFS.

Mensen die zich zorgen maken over de toekomst van ZFS nu Sun is overgenomen door Oracle, hebben weinig te vrezen. ZFS is opgepikt door andere besturingssystemen en wordt niet meer alleen in OpenSolaris van Sun, maar ook in bijvoorbeeld FreeBSD ondersteund. Zo zal ondersteuning voor ZFS binnenkort standaard beschikbaar komen in Mac OS X Server 10.6 en is er een project gaande om ZFS onder Linux te ondersteunen via FUSE.

Op 7 mei organiseert NLUUG een conferentie met als onderwerp 'file systems & storage'. De keynotespreker is Ted Ts'o, maker van ext4. Andere lezingen gaan onder andere over ZFS, desktop search, DRBD en het LogFS flash filesystem. Bron: Techworld