Das Dateisystem ist die Grundlage zum Speichern und Organisation von Dateien. Eine Formatierung ist notwendig um den freien Speicherplatz eines Datenträgers in nutzbare Einheiten zu unterteilen. Die nutzbaren Einheiten nennt man auch Datenblöcke.
Zudem wird während der Formatierung, der Datenträger zur Verwendung eines spezifischen Betriebssystem vorbereitet, viele Betriebssysteme nutzen ihre eigens entwickelte Dateisysteme. So z.B. Microsoft Windows verwendet heutzutage NTFS, früher in den 1990 war FAT der Standard bei MS Systeme. USB Sticks oder USB Festplatten sind oft mit exFAT vorformatiert. ExFAT wird von den meisten Betriebssystemen (Beispiele sind: Windows, Linux, BSD, MacOS) und Geräte (wie z.B. Fernseher) gelesen und beschrieben werden. Hier schreibe ich ein bisschen zu Dateisystemen.
FAT Systeme
- FAT heißt: File Allocation Table.
- Erstveröffentlichung 1977 von Microsoft.
- Gilt heute als Industriestandard und wird für den austausch von Daten über Betriebssystemgrenzen Hinweg verwendet.
Heute gibt es diverse FAT Versionen. Die erste Version von FAT von 1977 ist eine 8Bit Version (also FAT8) für 8080-Prozessoren. Mir ist diese Version weder als Jugendlicher noch im Beruf unter den Augen gekommen.
FAT gibt es mittlerweile in vielen Versionen und wurde bis heute weiterentwickelt, aufgrund des Industriestandard.
- FAT12
- 12Bits je Cluster in der Zuordnungstabelle
- Maximale Dateigröße 4GiB-1B
- Maximale Anzahl der Cluster: 4084
- FAT16
- 16Bits je Cluster in der Zuordnungstabelle
- Maximale Dateigröße 4GiB-1B
- Maximale Anzahl der Cluster: 4085 – 65.524
- FAT32
- 32Bits je Cluster in der Zuordnungstabelle
- Maximale Dateigröße 4GiB-1B
- Maximale Anzahl der Cluster: 65.525 – 268.435.444
- exFAT
- 32Bits je Cluster in der Zuordnungstabelle
- Maximale Dateigröße 16EiB-1B
- Maximale Anzahl der Cluster: 4.294.967.296
Besonderheiten bei exFAT(Extended File Allocation Table):
exFAT wurde für Flashspeicher im Rahmen der Einführung von Windows CE 6.0 veröffentlicht. Es wurde eingeführt um die Beschränkung von FAT32 zu umgehen, wo aber die Verwendung von NTFS schwer zu Implementieren ist. Ab MACOS X Snow Leopard wird exFAT vollständig unter MACs unterstützt.
HPFS
- HPFS heißt: High Performance File System
- Erstveröffentlichung 1989 für OS/2 1.2 von Microsoft.
- Maximale Dateigröße 2GiB, Dateisystem 64GiB
Im Unterschied zu dem damaligen FAT16 unterstütze HPFS eine theoretische Partitionsgröße von 2 TiB, allerdings waren in der Praxis die Partitionen hauptsächlich 64GiB groß.
Die Dateinamen durften hier bis zu 255 Zeichen lang sein, zudem konnten erweiterte Attribute an einer Datei angehängt werden. Bei Heutigen Systemen (wie Windows, Linux oder MacOs) kann man im jeweiligen Explorer schon anhand eines Icons sehen was für Dateien das sind und mit welchen Programmen diese geöffnet werden. (Dies ist z.B. ein Attribut -Eigenschaft-)
MSR (Microsoft Reserved Partition)
Diese Partition wird auf GPT-Datenträgern, also GUID Partition Table erstellt und reserviert. Der Speicherplatz wird für die zukünftige nutzung der Betriebssystem Software verwendet.
Die MSR-Partition ist notwendig, um sicherzustellen, dass bestimmte Softwarekomponenten, die früher versteckte Sektoren verwendet haben, jetzt Teile der MSR für komponentenspezifische Partitionen zuweisen können3. Diese Partition ist also ein wichtiger Bestandteil der Festplattenverwaltung und sollte nicht gelöscht werden.
NTFS
- Proprietäres Dateisystem von Microsoft.
- NTFS heißt: New Technology File System
- Erstveröffentlichung war 1993 mit Windows NT 3.1
NTFS ist der Standard für Microsoft Windows. Da Microsoft Windows heutzutage sehr verbreitet ist, beschreibe ich dieses Dateisystem etwas mehr.
Im Beitrag Unterschiede Schnell- und Vollformatierung beschrieb ich das bei der Schnellformatierung nur die Ordner entfernt werden, die Dateien aber „unsichtbar“ und physikalisch noch auf dem formatierten Datenträger vorhanden sind. Anhand des NTFS lässt es sich auch schön Beschreiben.
NTFS besitzt ein MFT (Master File Table), dies ist wie die Inhaltsangabe eines Buches zu sehen. Dort steht wie in einer Tabelle in welchen Blöcken sich eine Datei befindet. Hier ist wichtig zu wissen das eine Datei auch Fragmentiert sein kann, also in unterschiedlichen Bereichen der Festplatte aufgeteilt sein kann. Daher ist es bei Windows und Physischen Datenträger (HDD) nötig, die Festplatte zu Defragmentieren. Während der Defragmentierung werden die Datenblöcke welche zusammengehören zusammengeschoben. Früher als die Computer und Festplatten noch recht langsam waren (da war ich noch klein und in den Anfängen meiner PC Erfahrung) konnte man je nach Fragmentierung der Daten ein Geschwindigkeitsunterschied bemerken. Heute mit SSDs ist kein Unterschied mehr spürbar. Während einer Formatierung wird sofort ein Teil des Speicherplatzes für den MFT reserviert. Ist der reservierte Speicherplatz vollumfänglich verwendet wird bis zu 12,5% der Partition für die MFT verwendet.
Bei NTFS werden Metadaten einer Datei in einem Journal geführt. Wenn also eine Datei gespeichert wird, z.B. ein Dokument oder Spielstand wird zuerst das vorhaben (Schreiben der Datei) in das Journal eingetragen, danach im MFT nach einem freien Block (je nach Größe, der Datei, auch mehrere freie Blöcke) gesucht, im MFT gespeichert wo sich diese neue Datei befinden wird und dann erst die Datei geschrieben.
Beim normalen Löschen einer Datei wird das Löschen im Journal vermerkt sowie diese Datei aus dem MFT gelöscht. Dies bedeutet die Daten selber existieren Physisch auf dem Datenträger, es wurde nur der Eintrag aus der Inhaltsangabe gelöscht. Als Paranoider Mensch, lösche ich also persönliche Daten, sowie Daten welche unter DSGVO Artikel 17 gehören mit sogenannten Datenshredder welche die Blöcke mehrfach überschreiben.
Update 04.10.2024:
ReFS
- Integrity Streams: ReFS nutzt Prüfsummen für Metadaten und optional auch für Dateidaten, um Schäden zuverlässig zu identifizieren.
- Integration in Speicherplätze: Das ReFS (Resilient File System) gewährleistet die Datenintegrität, indem es automatisch erkannte Beschädigungen repariert. Wird ReFS innerhalb eines Spiegelungs- oder Paritätsbereichs eingesetzt, greift es auf alternative Datenkopien zu, die in den Speicherplätzen vorhanden sind. So können beschädigte Daten identifiziert und repariert werden, ohne dass das Volume offline geschaltet werden muss, was eine durchgehende Verfügbarkeit sicherstellt und Ausfallzeiten minimiert.
- Rettung von Daten: Ein Volume kann online bleiben und wird nur in seltenen Fällen offline genommen, um Reparaturen durchzuführen. Dabei entfernt ReFS beschädigte Daten aus dem Namespace, um das Volume online zu halten. Es erkennt somit beschädigte Daten, auch ohne eine Kopie der Daten zu haben.
- Proaktive Fehlerkorrektur: Es identifiziert automatisch potenzielle Schäden und initiiert daraufhin eine Datenreparatur.
ReFS unterstützt Volumes bis zu 35 Petabyte (im Vergleich zu 256 Terabyte bei NTFS).
Durch die proaktive Fehlerkorrektur ist das Dateisystem widerstandsfähiger als NTFS.
ReFS implementiert die beschleunigte Parität durch Spiegelung und ermöglicht das Erstellen von Volumes, die sowohl Spiegelungs- als auch Paritätsresilienz nutzen.
Unterschied Spiegelung und Paritätsresilienzschemata
Durch Spiegelungsresilienz lassen sich schnelle Schreibvorgänge realisieren, allerdings ist die Datenreplikation für jede Kopie nicht speichereffizient.
Bei Paritätssystemen wird die Parität für jeden Schreibvorgang neu berechnet, was die Leistung bei wahlfreien Schreibvorgängen beeinträchtigen kann. Jedoch ermöglicht die Parität eine Speicherung der Daten mit höherer Speicherplatzeffizienz.
Namespace
Der Begriff Namespace bezeichnet bei ReFS die Art und Weise, wie Dateien und Verzeichnisse im Dateisystem strukturiert und organisiert sind.
- Datei- und Verzeichnisstruktur: Es bestimmt die hierarchische Organisation der Dateien und Verzeichnisse.
- Zugriff und Verwaltung: Der Namespace erlaubt es Anwendern und Programmen, auf Dateien zuzugreifen und diese zu verwalten.
- Integrität und Konsistenz: Um die Integrität des Dateisystems zu sichern, werden defekte oder beschädigte Dateien aus dem Namespace entfernt.
- Metadaten: Ein Namespace beinhaltet Metadaten, also Informationen über Dateien und Verzeichnisse, wie zum Beispiel Dateigröße, Erstellungsdatum und Berechtigungen.
Block-Clone Vorgänge
Block-Clone-Vorgänge stellen vermutlich die bedeutendste Innovation des Dateisystems dar. ReFS erlaubt es mehreren Dateien, denselben logischen Cluster zu nutzen. Zum Beispiel: Wenn drei Dateien bis auf jeweils vier gleiche und einen unterschiedlichen Cluster identisch sind, benötigt ReFS nur sieben Cluster statt der 15 Cluster, die bei NTFS nötig wären. Dies führt zu einer erheblichen Geschwindigkeitssteigerung für den Benutzer, insbesondere beim Kopieren von Dateien.
- Gemeinsame Nutzung logischer Cluster:
- Es erlaubt, dass mehrere Dateien dieselben logischen Cluster gemeinsam nutzen.
- Dadurch werden bei Kopiervorgängen nur eine Region der Datei auf einen physischen Speicherort umgeleitet, was den Prozess beschleunigt und die E/A-Belastung verringert.
- Referenzzähler:
- In den Metadaten für kopierte Regionen werden Referenzzähler geführt. Diese zählen die Anzahl der einzigartigen Dateiregionen, die dieselben physischen Regionen verwenden.
- Dies ermöglicht es, dass mehrere Dateien dieselben physischen Daten teilen können, ohne die Isolation zwischen den Dateien zu beeinträchtigen.
- Effizienz und Speicherplatz:
- Da logische Cluster gemeinsam genutzt werden und somit identische Daten nicht mehrfach gespeichert werden müssen, verbessert sich die Speicherkapazität.
- Schreiboperationen auf freigegebene Bereiche aktivieren einen Mechanismus, bei dem ReFS eine neue Region für den anstehenden Schreibvorgang zuweist, um die Integrität der gemeinsam genutzten logischen Cluster sicherzustellen.
Ich habe die wichtigsten Aspekte von ReFS hervorgehoben. Solange im privaten Sektor keine SSDs oder HDDs eingesetzt werden, die 256GiB überschreiten, wird Microsoft Windows vermutlich weiterhin standardmäßig NTFS nutzen. Allerdings könnten die Effizienz, Speicherplatzoptimierung und proaktive Fehlerbehebung auch für Privatanwender attraktiv sein.