Was sind Inodes unter Linux und wie werden sie verwendet?


Alles unter Linux wird als Datei betrachtet, um die Konsistenz zu gewährleisten. Dies umfasst Hardwaregeräte, Drucker, Verzeichnisse und Prozesse. Mit regulären Dateien wie Musik, Text, Videos und anderen Multimediadateien sind auch zusätzliche Daten verknüpft, die als Metadaten bezeichnet werden.

Was sind Inodes unter Linux? Inode-Einträge sind die Basis der Linux-Dateisystem. Sie verwalten die Metadaten einer Datei und sind wesentliche Bestandteile des Innenlebens von Linux.

Wie ist ein Dateisystem aufgebaut?

Ein Dateisystem ist in zwei Teile unterteilt - Datenblöcke und Inodes. Die Anzahl der Blöcke ist nach dem Erstellen festgelegt und kann nicht geändert werden.

Name, Pfad, Speicherort, Links und andere Dateiattribute befinden sich nicht im Verzeichnis. Verzeichnisse sind einfach Tabellen, die die Namen der Dateien mit der übereinstimmenden Inode-Nummer enthalten.

Sie können einen festen Link erstellen, der zu mehr als einem Namen für dieselbe Datei führt. Wenn Sie einen festen Link erstellen, wird auch ein neuer Name in der Tabelle mit dem Inode erstellt, die Datei wird jedoch nicht verschoben.

Wenn Sie eine große Datei verschieben, würde dies lange dauern. Es ist effizienter, den Namenseintrag in einem neuen Verzeichnis zu erstellen und den alten Eintrag zu löschen. Sie können Dateien auch auf die gleiche Weise umbenennen.

In_content_1 all: [300x250] / dfp: [640x360]->

Der obere Teil der Hierarchie ist das Dateisystem selbst. Innerhalb des Dateisystems befinden sich die Dateinamen. Die Dateinamen sind mit den Inodes verknüpft. Die Inodes sind mit den physischen Daten verknüpft.

Was sind Inodes unter Linux?

Ein Inode ist eine Datenstruktur. Es definiert eine Datei oder ein Verzeichnis im Dateisystem und wird im Verzeichniseintrag gespeichert. Inodes zeigen auf Blöcke, aus denen eine Datei besteht. Der Inode enthält alle Verwaltungsdaten, die zum Lesen einer Datei erforderlich sind. Die Metadaten jeder Datei wird in Inodes in einer Tabellenstruktur gespeichert.

Wenn Sie ein Programm verwenden, das auf eine Datei mit Namen verweist, sucht das System in der Verzeichniseintragsdatei, in der es vorhanden ist den entsprechenden Inode hochziehen. Dadurch erhält Ihr System die Dateidaten und Informationen, die es zum Ausführen von Prozessen oder Vorgängen benötigt.

Inodes befinden sich normalerweise in der Nähe der Beginn einer Partition. Sie speichern alle mit einer Datei verknüpften Informationen mit Ausnahme des Dateinamens und der tatsächlichen Daten. Alle Dateien in einem Linux-Verzeichnis haben einen Dateinamen und eine Inode-Nummer. Benutzer können die Metadaten für eine Datei abrufen, indem sie auf die Inode-Nummer verweisen.

Dateinamen und Inode-Nummern werden in einem separaten Index gespeichert und mit dem Inode verknüpft. Sie können eine Verknüpfung zu den Metadaten herstellen, die die Datei darstellen. Es ist möglich, mehrere Dateinamen zu haben, die mit einem Datenelement oder Inode verknüpft sind, wie Sie in der Abbildung unten sehen können.

Was ist die Inode-Nummer?

Jedem Inode in der Linux-Struktur ist eine eindeutige Nummer zugeordnet. Es wird auch als Indexnummer bezeichnet und weist die folgenden Attribute auf:

  • Größe
  • Eigentümer
  • Datum / Uhrzeit
  • Berechtigungen und Zugriffskontrolle
  • Speicherort auf der Festplatte
  • Dateitypen
  • Anzahl der Links
  • Zusätzliche Metadaten zur Datei
  • Verwenden Sie den folgenden Befehl, um die Liste der Inode-Nummern zu überprüfen:

    ls -i

    Der folgende Screenshot zeigt ein Verzeichnis mit Inode-Nummern werden in der linken Spalte angezeigt.

    Wie funktionieren Inodes?

    Wenn Sie eine neue Datei erstellen, werden ihr ein Dateiname und eine Inode-Nummer zugewiesen. Beide werden als Einträge in einem Verzeichnis gespeichert. Wenn Sie den Befehl ls (ls -li) ausführen, wird eine Liste der Dateinamen und Inode-Nummern angezeigt, die in einem Verzeichnis gespeichert sind.

    Verwenden Sie den folgenden Befehl, um Inode-Informationen aufzulisten für jedes Dateisystem.

    df -hi

    Wie viele Inodes verwenden Sie?

    Ein Weg zu Wenn in einem Dateisystem nicht mehr genügend Speicherplatz vorhanden ist, müssen alle Inodes aufgebraucht werden. Selbst wenn Sie genügend freien Speicherplatz auf Ihrer Festplatte haben, können Sie keine neuen Dateien erstellen.

    Die Verwendung aller Inodes kann auch dazu führen, dass Ihr System plötzlich stoppt. Geben Sie den folgenden Befehl ein, um eine Liste mit Statistiken zur Inode-Nutzung anzuzeigen, z. B. verwendet, frei und prozentual verwendet.

    sudo df -ih

    Zusätzliche Verwendung von Inodes

    Die Funktionsweise von Inodes unter Linux macht es unmöglich, widersprüchliche Inode-Nummern zu haben. Es ist nicht möglich, eine feste Verbindung zwischen verschiedenen Dateisystemen herzustellen. Sie können jedoch Softlinks über verschiedene Dateisysteme hinweg verwenden. Sie können die Originaldateien löschen und die Daten weiterhin über einen festen Link verfügbar machen.

    Wenn Sie eine Datei löschen, müssen Sie lediglich einen der Namen entfernen, die auf eine bestimmte Inode-Nummer verweisen. Die Daten bleiben erhalten, bis Sie alle Namen löschen, die derselben Inode-Nummer zugeordnet sind. Linux-Systeme werden zum großen Teil aktualisiert, ohne dass ein Neustart des Systems erforderlich ist, da Inodes funktionieren.

    Ein Prozess kann eine Bibliotheksdatei gleichzeitig verwenden. Ein anderer Prozess ersetzt dieselbe Datei durch eine neuere aktualisierte Version und erstellt einen neuen Inode. Der laufende Prozess verwendet weiterhin die alte Datei. Wenn Sie das nächste Mal denselben Prozess verwenden, wird die neue Version verwendet.

    Benutzer interagieren nicht direkt mit Inodes, stellen jedoch eine grundlegende Komponente der Linux-Dateistrukturen dar.

    Zusammenhängende Posts:


    29.02.2020