Ext4 vervangt Ext3 en XFS?

Gaf ik laatst al aan dat mijn voorkeur uitgaat naar ext3, voor grote data partities die door veel gebruikers gedeeld worden geef ik de voorkeur aan XFS.

Geef mij maar ext3. Of zelfs ext2 voor systeem partities. Ext3 heeft weliswaar zijn nadelen, maar de tools om je systeem te herstellen zijn erg goed. En niet alleen dat, maar elke liveCD of recovery tool kan omgaan met ext2/3. Vandaar dat ik voor het root systeem altijd bij ext3 ben gebleven. Okee, performance is misschien niet top, de partite kan niet online verkleind worden en het kan niet mounted gecheckt kan worden. Alhoewel dit laatste probleem te ondervangen is door e2fsck op een LVM snapshot te laten werken, betekent het wel dat je offline zult moeten om gevonden fouten te kunnen repareren.

Performance wise is XFS in vele gevallen koning. Niet alleen zoals in tests uit het Dinosaurus tijdperk, maar ook in meer recente testen, en zelfs in een NAS zijn er duidelijke verschillen. Maar deze benchmarks geven vaak niet weer hoe snel of traag een systeem in de praktijk werkt, zeker als er meerdere gebruikers en processen druk bezig zijn. En juist dat handelt XFS beter af dan welke FS dan ook. Het is een beetje zoals het verschil tussen het oude IDE en SCSI systeem: ook al gebruikte je even snelle schijven, SCSI 'voelde' sneller aan (korte latency in de controller, geen bus hogging). Ik denk niet dat de analogie helemaal opgaat, maar datzelfde gevoel krijg ik ook bij XFS, het blijft gewoon lekker responsive. Ik gebruik het ook dan ook in mijn server (alleen voor /home en /srv uiteraard Cool ).

Een ander voordeel van XFS is de mogelijkheid om met xfs_freeze de toestand van het volume te bevriezen. Omdat geen enkel proces dan nog kan schrijven mag dit uiteraard niet te lang duren. Dit voordeel wordt dan ook pas een echt voordeel als je het onder een LVM volume hangt en de gemaakte snapshot ergens anders mount. Met deze combi kun je échte realtime, online backups maken. Behalve voor NTFS volumes in combinatie met de 'Volume Shadow' service van Windows XP ken ik geen enkel ander systeem die dit biedt. Ideaal om backups te maken van bestanden die continu wijzigen zoals mysql databases. Dan klinkt mysqldump ineens erg onhandig Laughing.

In ext4 zijn de gezamelijke nadelen van ext3 en XFS opgevangen, nl. recovery na stroomuitval. In ext3 bijvoorbeeld, is het journal niet beschermd door checksums waardoor het mogelijk is dat je files niet de juiste inhoud hebben na een stroomuitval. Deze kans is weliswaar uitermate klein (veel randvoorwaarden om dit op te laten treden), maar goed, je mysql database zal maar net corrupt zijn. XFS heeft een vergelijkbaar probleem, alleen is het symptoom dat je bestand alleen maar nullen bevat. Ook hier is de kans uitermate klein maar niet nul.

In Ext4 is er ondersteuning voor online defragmentatie ingebouwd. Een primeur voor Linux! Helaas zijn er altijd wel van die figuren die beweren dat Linux geen fragmentatie kent. Inderdaad niet in die mate zoals FAT dat kent, maar élk file systeem heeft last van fragmentatie. Dat moet ook wel, anders zou het niet vooruit te branden zijn als je een bestandje wilt herschrijven. Ooh, je wilt 1 MB toevoegen aan dit 100MB bestand? Wacht even, eerst even een 101MB groot aaneengesloten blok vrijmaken... Dat gaat natuurlijk niet vliegen als het zo zou werken. En het feit dat er simpelweg geen defrag programma is voor Linux wil niet zeggen dat Linux er geen last van heeft. Alhoewel, heen en weer kopieëren van je bestanden via een tijdelijk volume is defragmenteren met als requirement dat je 100% free space nodig hebt. En geeft ook meteen mooi aan hoe je soepel met requirements om kunt springen Tongue out.

Ext4 neemt de mooie performance features van XFS over zoals extents, multi block allocation en delayed transactions. Nu heeft phoronix een mooie benchmark gemaakt waarin je ook meteen kunt zien hoe slecht ReiserFS eigenlijk is (sorry, ik kon het niet laten Tongue out). De conclusie is dat statisch de benchmarks wel een betere performance laten zien, maar dat dit niet echt merkbaar is in dagelijkse werkzaamheden. Aderzijds, het toevoegen van online defrag, verbeterde betrouwbaarheid door checksummed journalling en ondersteuning voor nog grotere disks heeft geen nadelig effect gehad op de performance.

Dus ik krijg betere features, de voordelen van mijn favoriete filesystemen én een hogere betrouwbaarheid? Mijn vingers jeuken om over te gaan! Voor productie servers is het nog iets te vroeg maar ik verwacht dat dat heel binnenkort gaat veranderen.