Softupdates
Unter
versteht man eine Erweiterung für das Unix File System (UFS), die im Wesentlichen zwei Ziele verfolgt:
- Garantie der Konsistenz der Metadaten des Dateisystems ohne Journaling
- Einbußen in der Schreibgeschwindigkeit durch diese Maßnahme möglichst gering zu halten
Diese Funktionalität wird erreicht, indem ganze Blöcke von zu schreibenden Metadaten, beispielsweise für ein gesamtes Verzeichnis, im RAM gehalten, bearbeitet und in einer bestimmten Reihenfolge sortiert auf das Medium (bspw. die Festplatte) geschrieben werden.
Als Effekt sieht es nach einem unplanmäßigen Neustart, verursacht beispielsweise durch Stromausfall oder Systemabsturz, grundsätzlich so aus, als hätte das Schreiben der Metadaten auf die Festplatte entweder ganz oder gar nicht stattgefunden, mit anderen Worten, Meta-Updates sind atomar (unteilbar). Das Dateisystem ist immer in einem konsistenten Zustand. Der einzige mögliche Fehler, der dabei auftreten kann, sind Blöcke im Dateisystem, die noch als belegt markiert sind, obwohl sie bereits frei sein sollten. Aus diesem Grund ist ein Prüfen des Dateisystems auf seine Blockbelegung notwendig.
Unter dem Betriebssystem FreeBSD ab der Version 5.x ist es im Gegensatz zu früheren Implementierungen allerdings möglich, diese Prüfung des Dateisystems (fsck) im Hintergrund laufen zu lassen. Dadurch wird bei sehr großen Dateisystemen die Zeit zum Starten des Systems erheblich verkürzt.
In der Praxis funktionieren Softupdates am zuverlässigsten, wenn der Schreibcache der Festplatte abgeschaltet wird, was bei den meisten Festplatten empfindliche Leistungseinbußen zur Folge hat. Diese Eigenschaft teilen sich Softupdates und Journaling.
Die Erweiterung Softupdates für UFS ist gegenwärtig in zwei der freien BSD-Varianten verfügbar: