Speicher muss nicht nur laufend größer werden, sondern auch schneller. In Zeiten von Virtualisierung und immer leistungsfähigeren Rechnern, die zeitnah auf ... (mehr)

Journale sorgen für Datenkonsistenz

Caching und Datenkonsistenz stehen seit jeher in Konflikt zueinander. Bei mit RAM arbeitenden Cache-Systemen gehen nicht auf die Festplatte geschriebene Daten verloren, wenn es zu einem Absturz des Systems kommt – bei SSD-basierten Cache-Systemen gibt es je nach verwendetem Modell mitunter ganz ähnliche Probleme.

Dateisysteme begegnen diesem Problem durch die Einführung von Journalen. Ein Journal hat aber stets auch Auswirkungen beim Schreiben: Neben den eigentlich abzulegenden Informationen müssen zusätzliche Metadaten auf die Platte wandern. Ähnlichkeiten zum im SSD-RAID-Artikel auf Seite 96 genannten Phänomen der Write Amplification sind gegeben.

Kein Weg zurück

Meta- und Nutzdaten lassen sich auch in anderen Dateisystemen splitten. Achten Sie dabei aber stets darauf, dass sich diese Operation in vielen Fällen nicht ohne Datenverlust rückgängig machen lässt.

Ext4 nimmt in der Welt der Dateisysteme insofern eine Besonderheit ein, als dass sich sein Journal flexibel auf einen separaten Festwertspeicher verlagern lässt. In Tests des australischen Beratungsunternehmens Libre Solutions brachte die Nutzung einer externen Cache-SSD mit der Einstellung "journal_checksum.journal_ async_commit" eine Performance-Steigerung um den Faktor 3: die Laufzeit des Kommandos »iozone -M -o -c -e -t3 -T -I -s 4g -r 256k -i0 -i2 -i6 -i8 -i9 -i11« senkte sich von 125 auf 38 Minuten [5].

Wie bei allen synthetischen Benchmarks gilt natürlich auch hier, dass die in der Praxis erreichbare Performance von diesen bei einem leeren System ermittelten Werten abweichen kann. Die nicht unerhebliche Steigerung der Leistungsfähigkeit verdient trotzdem Aufmerksamkeit – die unkonventionelle Herangehensweise der Australier ist für sicherheitsbewusste Anwender mit Sicherheit einen Gedanken wert. Eine Frage der Geschwindigkeit

Varnish Software führte im November 2014 einen Vergleich zwischen Bcache und dm-cache durch. Das im damaligen Kernel eingebaute dm-cache erwies sich Bcache als in allen Situationen überlegen. Flashcache und EnhanceIO wurden im Test nicht mitberücksichtigt [6].

Stec – das Unternehmen steht hinter EnhanceIO – veröffentlichte im Jahr 2013 eine Benchmarkliste auf der Kernel-Mailingliste. Diese verdient an dieser Stelle schon aus dem Grund Erwähnung, als dass sie bis heute als Quasi-Standard gilt [7]. EnhanceIO erwies sich dabei als am schnellsten, wenn das Caching im Write-Through-Modus arbeitet. Im Write-Back-Modus erwies sich dm-cache als am schnellsten.

Die Grenzen des Cache

Eine vom bereits genannten Unternehmen Libre Solutions durchgeführte Analyse [8] schätzt SSD-Caching im Allgemeinen nicht und nennt zwei Kritikpunkte: Neben dem im Abschnitt zu FlashCache genannten Problem der "unintelligenten Sektorenerfassung" benennen die Australier zudem Probleme beim Lesen von hochleistungsfähigen Plattenverbünden. Das Füllen der Cache-SSD entwickelt sich bei naiven Systemen mitunter zum Flaschenhals – Daten lassen sich nur so schnell lesen, wie sie in den Cache wandern.

Ein Beispiel aus der Praxis: Im Brookton National Laboratory zu Upton dienen RAID0-Arrays aus bis zu acht magnetischen Festplatten zur Realisierung eines Simulationsclusters. Als Versuchsaufgabe wurde die Durchführung desselben Testlaufs mit zwei verschiedenen Systemkonfigurationen auserkoren. Neben einem Cluster aus acht magnetischen Festplatten kam auch ein Verbund aus sieben HDDs und einer SSD zum Einsatz. Bcache erwies sich dabei als schneller beim Lesen, während FlashCache das Schreiben stärker beschleunigte. Interessanterweise ist das Hinzufügen einer achten HDD der Nutzung eines SSD-Cache überlegen. Die bei Simulationen auftretenden großen Blockgrößen forderten an dieser Stelle ihren Tribut.

Ähnliche Artikel

comments powered by Disqus
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2023