GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Einführung in das Linux-Dateisystem

Einführung

Ein Dateisystem ist eine Reihe von Prozessen, die steuern, wie, wo und wann Daten gespeichert und von einem Speichergerät abgerufen werden. Ein effizientes Dateisystem ist für alltägliche Systemprozesse unerlässlich.

Der Linux-Kernel unterstützt verschiedene Dateisysteme, aber das am häufigsten verwendete ist das ext4-Dateisystem.

In diesem Artikel erfahren Sie mehr über die Entwicklung von Linux-Dateisystemen und die Hauptfunktionen des ext4-Systems.

Entwicklung des Linux-Dateisystems

Schauen wir uns die Entwicklung des Linux-Dateisystems genauer an:

MINIX-Dateisystem

Die Minix-Datei System unterstützte das Minix-Betriebssystem. Es wurde erstmals 1987 von Andrew S. Tanenbaum vorgestellt.

Das Minix-Betriebssystem und sein Dateisystem wurden hauptsächlich für pädagogische Codierungszwecke verwendet. Die Performance des Dateisystems entsprach damals nicht dem Standard. Die Länge der Dateinamen wurde auf vierzehn Zeichen und die Partitionen auf 64 MB beschränkt. Damals unterstützten Festplatten Partitionen bis zu 140 MB.

Bis 1992 wurde Minix aufgrund mangelnder Leistung und Entwicklung des ext-Dateisystems größtenteils nicht mehr verwendet .

ext-Dateisystem

Das ext-Dateisystem steht für „Erweitertes Dateisystem“. Es war das erste Dateisystem, das entwickelt wurde, um den Linux-Kernel zu unterstützen.

Virtuelles Dateisystem (VFS) wurde für das Ext-Dateisystem verwendet. Sein Hauptzweck bestand darin, dem Linux-Kernel den Zugriff auf das Ext-Dateisystem zu ermöglichen. Das Ext-Dateisystem beschränkte Dateinamen auf 255 Zeichen und unterstützte Partitionen bis zu 2 GB.

Während es Probleme löste, die das Minix-Dateisystem hatte, hatte es einen großen Fehler – Zeitstempel. Anders als heute, wo jede Linux-Datei drei Zeitstempel hat (Zugriffszeitstempel, geänderter Zeitstempel und geänderter Zeitstempel), erlaubte das Ext-Dateisystem nur einen Zeitstempel pro Datei.

Im Januar 1993 wurde das ext2-Dateisystem eingeführt. Mit der Zeit wechselten alle Benutzer von ext zu ext2.

ext2-Dateisystem

Remi Card hat das ext2-Dateisystem entwickelt und veröffentlichte es im Januar 1993, weniger als ein Jahr nach der Einführung des ext-Dateisystems.

Das ext2-Dateisystem ermöglichte die Beibehaltung der internen Struktur, während die Funktionalitäten des Dateisystems erweitert wurden. Daten aus Dateien wurden in Datenblöcken gleicher Länge gehalten. Das ext2-Dateisystem unterstützte die maximale Dateigröße von 2 TiB. Die Länge der Dateinamen wurde nicht in Zeichen, sondern in Bytes begrenzt – 255 Bytes. Journaling wurde nicht unterstützt.

Obwohl dieses Dateisystem weitgehend verwendet wurde, gab es immer noch zwei Hauptprobleme:

  • Dateibeschädigung – Dieses Phänomen tritt auf, wenn Daten zum Zeitpunkt eines Stromausfalls oder Systemabsturzes auf die Festplatte geschrieben werden.
  • Leistungsverlust – Festplattenfragmentierung tritt auf, wenn eine einzelne Datei in Stücke zerlegt und über mehrere Speicherorte auf der Festplatte verteilt wird. Dadurch dauert das Lesen und Schreiben von Dateien länger, was zu Leistungseinbußen führt.

Das ext2-System wurde hauptsächlich bis Anfang der 2000er Jahre verwendet, als das ext3-Dateisystem eingeführt wurde. Es wird heute gelegentlich für USB-Geräte verwendet, da es das Journaling-System nicht unterstützt.

ext3-Dateisystem

Stephen Tweedie hat das ext3-Dateisystem entwickelt (Drittes erweitertes Dateisystem). Es startete im November 2001 mit dem Linux-Kernel 2.4.15. Es wird noch heute verwendet.

Das ext3-Dateisystem ist eine verbesserte Version des ext2-Dateisystems. Es unterstützt eine maximale Dateigröße von 2 TiB und beschränkt die maximale Dateinamenlänge auf 255 Bytes, wie das ext2-Dateisystem. Die Verbesserung spiegelt sich im Journal wider.

Das Tagebuch Das System führt ein „Journal“ aller Änderungen in der Datenstruktur, die noch festgeschrieben werden müssen. Im Falle eines Stromausfalls oder Systemabsturzes geben Protokolle, die über das Journaling-System gespeichert werden, Daten innerhalb von Sekunden zurück, wodurch das Risiko von Beschädigung oder Datenverlust verringert wird. Das System schreibt die Daten in die richtigen Bereiche des Dateisystems, wenn das Protokoll aktualisiert wird.

Der Linux-Kernel unterstützt drei Ebenen des Journalings:

  • Journal – Es besteht darin, Metadaten und Dateiinhalte in ein Journal zu schreiben, bevor Änderungen am Hauptdateisystem vorgenommen werden. Dies speichert Daten im Falle eines Stromausfalls oder Systemabsturzes. Der Nachteil dieses Journaling-Levels ist, dass die Leistung des Systems abnimmt.
  • Bestellt – Diese Journaling-Ebene schreibt die Metadaten in das Journal, während Dateiinhalte automatisch im Hauptdateisystem gespeichert werden. Der Prozess wird in einer bestimmten Reihenfolge ausgeführt. Zunächst werden die Metadaten in das Journal geschrieben. Dann werden die Dateiinhalte in das Hauptdateisystem geschrieben. Schließlich verbinden sich die Metadaten mit dem Hauptdateisystem. Daher wird das Hauptdateisystem bei einem Systemabsturz nicht beschädigt. Nur Dateien, die während eines Absturzes gerade geschrieben werden, können beschädigt werden.
  • Zurückschreiben – Diese Journalebene schreibt nur Metadaten in das Journal. Dateiinhalte werden erst nach Aktualisierung des Journals in das Hauptdateisystem geschrieben. Aufgrund der fehlenden Synchronisierung von Metadaten und Dateiinhalten wird das Dateisystem wahrscheinlich beschädigt, wenn das System abstürzt.

ext4-Dateisystem

Das ext4-Dateisystem ist das Standarddateisystem des aktuellen Linux-Kernels. Es wurde im Oktober 2008 mit dem Linux-Kernel 2.6.28 eingeführt.

Das ext4-Dateisystem unterstützt die maximale Dateigröße von 16 TiB und beschränkt die maximale Dateinamenlänge auf 255 Byte.

Merkmale des ext4-Dateisystems

Schauen wir uns die Hauptfunktionen des ext4-Dateisystems an.

Abwärtskompatibilität

Das ext4-Dateisystem unterstützt Abwärtskompatibilität mit ext3- und ext2-Dateisystemen. Ein zusätzliches Feature ist das automatische Mounten des ext3-Dateisystems im ext3-Modus durch Verwendung eines ext4-Treibers.

Zuweisungsverbesserungen

Das ext4-Dateisystem weist Speicherblöcke effizienter zu, bevor sie auf die Festplatte geschrieben werden. Das verbessert die Lese- und Schreibleistung.

Zeitstempel-Verbesserungen

Das ext4-Dateisystem fügt dem Zeitstempel weitere 408 Jahre hinzu und unterstützt Daten bis zum 10. Mai 2446. Zeitstempel werden auch schneller in Nanosekunden gemessen.

Ausmaße

Veraltete Versionen des Ext-Dateisystems bilden alle Blöcke ab, die mit jeder Datei korrelieren. Der Prozess funktioniert nicht, wenn es um große Dateien geht, die eine hohe Anzahl von Blöcken erfordern. Extents haben das Problem im ext4-Dateisystem gelöst.

Ausmaße Reduzieren Sie die Menge an Metadaten, die zum Zuordnen der Blöcke jeder Datei erforderlich sind. Das System speichert die Adresse des ersten und letzten Blocks entsprechend der großen Datei.

Verbesserungen bei der Multiblock-Zuweisung

Ein Blockzuordner sucht nach freien Blöcken, die zum Schreiben von Daten auf die Platte verwendet werden können. Das ext4-Dateisystem verwendet mehrere Zuweisungen die die Zuordnung mehrerer Blöcke pro Anruf ermöglichen. Dadurch wird die Festplattenfragmentierung reduziert.

Verzögerte Zuordnung

Die verzögerte Zuordnung Die Funktion weist Blöcke nur dann zu, wenn die Datei auf die Festplatte geschrieben wird. Mit dieser Funktion wird der Cache-Speicher nicht mit unnötigen Daten gefüllt und die Leistung des Systems erhöht.

Unbegrenzte Anzahl von Unterverzeichnissen

Die Linux-Kernel-Version 2.6.23 unterstützt eine unbegrenzte Anzahl von Unterverzeichnissen. Das ext4-Dateisystem führte die HTree-Datenstruktur ein um Leistungseinbußen zu vermeiden. Die HTree-Datenstruktur stellt eine spezialisierte Version des B-Baums dar.

Journal-Prüfsummen

Das ext4-Dateisystem verwendet die Prüfsumme Möglichkeit. Diese Option wurde eingeführt, um das Risiko einer Dateibeschädigung zu verringern.

Das Journalsystem ist der am häufigsten verwendete Teil der Festplatte. Wenn ein Hardwarefehler auftritt, werden die Blöcke unbrauchbar und es kommt zu einer Dateibeschädigung. Die Prüfsummenoption überprüft ständig, ob ein Block beschädigt ist. Dieser Prozess verbessert auch die Leistung, da er die Journaling-Zeit verkürzt.

Schnellere Dateisystemprüfungen

In einem ext4-Dateisystem werden nicht verteilte Gruppen von Blöcken und Inode-Tabellen markiert. Die zum Ausführen von fsck erforderliche Zeit Befehl wird deutlich verkürzt, da markierte Gruppen übersprungen werden. Es verbessert die Gesamtleistung.

Online-Defragmentierung

Die Festplattenfragmentierung führt zu Leistungseinbußen, was ein erhebliches Problem bei den Dateisystemen ext2 und ext3 war. Das ext4-Dateisystem unterstützt e4defrag Tool, mit dem Benutzer einzelne Dateien oder das gesamte Dateisystem defragmentieren können.

Einschränkungen des ext4-Dateisystems

Obwohl das ext4-Dateisystem als das beste Dateisystem für Linux-Distributionen gilt, gibt es einige Einschränkungen, die bei der Weiterentwicklung des Systems beachtet werden sollten:

  • Wiederherstellung beschädigter Daten – Das ext4-Dateisystem kann beschädigte Daten, die bereits auf die Festplatte geschrieben wurden, nicht erkennen oder wiederherstellen.
  • Maximale Volumengröße – Die maximale Volume-Größe ist auf 1 EiB eingestellt. Das Dateisystem kann jedoch nicht mehr als 100 TiB an Daten verarbeiten, ohne dass es zu einem erheblichen Leistungsverlust und einer erhöhten Festplattenfragmentierung kommt.

Alternative Linux-Dateisysteme

Es gibt mehrere Alternativen zum ext4-Dateisystem. Der Linux-Kernel unterstützt alle unten aufgeführten Alternativen.

XFS

XFS ist ein 64-Bit-Dateisystem, das erstmals 1994 eingeführt und seit 2001 in den Linux-Kernel integriert wurde. Es ist das Standarddateisystem für RedHat Linux.

XFS unterstützt eine maximale Dateigröße von 8 EiB und beschränkt die Dateinamenlänge auf 255 Bytes. Es unterstützt Journaling und speichert wie ext4 die Änderungen in einem Journal, bevor Änderungen an das Hauptdateisystem übertragen werden. Dies verringert die Möglichkeit einer Dateibeschädigung.

Die Daten sind in B+-Bäumen strukturiert , die eine effiziente Speicherplatzzuweisung und damit eine höhere Leistung bietet.

Der Hauptnachteil dieses Systems spiegelt sich im schwierigen Größenänderungsprozess eines bestehenden XFS-Dateisystems wider.

OpenZFS

OpenZFS ist eine Plattform, die Dateisysteme mit Volume-Managern kombiniert. Es wurde erstmals 2013 eingeführt.

OpenZFS unterstützt eine maximale Dateigröße von 16 EiB und begrenzt die maximale Dateinamenlänge auf 255 Zeichen. Einige der Funktionen dieses Systems sind Schutz vor Datenkorruption, Verschlüsselung, Unterstützung für hohe Speicherkapazitäten, Copy-on-Write und RAID-Z.

Der Hauptnachteil von OpenZFS ist die rechtliche Inkompatibilität zwischen CDDL- (OpenZFS) und GPL- (Linux-Kernel) Lizenzen. Dies wird durch Kompilieren und Laden des ZFS-Codes in den Linux-Kernel gelöst.

BtrFS

Oracle hat BtrFS entwickelt (steht für „B-Tree File System“) und veröffentlichte es 2009 mit dem Linux-Kernel 2.6.29.

BtrFS unterstützt eine maximale Dateigröße von 16 EiB und begrenzt die maximale Dateinamenlänge auf 255 Zeichen. Einige der Funktionen von BtrFS sind Online-Defragmentierung, Online-Hinzufügen und -Entfernen von Blockgeräten, RAID-Unterstützung, pro Datei oder Volume konfigurierbare Komprimierung, Klonen von Dateien, Prüfsummen und die Fähigkeit, Auslagerungsdateien und Auslagerungspartitionen zu handhaben.


Linux
  1. Kopieren Sie Dateien im Linux-Terminal

  2. Benennen Sie eine Datei im Linux-Terminal um

  3. Verschieben Sie Dateien im Linux-Terminal

  4. Linux-Berechtigungen:Eine Einführung in chmod

  5. Eine Einführung in die Überwachung von Linux-Benutzerkonten

Arch Linux – Anpassen des Systems

Die Einführung eines Linux-Systemadministrators in cgroups

Die Hosts-Datei unter Linux

Wählen Sie das beste Dateisystem für Ihr Linux

Alles, was Sie über das Linux-Dateisystem wissen müssen

Verstehen der /etc/fstab-Datei unter Linux