Levrinc, R. (2008). LLFS : a copy-on-write file system for Linux [Diploma Thesis, Technische Universität Wien]. reposiTUm. https://resolver.obvsg.at/urn:nbn:at:at-ubtuw:1-28018
Diese Diplomarbeit beschreibt das Design und Implementation von LLFS, einem Linux-Dateisystem. LLFS kombiniert Clustering mit Copy-On-Write.<br />Copy-On-Write überschreibt belegte Blöcke nicht zwischen Commits; Durch das Clustering bleibt die LLFS-Geschwindigkeit vergleichbar mit Clustered-Dateisystemen wie Ext2. Copy-On-Write ermöglicht neue Features wie zum Beispiel Snapshots, beschreibbare Snapshots (Clones) und schnelle Crash-Recovery zu einem konsistenten Dateisystem-Zustand. Gleichzeitig hilft das Clustering, die Fragmentierung niedrig und Geschwindigkeit hoch zu halten.<br />Clustering wird mit Ext2-ähnlichen Gruppen und Free-Blocks-Bitmaps für das Belegen und Freigeben von Blöcken erreicht.<br />Journaling Dateisysteme wie Ext3 brauchen ein Journal und schreiben Blöcke doppelt. Mit Hilfe von Copy-on-Write vermeidet LLFS diese Kosten. Aufgrund der Free-Blocks-Bitmaps braucht LLFS keinen Cleaner wie Log-Strukturierte Dateisysteme. Trotzdem bietet LLFS die kombinierte Funktionalität von Journaling und Log-Strukturierten Dateisystemen.<br />Ich habe LLFS aufbauend auf Ext2 implementiert, und ich habe die Performance getestet. Die Benchmarks zeigen, dass LLFS ähnliche und in einigen Fällen bessere Resultate als Linux-Journaling-Dateisysteme erreicht.<br />
de
This thesis discusses the design and implementation of LLFS, a Linux file system. LLFS combines clustering with copy-on-write. With copy-on-write no allocated blocks are overwritten between commits, and thanks to the clustering the speed of LLFS remains comparable with clustered file systems such as Ext2.<br />Copy-on-write opens new possibilities for features like snapshots, writable snapshots (clones) and fast crash recovery to the consistent state of the file system, while the clustering helps to keep fragmentation low and speed high.<br />Clustered reads and writes are achieved with Ext2-like groups and free-blocks bitmaps for allocating and freeing of blocks. Journaling file systems like Ext3 need to keep a journal and write blocks twice; By using copy-on-write, LLFS avoids these overheads. By using free-blocks bitmaps, it does not need a cleaner like log-structured file systems. Yet LLFS offers the combined functionality of journaling and log-structured file systems.<br />I have implemented LLFS starting from the Ext2 file system and tested the performance. The benchmarks have shown that LLFS achieves similar performance and in some cases better than Linux journaling file systems.