Dagens moderna Linuxdistributioner använder fortfarande filsystemet ext 3 som introducerades redan 1999. Det är ett tag sedan och det är dags att se vilka nya system som kan förbättra för Linuxanvändarna. Innan vi går in på vilka de nya systemen är och vilka funktioner och finesser de erbjuder tar vi en titt på dagens system.

Utöver ext 3 tillhör även ext 2, xfs, jfs och Reiser FS de traditionella filsystem som fortfarande hanteras av Linuxdistributioner. Xfs och jfs är bland de äldsta journalförande filsystemen som finns för Unix-system. Båda är från tidigt 1990-tal, men hittade vägen in i Linuxkärnan under 2001.

I dag har vissa distributioner börjat avveckla support för jfs då IBM inte aktivt underhåller jfs mer än för att justera kod i samband med förändringar i Linuxkärnan.

Xfs som ursprungligen kommer från SGI är mer populärt, inte minst där hantering av stora filer krävs. Till exempel rekommenderas xfs som filsystem för den partition som innehåller videofilerna i den Linuxbaserade digitalvideoinspelaren Mythtv.

Xfs utvecklas fortfarande, något vi knappt ser för Reiser FS. Reiser FS blev väldigt populärt och användes även som förval av några distributioner som Suse. Det har ändrats då företaget Namesys som ligger bakom filsystemen verkar ha lagt ned all utveckling av Reiser FS och efterträdaren Reiser 4. I dag använder ingen känd distribution Reiser FS som förval vid installation, men filsystemet finns fortfarande kvar i Linuxkärnan.

Ext 3 förpassas till historien


År 2006 påbörjades vidareutvecklingen av ext 3 under namnet ext 4. I version 2.6.19 av Linuxkärnan dök ext 4 upp under namnet ext4dev för att understryka att filsystemet var under utveckling. Från och med version 2.6.28 har ext 4 förlorat sin utvecklingsstatus och nu kämpar de olika distributionerna att bygga in support för ext 4.

Först ut blir förmodligen Fedora 11 som kommer att ha ext 4 som förval vid installation. Ubuntuanhängarna får vänta för version 9.10 med ext 4 som förval även om ext 4 kommer att kunna hanteras från version 9.04.
Det finns brett stöd för ext 4 i Linuxvärlden och det ser ut som att ext 3 sakta men säkert kommer att fasas ut som förval av de olika distributionerna. Våra egna jämförelsetester av ext 3 och ext 4 visade en betydande prestandafördel till ext 4 vid hantering av både stora filer som små.

En hel del har hänt sedan ext 4 släpptes i och med 2.6.28 Linuxkärnan. Problem med dataförlust har upptäckts, men det handlar inte om en bugg. Ext 4, som xfs, är posix kompatibel och den hanterar både journalen och skrivningar till disk annorlunda än ext 3.

Problemet är att utvecklare har skapat en del kod som är anpassad till hur ext 3 fungerar och när den här koden körs på ett ext 4-filsystem kan dataförlust uppstå om strömmen går av datorn.

Det här har skapat en hel del bråk mellan Linuxutvecklarna där vissa tycker att utvecklare borde skapa kod som är mer posix-kompatibel. Andra utvecklare tycker att det posix-kompatibla beteendet som ext 4 bygger på är helt förkastligt.
Vi såg ett fåtal ext 4-relaterade koduppdateringar i 2.6.29, men dataförlustproblemet har inte blivit adresserat även om en uppdatering som hanterar problemet redan finns. Frågan är bara om uppdateringen dyker upp senare i 2.6.29 eller om vi får vänta till 2.6.30. Det kan även bli så att distributioner som Fedora lägger till den här uppdateringen själva i kärnan som Fedora 11 innehåller.

Zfs visar vägen


Ext 4 är en klar förbättring jämfört med befintliga ext 3. Ext 4 är dock mer en vidareutveckling av ext 3 än något som kan kallas för morgondagens filsystem.

För att se på framtidens filsystem får vi kolla närmare på filsystemet zfs från Sun Microsystems. Zfs integrerar ett filsystem gjort för stora lagringskapaciteter med volymhantering, avbildning (snapshots), komprimering och kontinuerlig integritetskontroll av lagrade data för att nämna bara några av de inbyggda finesserna.

I Solaris används två kommandon för att utföra det mesta som går att göra i zfs. Till exempel är det möjligt att skapa en spegling mellan två diskar eller raid 0 mellan dem med ett enda kommando. Funktioner som liknar raid 5 och raid 6 skapas också på samma sätt. Det går att göra på en dator eller server med flera diskar utan ett dyrt kontrollerkort.
Att dela ut lagringsutrymme via nfs eller cifs är lika enkelt och hanteras delvis av zfs om tjänsterna i fråga redan är i gång.

Sun har lyckats göra ett snabbt, säkert och innovativt filsystem som är mycket enkelt att använda efter att användaren har lärt sig några nya ord och begrepp.

Zfs kommer inte att hamna i Linuxkärnan då Sun släppte zfs under en så kallad cddl-licens som inte är kompatibel med gpl. Det finns möjlighet att köra zfs i Linux under Fuse som innebär att zfs körs utanför Linuxkärnan. Det är dock inte ett praktiskt sätt att köra ett filsystem på. Trots licensproblemen med Linux och zfs har zfs redan hittad sin väg till både OS X och Freebsd utan licensstrul.

11 gamla och nya filsystem - så skiljer de sig åt
Filsystem
Namn
Introd. år
Maxlängd på filnamn
Filstorlek, max
Volymstorlek, max
Journal
Btrfs
Btrfs
2007
255 byte
16 exabyte
16 exabyte
 ja
Ext
Extended file system
1992
255 byte
2 gigabyte
2 gigabyte
nej
Ext 2
Second extended file system 1993
255 byte
2 terabyte
32 terabyte
nej
Ext 3
Third extended file system
1999
255 byte
2 terabyte
32 terabyte
ja
Ext 4
Fourth extended file system
2006
255 byte
16 terabyte
1 exabyte
ja
Jfs IBM journaled file system
1999 (1990)
255 byte
4 petabyte
32 petabyte
ja
Reiser 4
Reiser 4
2004
3976 byte
8 terabyte
-
ja
Reiser FS
Reiser FS
2001
4032 byte
8 terabyte
16 terabyte
ja
Tux3
Tux 03
2008
255 byte
1 exabyte
1 exabyte
ja
Xfs
Xfs
1994
255 byte
9 exabyte
9 exabyte
ja
Zfs
Zfs
2004
255 byte
16 exabyte
16 exabyte
ja

Linux framtid stavas btrfs och tux3


För Linux ligger framtiden i filsystemprojekten btrfs och tux3. Tanken är att btrfs och tux3 kommer att erbjuda funktioner som kan jämföras med zfs. Att hoppet ligger hos btrfs är uppenbart när en av huvudutvecklarna för ext 4 beskriver just ext 4 som ett provisoriskt steg mot btrfs.

Tux3 är inte lika väl känt som btrfs och vilken roll det här filsystemet kommer att ha återstår att se. När tux3 blev introducerad för omvärlden skrev skaparen Daniel Phillips att ultimata målet var att skapa något som var bättre än zfs. Trots höga mål verkar det som att målet har tonats ned något tillfälligt för att försöka få befintlig kod stabil nog för integrering i Linuxkärnan.

Btrfs är mognare än tux3 och utvecklingsbilden ser helt annorlunda ut. Btrfs-projektet startades av Chris Mason (som även var aktivt involverad i utvecklingen av Reiser FS) år 2007 och sedan dess har både enskilda personer och kända företag hjälpt till med utvecklingen. Det verkar som att flera stora aktörer på marknaden har ett intresse av att se projektet bära frukt.

Från och med version 2.6.29 finns btrfs med i Linuxkärnan, som kod under utveckling. Vad btrfs kommer att innehålla utöver själva filsystemet är funktioner såsom komprimering, avbildningar (snapshots), hantering av kontrollsummor och hantering av multipla diskenheter med olika raid-nivåer. Btrfs påminner med andra ord rätt mycket om zfs.

2010 blir btrfs år


Zfs blev först annonserat av Sun Microsystems år 2004. Drygt ett år senare dök zfs upp i Open Solaris och i juni 2006 ingick zfs i Solaris 10. Zfs är fortfarande under utveckling och det finns en ständig skillnad i zfs-funktioner mellan Open Solaris och Solaris 10.

Vi anar att utvecklingen av btrfs kommer att likna den utveckling som skett i zfs även om det inte är möjligt att förutspå exakt när btrfs blir stabilt nog för produktion.

Vi kan däremot lova att 2009 och 2010 blir ett spännande år med aggressiv utveckling av btrfs.

Text: David Thorarinsson Foto: Andreas Eklund