LogFS je souborový systém pro Linux , optimalizovaný pro rychlé připojení velkých flash disků . Hlavním vývojářem je Jörn Engel [1] .
Vytvoření LogFS bylo diktováno obtížností JFFS2 při práci s velkými flash disky. LogFS ukládá inode stromu na disk, zatímco JFFS2 ne, což vyžaduje skenování celého disku při připojení a ukládání celého stromu do paměti RAM . U velkých disků může skenování trvat několik desítek sekund a strom může zabírat značné množství paměti RAM. LogFS se této režii vyhýbá, ale dělá více práce, když je systém spuštěný a využívá určité místo na disku k ukládání stromových inodů.
LogFS ukládá inody souborů stromu na disk, což znamená, že při zápisu do souboru musí být každý nadřazený uzel ve stromu přepsán. Nejnižší uzly ve stromu (tj. data) jsou zapsány jako první, přičemž každý uzel je zapsán vzestupně ke kořenu stromu, dokud není kořenový inode aktualizován. Položka root je poslední, která zajišťuje atomičnost aktualizace.
Blok Flash je jednotka výmazu a je obecně větší než blok systému souborů. LogFS řeší tento nesoulad sbalením více bloků systému souborů do jednoho bloku Flash. Když jsou všechny bloky systému souborů obsažené v bloku Flash přesunuty nebo odstraněny, blok Flash lze vymazat a použít pro nová data.
V listopadu 2008 byl LogFS dostatečně vyspělý, aby prošel celou testovací sadou , než byl zahrnut do hlavní větve linuxového jádra ve verzi 2.6.34 vydané 16. května 2010 a označen jako „experimentální“.
Nejnovější zdroje LogFS jsou dostupné na GitHubu [2] .