Dateisysteme von BSD, Solaris, Unix

Wie im Artikel über die Grundlagen von Dateisystemen ausgeführt, ist das Dateisystem ein unverzichtbarer Bestandteil jedes Betriebssystems. Und die meisten Betriebssysteme neigen dazu, ihre eigenen nativen Dateisystemformate zu verwenden, deren Unterstützung in anderen Umgebungen möglicherweise eingeschränkt oder nicht verfügbar ist. Apropos Unix-Familie: Dieses Betriebssystem und seine Varianten wie BSD und Solaris haben sich traditionell auf UFS verlassen, das später auf UFS2 aktualisiert wurde. Nach einer Weile entstand aus Solaris ein Dateisystem der nächsten Generation namens ZFS. Letzteres hat auch eine immense Popularität erlangt und es prompt auf andere Plattformen geschafft. Hier finden Sie einen kurzen Überblick über diese beiden häufigsten Dateisystemtypen und lernen ihre wichtigsten Besonderheiten kennen.

Beachten Sie bitte: Einige dieser Betriebssysteme bieten möglicherweise Lese-/Schreibunterstützung für andere Formate, z. B. FAT/FAT32 von Microsoft Windows und Ex2/Ext3/Ext3 von Linux, die in den entsprechenden Artikeln beschrieben werden.

Inhalt:

UFS/UFS2

UFS (UNIX File System) stammt vom Berkeley Fast File System (FFS) ab, das von der Computer Science Research Group (CSRG) der University of California, Berkeley, entwickelt und 1983 zusammen mit der 4.2 BSD UNIX-Distribution veröffentlicht wurde. Die Arbeit an UFS ging weiter und schließlich wurde es zum primären Format für Maschinen, auf denen BSD und andere Unix-Derivate laufen. Obwohl es in Bezug auf die Features eher altmodisch ist, bleibt UFS angesichts seiner hochstabilen Leistung derzeit das Dateisystem der Wahl.

Der Speicherplatz in UFS wird in Zylindergruppen unterteilt. Deren Standorte und weitere wichtige Serviceinformationen sind im Superblock verfügbar. Eine Datei in UFS wird durch einen einzelnen Deskriptor dargestellt, der als Inode bezeichnet wird, zusammen mit Datenblöcken, aus denen ihr Inhalt besteht. Jede Zylindergruppe verfolgt ihre freien Blöcke und Inodes unter Verwendung dedizierter Bitmaps.

Ein Inode hat alle Attribute der Datei, mit Ausnahme ihres Namens. Er speichert auch die direkten Adressen ihrer ersten 12 Datenblöcke. Wenn es mehr Blöcke gibt, zeigen die nachfolgenden Adressen auf indirekte Blöcke, die direkte Blockadressen speichern. Andererseits besteht ein Verzeichnis aus Einträgen, die die Inode-Nummern den Namen der Dateien, die sich in dem gegebenen Verzeichnis befinden, zuordnen.

Obwohl UFS für jede Datei einen einzigen Inode erstellt, ermöglicht es das Speichern derselben Datei in mehreren Verzeichnissen und unter verschiedenen Namen. Solche Dateien teilen sich denselben Inode und werden als harte Links oder Hardlinks bezeichnet. In diesem Fall gibt der Inode die genaue Anzahl der Verweise darauf an.

Im Laufe der Jahre hat UFS viele Veränderungen durchlaufen. Im Jahr 2003 wurde UFS2 als Ersatz für das ursprüngliche UFS eingeführt und für den Einsatz auf Multiterabyte-Speichergeräten erweitert. Darüber hinaus haben viele Unix-Anbieter ihre eigenen Anpassungen von UFS erstellt. Beispielsweise hat Sun Microsystems Journaling zu seiner Version von UFS in Solaris 7 hinzugefügt. Dieses Dateisystem zeichnet alle Metadatenaktualisierungen in einem Protokoll auf, bevor es sie auf tatsächliche Strukturen anwendet, und gewährleistet so seinen Schutz vor Abstürzen, die während des Prozesses auftreten können.

Infolgedessen können erhebliche Unterschiede zwischen einzelnen UFS-Implementierungen bestehen. Aus diesem Grund ist die gesamte Dateisystemfamilie als UFS bekannt, aber viele ihrer Instanzen können an bestimmte Verwendungszwecke angepasst sein oder proprietäre Erweiterungen haben, die mit den Gegenstück-Varianten von Unix nicht kompatibel sind.

ZFS

ZFS (Zettabyte File System) wurde 2001 von Sun Microsystems als Teil ihres Solaris-Betriebssystems entwickelt. Im Jahr 2005 wurde es Open-Source gemacht und in andere Plattformen, einschließlich BSD, integriert. Als die Oracle Corporation Sun im Jahr 2010 erwarb, wurde die Weiterentwicklung von ZFS proprietär. Aus diesem Grund wurde ein separates Projekt namens OpenZFS eingerichtet, das es ermöglichte, die Open-Source-ZFS-Codebasis zu pflegen und außerhalb des geschlossenen Oracle-Ökosystems der Öffentlichkeit zugänglich zu machen. Aufgrund eines Lizenzkonflikts konnte ZFS jedoch nicht direkt in den Linux-Kernel integriert werden, und die Initiative ZFSonLinux (ZoL) wurde gestartet, um dieses Problem anzugehen. All dies führte zur Existenz mehrerer unterschiedlicher "•Zweige"• von ZFS.

Insgesamt hat ZFS die Vorstellung davon, was ein Dateisystem ist, radikal verändert. Es bietet native Volumen-Management-Funktionen, ähnlich denen von RAID-basierten Technologien, zusammen mit vielen anderen einzigartigen Features.

ZFS kann mehrere Speichermedien integrieren. Ihre Ressourcen werden in einem einzigen gemeinsam genutzten Speicherpool kombiniert. Er kann ein oder mehrere virtuelle Geräte enthalten, die als Vdevs bezeichnet werden. Jedes Vdev wird durch ein individuelles Label beschrieben, das auch seinen Uberblock enthält. Letzterer hat ähnliche Funktionen wie der Superblock in anderen Dateisystemen.

Die Speicherzuweisung erfolgt in Blöcken variabler Größe. Diese Blöcke werden als Objekte verschiedener Typen organisiert, wie Dateiobjekte und Verzeichnisobjekte. Eine spezielle Struktur namens Dnode zeichnet den Objekttyp und die Größe auf und zeigt auf Blöcke, die seinen Dateninhalt speichern. In einem Dnode können bis zu drei Blockzeiger vorhanden sein. Solcher Zeiger kann sich entweder auf einen Blattblock beziehen, der tatsächliche Daten speichert, oder auf einen indirekten Block, der seinerseits auf einen anderen Block zeigt.

Ähnliche Objekte werden zusammen gruppiert und bilden Objektsätze. Jedes Objekt in solchem Satz kann durch seine Nummer identifiziert werden. Die Sammlung von Dnodes, die sie beschreiben, wird auch als ein Objekt gespeichert, auf das durch einen speziellen Dnode – Metadnode – gezeigt wird. Ein dedizierter Objektsatz namens Meta-Objektsatz speichert die Metadaten, die den gesamten Speicherpool charakterisieren.

ZFS verwendet auch den Copy-on-Write-Mechanismus. Es erstellt immer eine Kopie des zu ändernden Blocks, anstatt ihn direkt zu ersetzen. Sobald die Operation abgeschlossen ist, wird der Blockzeiger aktualisiert, um die Adresse des neu geschriebenen Blocks anzuzeigen, während die ursprüngliche Version unverändert bleibt.

Derzeit wird ZFS in großem Umfang von Unternehmen und technisch versierten Einzelpersonen eingesetzt. Obwohl es einige Diskussionen über seine derzeitige Stabilität gibt, hat dieses Format ein enormes Potenzial, die neue Option der Wahl zu werden.

Hinweis: Informationen zur Wahrscheinlichkeit eines erfolgreichen Ergebnisses bei der Datenrettung von diesen Dateisystemen finden Sie in den Artikeln über betriebssystemspezifische Besonderheiten der Datenwiederherstellung und Chancen für die Datenrettung. Der Prozess selbst wird in der Anweisung zur Datenwiederherstellung auf Unix, Solaris und BSD beschrieben.

Wenn Sie mehr über die für andere Umgebungen typischen Dateisysteme erfahren möchten, lesen Sie bitte die folgenden Artikel:

Letzte Aktualisierung: 20. April 2023

Wenn Ihnen dieser Artikel gefällt, teilen Sie ihn in sozialen Medien: