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

Ein Superblock, Inode, Dentry und eine Datei?

Aus dem Artikel Anatomie des Linux-Dateisystems von M. Tim Jones habe ich gelesen, dass Linux alle Dateisysteme aus der Perspektive eines gemeinsamen Satzes von Objekten betrachtet und diese Objekte Superblock sind , Inode , dentry und Datei . Obwohl der Rest des Absatzes das Obige erklärt, war ich mit dieser Erklärung nicht so zufrieden.

Könnte mir jemand diese Begriffe erklären?

Akzeptierte Antwort:

In erster Linie, und mir ist klar, dass dies nicht einer der Begriffe aus Ihrer Frage war, müssen Sie Metadaten verstehen . Kurz gesagt, und aus Wikipedia geklaut, Metadaten sind Daten über Daten. Das heißt, dass Metadaten Informationen über ein Datenelement enthalten. Wenn ich zum Beispiel ein Auto besitze, dann habe ich eine Reihe von Informationen über das Auto, die aber nicht Teil des Autos selbst sind. Informationen wie Kennzeichen, Marke, Modell, Baujahr, Versicherungsinformationen usw. All diese Informationen werden gemeinsam als Metadaten bezeichnet. In Linux- und UNIX-Dateisystemen existieren Metadaten auf mehreren Organisationsebenen, wie Sie sehen werden.

Der Superblock sind im Wesentlichen Dateisystem-Metadaten und definieren den Dateisystemtyp, die Größe, den Status und Informationen über andere Metadatenstrukturen (Metadaten von Metadaten). Der Superblock ist für das Dateisystem sehr kritisch und wird daher in mehreren redundanten Kopien für jedes Dateisystem gespeichert. Der Superblock ist eine sehr „hohe“ Metadatenstruktur für das Dateisystem. Wenn beispielsweise der Superblock einer Partition, /var, beschädigt wird, kann das betreffende Dateisystem (/var) nicht vom Betriebssystem gemountet werden. Üblicherweise müssen Sie in diesem Fall fsck ausführen Dadurch wird automatisch eine alternative Sicherungskopie des Superblocks ausgewählt und versucht, das Dateisystem wiederherzustellen. Die Sicherungskopien selbst werden in Blockgruppen gespeichert, die über das Dateisystem verteilt sind, wobei die erste um 1 Block versetzt vom Beginn der Partition gespeichert wird. Dies ist wichtig für den Fall, dass eine manuelle Wiederherstellung erforderlich ist. Sie können Informationen über ext2/ext3/ext4-Superblock-Backups mit dem Befehl dumpe2fs /dev/foo | grep -i superblock was im Falle eines manuellen Wiederherstellungsversuchs nützlich ist. Nehmen wir an, dass der Befehl dumpe2fs die Zeile Backup superblock at 163840, Group descriptors at 163841-163841 ausgibt . Wir können diese Informationen und zusätzliches Wissen über die Dateisystemstruktur verwenden, um zu versuchen, dieses Superblock-Backup zu verwenden:/sbin/fsck.ext3 -b 163840 -B 1024 /dev/foo . Bitte beachten Sie, dass ich für dieses Beispiel eine Blockgröße von 1024 Bytes angenommen habe.

Ein Inode ist in oder auf einem Dateisystem vorhanden und stellt Metadaten zu einer Datei dar. Aus Gründen der Übersichtlichkeit sind alle Objekte in einem Linux- oder UNIX-System Dateien; tatsächliche Dateien, Verzeichnisse, Geräte usw. Bitte beachten Sie, dass es unter den in einem Inode enthaltenen Metadaten keinen Dateinamen gibt, wie Menschen ihn sich vorstellen, dies wird später wichtig sein. Ein Inode enthält im Wesentlichen Informationen über Besitz (Benutzer, Gruppe), Zugriffsmodus (Lese-, Schreib-, Ausführungsberechtigungen), Dateityp und die Datenblöcke mit dem Inhalt der Datei.

Verwandte:Wie kann man Tail -f mit Farben nur mit Awk ausgeben und den Rest der Ausgabe anzeigen?

Ein Dentry ist der Klebstoff, der Inodes und Dateien zusammenhält, indem Inodes-Nummern mit Dateinamen in Beziehung gesetzt werden. Dentries spielen auch beim Verzeichnis-Caching eine Rolle, das im Idealfall die am häufigsten verwendeten Dateien für einen schnelleren Zugriff verfügbar hält. Das Durchlaufen des Dateisystems ist ein weiterer Aspekt des Dentry, da es eine Beziehung zwischen Verzeichnissen und ihren Dateien aufrechterhält.

Eine Datei , zusätzlich zu dem, woran Menschen normalerweise denken, wenn ihnen das Wort präsentiert wird, ist eigentlich nur ein Block von logisch zusammenhängenden willkürlichen Daten. Vergleichsweise sehr langweilig, wenn man bedenkt, wie viel Arbeit (oben) geleistet wurde, um den Überblick zu behalten.

Ich bin mir voll und ganz bewusst, dass einige Sätze keine vollständige Erklärung für eines dieser Konzepte bieten, also zögern Sie nicht, bei Bedarf nach weiteren Details zu fragen.


Linux
  1. Was ist die Inode-Nummer unter Linux?

  2. Unterschied zwischen einem verteilten und einem Cluster-Dateisystem?

  3. So mounten und unmounten Sie ein Dateisystem unter Linux

  4. Berechtigungstabelle für Datei-/Verzeichnis- und Dateisystem-Benutzertypen

  5. Build-Umgebungsisolation und Dateisystem-Diffing

Einführung in das Linux-Dateisystem

5 Möglichkeiten, eine Beschreibung und einen Speicherort eines „Binärbefehls“ im Dateisystem zu finden

Erstellen und erweitern Sie das XFS-Dateisystem basierend auf LVM

Was ist EFS (Elastic File System) in AWS und wie wird es verwendet?

So überprüfen und reparieren Sie ein Dateisystem in RHEL Linux

Wie überprüfe ich die Inode-Nutzung über cPanel und die Befehlszeile?