Linuxcon Europe: Dateisysteme für billigen Flashspeicher
Arnd Bergmann vom Linaro-Projekt hat seine Befunde zu USB-Sticks, CF- und SD-Karten sowie SSDs preisgünstiger Machart gezeigt. Daneben stellte er Pläne für ein neues Linux-Dateisystem für diese Flashspeicher vor.
Den Rahmen für den Vortrag des deutschen Entwicklers bildete die Embedded Linux Conference Europe, die zeitgleich zur Linuxcon in Prag in benachbarten Räumen stattfindet. Bergmann gewann seine Erkenntnisse durch Reverse Engineering handelsüblicher Speicherprodukte aus dem Elektronikmarkt: Anhand des Timings verschiedener Schreib- und Lesetests konnte er zwei Typen von Flashspeichern identifizieren: Der eine ist für schnelle lineare Schreibvorgänge optimiert, wie sie etwa bei Videoaufnahmen die Regel ist. Schreibzugriffe auf beliebige logische Blöcke (Random Write) verlaufen dagegen langsam. Der andere Typ erlaubt schnelleres Random Write, muss aber mit aufwändigem Umsortieren neuen Platz schaffen, wenn die freien physikalischen Blocks ausgehen. Die einzelnen Befunde hat Bergman im "Flash Card Survey" im Linaro-Wiki festgehalten.
Der Open-Source-Entwickler Jon 'Tixy' Medhurst hat mit Flashsim ein freies Programm geschaffen, das diese zwei Schreibstrategien in Software simuliert. Mit Hilfe dieses Werkzeugs hat Arnd Bergmann den Einsatz von Linux-Dateisystemen auf derartigen Flashmedien erprobt - wer diesen Speicher etwa als Linux-Root-Partition einsetzen möchte, kann schließlich nicht FAT verwenden, das beispielsweise keine Unix-Berechtigungen kennt. Bei einer Speicherkarte mittlerer Qualität bietet demnach Ext 4 die beste Performance innerhalb der Ext-Familie. Besser schneidet Btrfs ab, braucht aber lange zum Löschen von Dateien und benötigt mehr Speicherplatz. Das funktioniert zudem nur bei Karten, die Random Writes ermöglichen, bei Karten für lineares Schreiben sind die Werte katastrophal. Zudem kommt es auf weitere Parameter wie die Größe der Erase Blocks des Speichers und die Blockgröße des eingesetzten Dateisystems an.
Daneben arbeitet Bergman zusammen mit Volker Schneider an einem minimalen FUSE-basierten Linux-Dateisystem für billigen Flashspeicher. Es soll als wichtigste Größe den Erase Block des Speichers verwenden, die kleinste Einheit, die das Speichermedium freigeben kann. Daneben soll es Copy-On-Write für Daten und Metadaten einsetzen. Vor allem aber möchten die Entwickler Daten, die sich oft ändern, anders behandeln als jene, die das selten tun: Die ständig veränderlichen globalen Metadaten beispielsweise sollen in jenem Teil des Speichers landen, der fabrikmäßig die FAT-Tabelle aufnimmt. Der Prototyp für dieses Flash-Dateisystem besitzt eine eigene Seite im Linaro-Wiki, die weitere Details nennt.





