Journaling Filesystem

Journaling Filesystem

Ein Journaling-Dateisystem ist ein Dateisystem, welches alle Änderungen vor dem eigentlichen Schreiben in einem dafür reservierten Speicherbereich, dem Journal, aufzeichnet. Damit ist es zu jedem Zeitpunkt möglich, einen konsistenten Zustand der Daten zu rekonstruieren, auch wenn ein Schreibvorgang an beliebiger Stelle abgebrochen wurde. Diese Eigenschaft ist im Fall von Systemabstürzen oder Stromausfällen von Vorteil. So kann die bei herkömmlichen Dateisystemen nach solchen Vorfällen oft automatisch gestartete Überprüfung des ganzen Dateisystems mit oft erfolglosen Reparaturversuchen entfallen. Speziell bei großen Festplatten mit Partitionsgrößen über 100 GByte ergibt sich hieraus auch eine beträchtliche Zeitersparnis beim Booten, da das Überprüfen dieser durchaus mehrere Stunden dauern kann.

Man unterscheidet zwischen Metadaten-Journaling und Full-Journaling. Während Metadaten-Journaling lediglich die Konsistenz des Dateisystems garantiert, wird beim Full-Journaling auch die Konsistenz der Dateiinhalte gewährleistet. Umgangssprachlich wird oft der allgemeine Begriff des Journaling verwendet, wenn eigentlich Metadaten-Journaling gemeint ist.

Inhaltsverzeichnis

Problematik von Dateisystemaktualisierungen

Ein Dateisystem speichert Informationen über Dateien und dateiähnliche Objekte (insbesondere Verzeichnisse), indem es einem Namen Daten zuordnet. Es gibt verschiedene Möglichkeiten, dies zu bewerkstelligen, und jedes Dateisystem benutzt teilweise ähnliche, aber nie vollständig identische Strukturen. Allen Dateisystemen gemeinsam ist aber, dass Veränderungen von Dateien (dazu gehören auch das Erstellen, Verschieben, Umbenennen oder Löschen) Schreiboperationen an mehreren Stellen auf dem Massenspeicher erfordern. Führt man die erste Schreiboperation aus, befindet sich das Dateisystem nicht mehr in einem konsistenten Zustand (es enthält Änderungen, aber noch nicht alle Änderungen; die Semantik dabei ist: Es wird davon ausgegangen, dass abgeschlossene Schreiboperationen die Datei von einem konsistenten Zustand in einen anderen überführt haben), schließt man den letzten Schreibvorgang ab, ist das Dateisystem wieder konsistent. Muss der Computer allerdings zwischenzeitlich neu gestartet werden (sei es wegen eines Absturzes, eines Stromausfalls, oder eines Betätigens des Reset-Tasters), so muss das Dateisystem erst aufwendig auf solche Fehler untersucht werden, bevor man wieder sicher damit arbeiten kann. Überspringt man solch einen Test, kann es bei folgenden Schreiboperationen zu schwerwiegenden Folgefehlern kommen, die im schlimmsten Falle bis zum Totalverlust aller Daten führen können.

Funktion des Journalings

Das Journaling-Konzept wirkt dieser Problematik entgegen. Angenommen, der Benutzer will eine Datei D aus dem Verzeichnis V1 ins Verzeichnis V2 verschieben. Dann müssen zwei Schreiboperationen durchgeführt werden: Zum einen muss der alte Eintrag auf D aus dem Verzeichnis V1 entfernt werden, zum anderen muss der neue Eintrag D in das Verzeichnis V2 hinzugefügt werden. Letzteres kann es erforderlich machen, dass das Verzeichnis V2 vergrößert wird, was dann noch weitere Veränderungen nach sich ziehen würde. Alle diese Änderungen werden nun nicht an den Stellen durchgeführt, wo sie eigentlich hin gehören, sondern sie werden zuerst in einem speziellen Bereich in das Dateisystem geschrieben, dem sogenannten Journal. Dort steht dann z. B. qualitativ:

  • Entferne Eintrag D aus Verzeichnis V1
  • Füge Eintrag D dem Verzeichnis V2 hinzu

Diese Vorgehensweise alleine ergibt allerdings noch nicht das gewünschte Ziel der Sicherheit gegen nicht vollständig durchgeführte Operationen, da hier wieder mitten in der Operation – vielleicht zufällig genau nach „Entferne Eintrag D aus Verzeichnis V1“ aber vor „Füge Eintrag D dem Verzeichnis V2 hinzu“ das System abstürzt. Daher muss das Journal von Zeit zu Zeit abgeschlossen werden. Dabei wird verzeichnet, wieviele Änderungen bis hier durchgeführt wurden, und es wird durch eine Prüfsumme sichergestellt, dass die Daten korrekt sind. Sinnvollerweise sollte also eine Verschiebeoperation mit dem Anlegen der Datei am neuen Ort beginnen, dann alle Daten kopieren und mit der Löschung des Verzeichniseintrags und somit auch der Freigabe des Festplattenplatzes auf dem Quelldatenträger beendet werden.

Ergänzung und Verwendung bei Apple Computern, zu HFS+ Journaling (Mac OS X Computer, Apple):

Beim Mac OS X ab Version 10.3.x gibt es während der Installation die Möglichkeit, das Schreibzyklusintervall festzulegen. Dieser Schreibzyklus lässt sich auch nach der Installation individuell festlegen, indem man nach der Installation einen Zyklus nach einer von selbst gesetzten Zeit aktiviert. D. h. im Falle eines Systemfehlers, den man verursacht hat, kann man die aktuelle Sitzung verwerfen und nicht auf die Festplatte schreiben lassen, oder aber den Schreibzyklus vor der Ausführung direkt verwerfen. Das ist z. B. wichtig, wenn man festgelegt hat, dass der Aktualisierungszyklus auf 30 min festgelegt wurde. Das bietet Vorteile und Nachteile.

Vorteile:

  • Bei einem Hackerangriff werden die Änderungen nicht aktiv, wenn man beim Herunterfahren die Änderungen verwirft. Das gilt z. B. auch für fehlerhafte Installationen.
  • Diese Option bietet direkte Kontrolle auf die Speicherprozesse.
  • Nach Konfiguration einfach zu bedienen
  • Ist direkt über Systemeinstellungen konfigurierbar
  • Beim Herunterfahren erscheint die Möglichkeit, die Sitzung zu übernehmen oder zu verwerfen.

Nachteile:

  • Verpassen des Schreibzyklus kann zu ungewollten Datenänderungen führen.
  • Systemabstürze führen zum Verlust der Änderungen, die nach dem letzten Zyklus bevorstünden.
  • Die Zyklusvarianz muss während der Installation der Systemsoftware eingespielt werden. Bei der Standardkonfiguration ist die Zyklusmöglichkeit nicht enthalten.
  • Aktivierung der Schreibzyklusfunktion ist nur in Verbindung mit der „Firmware“ bei gleichzeitiger Systeminstallation möglich, und somit für den normalen Anwender schwierig zu bewerkstelligen.
  • Journaling-Dateisysteme erfordern mehr Schreibzugriffe als Nicht-Journaling-Dateisysteme. Dadurch können insbesondere optische Datenträger beim Journaling schneller abnutzen.

Eine Auswahl von Journaling-Dateisystemen und ihrer Verfügbarkeit

Die unter BSD verwendeten UFS-Dateisysteme verwenden eine Technik namens Softupdates, die einen in Bezug auf die Zielsetzung vergleichbaren Ansatz verfolgt.

Journaling-Dateisysteme sind mittlerweile Standard und unter vielen freien, kommerziellen und alternativen Betriebssystemen verfügbar.

Weblinks

  • [1] Informationen über Journaling-Dateisystem (Schwerpunkt Linux)
  1. Website von JFFS2

Wikimedia Foundation.

Игры ⚽ Поможем написать реферат

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Journaling file system — For the IBM Journaled File System, see JFS (file system). A journaling file system is a file system that keeps track of the changes that will be made in a journal (usually a circular log in a dedicated area of the file system) before committing… …   Wikipedia

  • Filesystem — Das Dateisystem ist die Ablageorganisation auf einem Datenträger eines Computers. Dateien müssen gelesen, gespeichert oder verschoben werden. Für den Menschen müssen Dateiname und computerinterne Dateiadressen in Einklang gebracht werden. Das… …   Deutsch Wikipedia

  • Second extended Filesystem — ext2 Hersteller Rémy Card Vollständige Bezeichnung Second extended file system Erstveröffentlichung Januar 1993 (Linux) Partitionskennung Apple UNIX SVR2 (Apple Partition Map) 0x83 (Master Boot Record) EBD0A0A2 B9E5 4433 87C0 68B6B72699C7 (GPT …   Deutsch Wikipedia

  • XFS — Infobox Filesystem name = XFS full name = XFS developer = Silicon Graphics Inc. introduction os = IRIX v5.3 introduction date = 1994 partition id = directory struct = B+ trees file struct = B+ trees bad blocks struct = max filename size = 255… …   Wikipedia

  • Ext3 — infobox filesystem name = ext3 full name = Third extended file system developer = Stephen Tweedie introduction os = Linux 2.4.15 introduction date = November 2001 partition id = 0x83 (MBR) EBD0A0A2 B9E5 4433 87C0 68B6B72699C7 (GPT) directory… …   Wikipedia

  • Stephen Tweedie — Dr Stephen C. Tweedie Born Edinburgh, Scotland Dr. Stephen C. Tweedie is a software developer who is known for his work on the Linux kernel, in particular his work on filesystems.[1] After becoming involved with the development of the ext2… …   Wikipedia

  • JFS (file system) — infobox filesystem name = JFS full name = IBM Journaled File System developer = IBM et al. introduction os = JFS1 in AIX 3.1 and JFS in OS/2 4.5 introduction date = 1990 and 1999 partition id = 0x35 (MBR) file struct = Bitmap/extents bad blocks… …   Wikipedia

  • NetBSD — Company / developer The NetBSD Foundation OS family Unix like Working state Current So …   Wikipedia

  • AmigaOS — Infobox OS name = AmigaOS logo = caption = A screenshot of AmigaOS 4.0 family = Amiga OS developer = Commodore International (1.0 3.1) Haage Partner (3.5 3.9) Hyperion Entertainment (4.0) source model = Closed source working state = Current… …   Wikipedia

  • SkyFS — SkyOS Logo Basisdaten Entwickler Robert Szeleney Sprache(n) …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”