LogFS

LogFS
Utvecklare Jörn Engel, Prasad Joshi
Övrig
Operativsystem som stöds Linux
Hemsida logfs.org/logfs/ Wayback Machine (arkiverad 2010-06-16)

LogFS är ett Linux -loggstrukturerat och skalbart flash-filsystem , avsett för användning på stora enheter med flashminne . Den är skriven av Jörn Engel och delvis sponsrad av CE Linux Forum .

LogFS introducerades i mainline Linux-kärnan i version 2.6.34, släppt den 16 maj 2010. Den togs bort från kodbasen under sammanslagningsfönstret för version 4.10, i december 2016, eftersom den var "ounderhållen i flera år och till synes oanvänd" .

Historia

Från och med november 2008 var LogFS mogen nog att klara hela sin testsvit och inkluderades därefter i Linux-kärnan, markerad som "experimentell", i version 2.6.34 som släpptes den 16 maj 2010. Den lockade dock inte till sig en stor användarbas och togs bort från kärnan i december 2016.

Drift

LogFS motiverades av svårigheterna med JFFS2 med större flashminnen. LogFS lagrar inodträdet på enheten; JFFS2 gör det inte, vilket kräver att den skannar hela enheten vid montering och cachelagrar hela trädet i RAM. För större enheter kan skanningen ta dussintals sekunder och trädet kan ta en betydande mängd huvudminne. LogFS undviker dessa straff, men det gör mer arbete medan systemet körs och använder en del av enhetens utrymme för att hålla inodträdet.

LogFS lagrar en fils inodträd på enheten, vilket innebär att vid skrivning till filen måste varje förfadernod i trädet skrivas om. Detta görs genom en "vandrande träd"-uppdatering. Den lägsta noden i trädet (dvs. data) skrivs först, varje nod skrivs uppåt i trädet tills rotinoden uppdateras. Att skriva roten senast bibehåller atomiciteten för uppdateringen.

Ett flashminnesblock är enheten för radering och är vanligtvis större än filsystemblocket. LogFS hanterar denna skillnad genom att packa flera filsystemblock i ett enda flashminnesblock. En "summa"-post i slutet av flashminnesblocket registrerar vilken data som är lagrad i den. När flashminnesblocket har flyttat eller raderat alla sina filsystemblock kan det raderas och användas för ny data.

För maximal användning av flashminnesenheten är det nödvändigt att komprimera data så att flashminnesblocken är fulla av användbar data. Detta åstadkoms genom sophämtning . LogFS sophämtningsstrategi bygger på att fildata placeras på ett visst sätt i flashminnesblock: ett flashminnesblock kommer endast att innehålla fildata från samma nivå i inodträdet. LogFS kan skräpsamla den översta nivån av träden med bara ett tomt flashminnesblock. Den kan samla upp de 2 översta nivåerna av träden med hjälp av 2 tomma flashminnesblock. Och kan sopor samla alla N nivåer av träden med hjälp av N tomma flashminnesblock. Algoritmen är exponentiell tid i värsta fall, men det värsta fallet är sällsynt och algoritmen kräver att endast reservera en handfull flashminnesblock.

Se även

  1. ^ Jörn Engel; Robert Mertens (2005-09-18). "LogFS - äntligen ett skalbart flash-filsystem" (PDF) . {{ citera journal }} : Citera journal kräver |journal= ( hjälp )
  2. ^ Jonathan Corbet (2016-12-21). "4.10 Sammanfoga fönster del 2" . Hämtad 2020-06-02 . Logfs-filsystemet, som inte underhållits på flera år och till synes oanvänt, har tagits bort från kärnan.

externa länkar