Om du kör Linux, och särskilt om du kör en databas på Linux, har det varit svårt att rekommendera något annat filsystem än vanligt gammalt ext3 de senaste åren. Några av alternativen som såg intressanta ut vid ett tillfälle – jfs, ReiserFS – är helt övergivna vid denna tidpunkt. Den som nästan har varit gångbar ett tag nu är XFS, ursprungligen ett SGI-projekt. Och det är tillbaka till att vara i rampljuset igen den här veckan.
XFS hade lidit av ett antal problem tidigare. Eftersom den var designad för stabil hårdvara var den först inte lika robust på vanlig billig PC-hårdvara; en hel del av det städades precis upp för två år sedan. Den hade det här konstiga problemet med nollställda filer som skrämde vissa människor. Den behandlades som en andra klassens medborgare i affärsorienterade Linux-distributioner som RedHat, vilket kräver att du kompilerar din egen kärna; även på det mindre restriktiva CentOS, var du tvungen att göra några konstiga installationssteg för att lägga till XFS-stöd, och resultatet stöddes uppenbarligen inte. Och som ett av de första filsystemen som slogs på och aggressivt använde skrivbarriärer, var distributioner sårbara för enheter och kontroller som inte tömde sina cacheminne när de blev tillsagda, ett problem som du inte hittar lika ofta på modern hårdvara längre om du konfigurerar det är rätt (förutom SSD-enheter, men det är en annan historia).
Så varför bry sig? Tja, prestanda är en viktig anledning. Jag kom på mig själv att arbeta med XFS igen när jag nyligen arbetade med Greenplums gratis programvara för Single Node Edition. Greenplum sa rakt ut till mig att de inte rekommenderade något annat än XFS för högpresterande installationer, och med tanke på de underliggande likheterna med gemenskapens PostgreSQL kände jag att det var värt att undersöka varför det var lite mer.
Timingen på det visade sig vara perfekt. En av de andra begränsningarna för ext3 är att den på vanlig hårdvara endast stöder 16 TB lagring. Eftersom du kan lägga så mycket lagring i ett mellanstort diskställ nu, är det helt klart inte tillräckligt för avancerade system nuförtiden, än mindre om några år. RedHat har insett det och har på allvar återupplivat sitt stöd för XFS i sin distribution av Linux. RHEL 5.4, som släpptes för några månader sedan, lade till den igen som en valfri modul för vissa kunder. Du kunde fortfarande inte installera på XFS, och inte ens CentOS-versionen stödde 32-bitarsinstallationer, men den tog helt klart steg mot mainstream igen.
I går släpptes den första offentliga betaversionen av RHEL6, och XFS är tillbaka till att vara precis i huvuduppsättningen av funktioner. Den sitter bredvid ext4 på listan över filsystem som stöds och pekar på dess lämplighet för stora installationer i synnerhet. Så jag kan nu berätta för folk att de har XFS-stöd tillgängligt i något grov form i RHEL/CentOS 5.4, med förväntningen att det är ett förstklassigt filsystem som stöds eftersom system uppgraderas till RHEL6 och dess derivator i framtiden, och har ett visst hopp om att kommer att vara pålitlig.
Med Enterprise Linux-stödet och följaktligen den upplevda stabilitetssidan av XFS-koden äntligen under kontroll igen, hur är det med prestandan? Tja, det visar sig att Greenplum hade rätt i att XFS var värt besväret för att komma igång. Jag tog min testserver och formaterade om en av dess måttligt snabba enheter med tre olika filsystem/monteringskombinationer: ext3 ordered, ext3 journal och xfs. Efter tre bonnie++ 1.96-körningar med varje filsystem bröts resultaten jag såg ner så här:
- ext3 beställd: 39-58MB/s skriv, 44-72MB/s läs
- ext3 journal: 25-30MB/s skriv, 49-67MB/s läs
- xfs: 68-72 MB/s skriv, 72-77 MB/s läs
Medan det bästa av ext3-läsresultaten närmade sig liknande nivåer som xfs kunde, gick det i genomsnitt mycket bättre. Och skrivresultaten var minst 25 % bättre i alla fall. Jag gillade också den snävare, mer förutsägbara genomströmningen; inkonsekvent prestanda är något jag ofta kämpar med på ext3.
Jag är normalt inte en som är en tidig användare av nya Linux-utgåvor, men RHEL6-betan med fullt XFS-stöd har ersatt den grundligt överväldigande nya Ubuntu-utgåvan överst på min lista över operativsystem som ska installeras härnäst. Det är inte ofta du ser filsystemsteknik få en andra chans att imponera, men XFS verkar ha gjort en oväntad övergång tillbaka till helt relevant igen, för nu. Jag är inte säker på hur länge det kommer att vara sant, med både ext4 redan tillgänglig och btrfs som kommer närmare produktionskvalitet genom att nyligen nå ett stabilt diskformat. Det kommer att bli intressant att se hur denna återupplivade uppsättning filsystemval på Linux kommer att fungera.