Linux-støtte for mer effektivt filsystem

Større kapasitet og høyere ytelse loves med filsystemet Ext4, som nå støttes av Linux-kjernen.

Første juledag kom Linux 2.6.28 kernel, den nyeste utgaven av Linux-kjernen. Til tross for den beskjedne økningen i versjonsnummer, inkluderer denne utgaven en rekke nyheter.

Dette inkluderer GEM (Graphic Execution Manager), som på skal gjøre det mulig å utnytte ressursene grafikkprosessorer tilbyr.

Den nye utgaven av kjernen har også fått støtte for Ultra Wide Band (UWB), Wireless USB og UWB-IP, samt for en rekke nettverksadaptere.

Den kanskje største nyheten er likevel støtten for filsystemet Ext4, som er en videreutvikling av dagens mye brukte Ext3. På mange måter skal Ext4 være en større oppdatering fra Ext3 enn det Ext3 var fra Ext2.

Ext3 dreide seg primært om å tilføre journalføring til Ext2, mens man med Ext4 har modifisert viktige datastrukturer i filsystemet, blant annet de som lagrer fildataene. Dette skal blant annet gi bedre ytelse, pålitelighet og funksjonalitet.

Alle eksisterende Ext3-filsystemer skal enkelt kunne konverteres om til Ext4 ved hjelp av to kommandoer som gjøres mens filsystemet ikke er montert. Prosedyren skal være trygg og uten fare for datatap, men versjonene av oppstartssystemet GRUB som følger med dagens Linux-distribusjoner, har ikke implementert støtte for Ext4. Derfor bør man foreløpig ikke endre filsystemet til /boot-partisjonen til Ext4.

Dagens Ext3-system støtter filsystemer på opptil 16 terabytes og filstørrelser på opptil 2 terabytes. Med Ext4 innføres 48 bits blokkadressering, noe som åpner for filssystemer på 1 exabyte, som er det samme som 1 million terabytes.

Det planlegges å ta i bruk 64 bits adressering på et senere tidspunkt, men noe utfordringer gjenstår. Uansett er nok behovet for filsystemer større enn 1 exabyte ikke noe som vil dukke opp med det aller første.

Ext4 støtter filer på opptil 16 terabytes. Dessuten er begrensningen på 32.000 undermapper i en enkelt mappe, rett og slett fjernet.

På ytelsessiden er det gjort flere forbedringer knyttet til kartlegging og allokering av blokker i filssystemet.

I Ext3 er det en oppføring for hver eneste blokk som brukes av en fil. Med 4 kilobytes per blokk, vil en finnes indirekte avbildning av 25.600 enkeltblokker. Når en stor fil for eksempel opprettes eller slettes, vil man måtte administrere alle blokkene enkeltvis. Dette er en omfattende jobb og gir lite rom for optimalisering.

Med en tilnærming som kalles «extents», som brukes av flere andre moderne filsystemer, vil man kunne sette av en rekke tilstøtende, fysiske blokker. Dermed kan en fil på 100 megabytes allokeres inn i én enkelt extent på denne størrelsen. Veldig store filer vil likevel bli delt opp i flere extents.

Dette skal gi både ytelsesfordeler og redusert fragmenteringen på harddisken.

Ext4 støtter også multiblokk-allokering. Mens man i Ext3 må kalle på blokktildeleren 25.600 ganger for å skrive en fil på 100 megabytes, skal man med Ext4 og mballoc kunne allokere mange blokker ved hjelp av et enkelt kall. Dette skal også bidra til økt ytelse, spesielt kombinert med extents og utsatt allokering, en teknikk som nå også støttes av Ext4.

Også systemet for journalføring fra Ext3 skal ha blitt mer effektivt i Ext4, samtidig som at påliteligheten nå bedres. Siden journalen utgjør den delen av harddisken som oftest blir lest eller endret, er det større fare for at blokkene som journalen befinner seg vil bli utsatt for en maskinvarefeil enn andre blokker på harddisken. Gjenoppretting fra en skadet journal kan føre til massive feil i filsystemet. Med Ext4 tas det i bruk sjekksummer for journaldataene for å kunne vite om journalblokkene feiler eller er skadet. Men som en ekstra bonus fører denne bruken av sjekksummer også til en ytelsesforbedring fordi commit-systemet til Ext3, som har to faser, kan reduseres til én fase.

Dette skal gi en ytelsesgevinst i forbindelse med enkelte filsystemoperasjoner på opptil 20 prosent. Foreløpig er funksjonen som gi ytelsesøkningen, asynkron logging, deaktivert som standard. Den vil først aktiveres i framtidige utgaver.

Flere detaljer om Ext4, inkludert hvordan det tas i bruk, finnes på denne siden.

En oversikt over de øvrige nyhetene i Linux 2.6.28 finnes her. For de fleste vil det være hensiktsmessig å vente med å ta i bruk den nye versjonen av kjernen til den tilbys i pakkebrønnen til Linux-distribusjonen man benytter.

    Les også:

Til toppen