Mit den Tipps und Workshops im ADMIN-Magazin 03/2013 sichern Administratoren ihre Webserver und Netze gegen Angriffe ab: gegen Abhören sensibler Informationen, ... (mehr)

Journaling

Abhilfe für dieses Problem schaffen Dateisysteme mit Journaling wie JFS (Journaling File System) von IBM oder das GEOM-Modul Gjournal unter FreeBSD. Dabei werden sämtliche Änderungen am Dateisystem in einem Journal protokolliert. Im Falle eines Falles wird dieses Journal abgearbeitet und so das Dateisystem wieder in einen konsistenten Zustand versetzt. Diese Methode hat aber den Nachteil, dass das Journal Plattenplatz benötigt. Doch was ist, wenn bei Stromausfall das Journal nicht mehr geschrieben werden kann?

ZFS verwendet die Transaktionsmethode des Copy on Write (COW). Abbildung 3 zeigt, wie diese Methode funktioniert. Wie bei allen modernen Dateisystemen liegen die Daten in einer baumartigen Struktur vor (1). Die Wurzel bildet der Super-Node, die Daten sind in den Blöcken gespeichert. Im nächsten Schritt (2) werden die Blöcke kopiert, in denen Daten verändert werden sollen. Die Originalblöcke bleiben dabei erhalten. Sobald diese Transaktion erfolgreich abgeschlossen ist, werden die Nodes kopiert und deren Pointer zeigen gegebenenfalls auf die neuen Blöcke. Da auch dies wieder eine Transaktion darstellt, wird nur nach einem erfolgreichen Abschluss der nächste und letzte Schritt durchgeführt: Der Super-Node wird neu geschrieben. Auch dies ist wieder durch eine Transaktion abgesichert.

Abbildung 3: Transaktionsmethode "Copy on Write" in ZFS.

Konsistenz garantiert

Wie man anhand der beschriebenen Schritte schnell erkennen kann, bleibt bei einem Stromausfall das Dateisystem in einem konsistenten Zustand. Da nur mit Kopien der Nodes und Blöcke gearbeitet wird, bleiben im schlimmsten Fall die Originale erhalten, während die Kopien verloren sind.

Die Transaktionsmethode Copy on Write bietet außerdem auf einfache Art und Weise Snapshots: Die Originalblöcke werden einfach nicht freigegeben. So erhält man die Möglichkeit, jederzeit zum vorherigen Stand der Datei zurückzukehren. Kostengünstiger können Snapshots nicht sein. Außerdem benötigen sie im Gegensatz zur klassischen Methode der Snapshots kaum Systemresourcen.

comments powered by Disqus

Artikel der Woche

Eigene Registry für Docker-Images

Wer selber Docker-Images herstellt, braucht auch eine eigene Registry. Diese gibt es ebenfalls als Docker-Image, aber nur mit eingeschränkter Funktionalität. Mit einem Auth-Server wird daraus ein brauchbares Repository für Images. (mehr)
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

Google+

Ausgabe /2019