XFS (Dateisystem)

XFS (Dateisystem)
XFS
Hersteller Silicon Graphics Inc.
Vollständige Bezeichnung XFS
Erstveröffentlichung 1994 (IRIX v5.3)
Technische Umsetzung
Verzeichnisse B⁺ Baum
Dateien extent based
Maximalwerte
Größe einer Datei 8 EiB
Anzahl aller Dateien 263
Länge des Dateinamens 255 Byte
Größe des Dateisystems 8 EiB
Erlaubte Zeichen im Dateinamen Alle Bytes außer NUL
Eigenschaften
Datumsangaben einer Datei unterstützt
Forks unterstützt
Dateiattribute bis zu 64 KiB beliebige binäre Daten je Datei im Journal
Dateirechte-Verwaltung ACL unterstützt
Transparente Komprimierung nein
Transparente Verschlüsselung nein
Unterstützende Betriebssysteme IRIX, Linux, FreeBSD

XFS ist ein von der Firma Silicon Graphics (SGI) entwickeltes Journaling-Dateisystem für UNIX-artige Betriebssysteme wie Linux. Das bis Ende 1994 ausschließlich für IRIX entwickelte 64-Bit-Dateisystem überzeugt vor allem durch seine robuste Struktur und hohe Geschwindigkeit. Viele Entwickler schätzen XFS leistungsfähiger als ReiserFS ein. Seit dem 1. Mai 2001 ist das Dateisystem auch offiziell für Linux ab Version 2.4 quelloffen erhältlich. Seit Kernel-Version 2.6 ist es offizieller Bestandteil des Kernels. XFS bietet Zugriffskontrolllisten und seit der Version 1.0 unterstützt XFS auch Quotas sowohl für den einzelnen Benutzer als auch für Gruppen. Für den gleichzeitigen und konfliktfreien Zugriff auf XFS gibt es die proprietäre Lösung CXFS (Cluster XFS).

Inhaltsverzeichnis

Geschichte von XFS

XFS ist eines der ältesten für UNIX verfügbaren Journaling-Dateisysteme überhaupt. Es zeichnet sich durch eine gereifte, weitgehend fehlerfreie Codebasis aus. Ursprünglich begann die Entwicklung von XFS bei SGI und wurde erstmals im Jahre 1994 auf IRIX vorgestellt. Im Jahre 2000 wurde XFS schließlich unter der GPL lizenziert und erschien 2001 erstmals auf Linux. Fast alle heutigen Linux-Distributionen beinhalten XFS-Unterstützung.

Allgemeine Werte und Eigenschaften

  • maximale Dateigröße 8 Exbibyte
  • maximale Dateisystemgröße 8 Exbibyte
  • maximale Dateinamenlänge 255 Byte
  • Journal ermöglicht konsistente Datenhaltung
  • geeignet für große und kleine Dateien sowie für umfangreiche Verzeichnisse
  • unterstützt Blockgrößen von 512 Byte bis 64 Kibibyte
  • Datensicherung und Größenänderung im laufenden Betrieb (ohne Aushängen des Dateisystems)
  • GRIO = Guaranteed IO Bandwidth (Garantierte Schreib- und Leseraten), z. B. für Video Streaming Server
  • Unterstützung für Hierarchische Speichersysteme (HSM)
  • Unterstützung für Volume Manager
  • unterstützt Zugriffskontrolllisten
  • unterstützt Disk Quotas
  • für die Behandlung von Sparse Files geeignet

Besonderheiten von XFS

Verzeichnisstruktur

Um schnell auf spezielle Dateien zugreifen zu können, werden bei XFS Verzeichnisinhalte in einem B⁺-Baum abgespeichert. Dies erhöht in geringem Umfang zwar die Latenzzeit bei der Ausgabe eines kompletten Verzeichnisinhaltes, verringert aber die Zugriffszeit auf einzelne Dateien bei Verzeichnissen mit vielen Dateieinträgen.

Maximale Dateigröße

XFS zeichnet sich durch eine vollständige 64-Bit-Konzeption aus. Die Datenstrukturen sind darauf ausgelegt, Dateien mit einer Größe von bis zu 8 Exbibyte (263) auf einem XFS-formatierten Datenträger anzulegen. Heutige Betriebssysteme nutzen diese Grenzen noch nicht aus. So unterstützt Linux 2.4 eine maximale Dateigröße von 16 Tebibyte (244 = 212 · 232) bei einer Speicherseitengröße von 4 Kibibyte (212) und 64 Tebibyte (246 = 214 · 232) bei einer von 16 Kibibyte (214).

Journal

Das von XFS geführte Journal wird seriell abgelegt (es erfolgt keine Ablage in komplexen Datenstrukturen wie Bäume oder Heaps). Dabei kann das Journal sowohl in dafür reservierten Bereichen auf dem entsprechenden Datenträger abgelegt als auch auf externen Speichermedien geführt werden. XFS fügt Transaktionen auf dem Dateisystem jedoch asynchron (der Dateisystem-Treiber arbeitet blockierungsfrei) zum Journal hinzu. Dadurch können Operationen schneller durchgeführt werden als auf vergleichbaren Systemen, im Falle einer Störung (Stromausfall) können aber einige Eintragungen im Journal fehlen.

Eine an einen Fehlerfall anschließende Überprüfung des Dateisystems wird jedoch zumindest eine Konsistenz wiederherstellen und Datenbereiche, die nicht geschrieben werden konnten, durch Nullen auffüllen. Dadurch sind mögliche Fehler durch „Datenreste“ ausgeschlossen.

Spezielle Speicherbelegung

Belegungsgruppen

Eine weitere Besonderheit von XFS sind sog. Belegungsgruppen (engl. allocation group). Diese bilden eine eigene Einheit im XFS-System und verwalten eigenständig sowohl den freien Speicher als auch Inodes. Dadurch können mehrere Prozesse gleichzeitig auf ein Dateisystem zugreifen (sofern jeder Prozess auf eine andere Belegungsgruppe zugreift und das Dateisystem auf mehreren physischen Datenträgern verteilt wurde).

Größenbasierte Belegung

Informationen über freie Speicherbereiche werden in B⁺-Bäumen abgelegt, wodurch es möglich ist, passende Speicherbereiche zu finden und so eine Fragmentierung größtenteils zu vermeiden.

XFS unterstützt Blockgrößen von 512 Byte bis 64 Kibibyte. Dadurch lässt sich ein Dateisystem angepasst der erwarteten Nutzung anlegen. Sowohl kleine als auch große Dateien können gut verwaltet werden.

Verzögerte Belegung

Neben der größenbasierten Belegung bietet XFS auch noch eine weitere Verringerung möglicher Fragmentierung durch verzögerte Belegung. Dabei werden Dateien möglichst lange im Speicher gehalten, bevor sie auf den Datenträger geschrieben werden. Dadurch erhöht sich die Wahrscheinlichkeit, dass der XFS-Treiber einen passenden Speicherbereich finden und so auf Fragmentierung verzichten kann. Allerdings ist dadurch die Gefahr eines Datenverlustes, beispielsweise durch Stromausfälle, größer.

Nachteile von XFS

Das Design von XFS hat im Vergleich zu einigen anderen Dateisystemen auch Nachteile: In aktuellen Implementierungen ist es nicht möglich, ein XFS-Dateisystem zu verkleinern. Gelöschte Dateien sind nicht wiederherstellbar. Wegen des verzögerten Schreibens von Daten sind Datenverluste bei aktuell geöffneten Dateien bei einem Systemabsturz (z. B. Stromausfall) möglicherweise größer als bei anderen Dateisystemen (siehe AbschnittVerzögerte Belegung“).

Das Journal ist auf hohe Leistung optimiert und daher architekturabhängig: Bei einem Wechsel der Prozessor-Architektur (z. B. von i386 auf x86-64) muss vor dem Einhängen des Dateisystems das Journal mit xfs_repair geleert werden.

Weblinks


Wikimedia Foundation.

Игры ⚽ Поможем сделать НИР

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

  • XFS (Netzwerk-Dateisystem) — xFS ist ein verteiltes und dezentrales Netzwerk Dateisystem der Berkeley Universität von Kalifornien. Dieses Dateisystem befindet sich seit 1993 in der Entwicklung. Die Abkürzung steht für x File System. Da sich die Entwickler über keinen Namen… …   Deutsch Wikipedia

  • Xfs — steht für: XFS (Dateisystem), ein von der Firma Silicon Graphics entwickeltes Journaling Dateisystem für UNIX basierte Betriebssysteme X font server, Bestandteil des X Window Systems, der grafischen Oberfläche für UNIX und Linux Extension for… …   Deutsch Wikipedia

  • xFS (Netzwerk-Dateisystem) — xFS ist ein verteiltes und dezentrales Netzwerk Dateisystem der Berkeley Universität von Kalifornien. Dieses Dateisystem befindet sich seit 1993 in der Entwicklung. Die Abkürzung steht für x File System. Da sich die Entwickler über keinen Namen… …   Deutsch Wikipedia

  • XFS — steht für: XFS (Dateisystem), ein von der Firma Silicon Graphics entwickeltes Journaling Dateisystem für UNIX basierte Betriebssysteme X font server, Bestandteil des X Window Systems, der grafischen Oberfläche für UNIX und Linux Extension for… …   Deutsch Wikipedia

  • Journaling Dateisystem — 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… …   Deutsch Wikipedia

  • Fragmentierung (Dateisystem) — Visualisierung der Fragmentierung und des anschließenden Defragmentiervorgangs Unter Fragmentierung (Fragment = Bruchstück) versteht man die verstreute Speicherung von logisch zusammengehörigen Datenblöcken des Dateisystems auf einem… …   Deutsch Wikipedia

  • ZFS (Dateisystem) — ZFS ist ein von Sun Microsystems entwickeltes transaktionales Dateisystem, welches zahlreiche Erweiterungen für die Verwendung im Server und Rechenzentrumsbereich enthält. Hierzu zählen die enorme maximale Dateisystemgröße, eine einfache… …   Deutsch Wikipedia

  • Journaling-Dateisystem — 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… …   Deutsch Wikipedia

  • Defrag — Visualisierung der Fragmentierung und des anschließenden Defragmentiervorgangs Unter Fragmentierung (Fragment = Bruchstück) versteht man die verstreute Speicherung von logisch zusammengehörigen Datenblöcken des Dateisystems auf einem Datenträger …   Deutsch Wikipedia

  • Defragmentieren — Visualisierung der Fragmentierung und des anschließenden Defragmentiervorgangs Unter Fragmentierung (Fragment = Bruchstück) versteht man die verstreute Speicherung von logisch zusammengehörigen Datenblöcken des Dateisystems auf einem Datenträger …   Deutsch Wikipedia

Share the article and excerpts

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