Wie funktionieren Linux-Inodes?
Wenn Sie Linux schon lange genug verwenden, werden Sie den Begriff „Inodes“ kennen. Es ist etwas, das gelegentlich auftritt, aber keinen Einfluss darauf hat, was Sie tun. Hier erklären wir, was Inodes sind und wie sie funktionieren.
Was sind Inodes?
In einer Bibliothek sind alle Bücher nach Genre, Autorenname oder Altersgruppe des Publikums geordnet. Wenn Sie einen Thriller von „Bobby Daniels“ finden möchten, gehen Sie direkt zum Thriller-Bereich und beginnen Sie mit der Suche nach Autorennamen, die mit „B“ beginnen. Genau wie eine Bibliothek sind alle Dateien in einem Linux-System so organisiert, dass sie effizient abgerufen und genutzt werden können. Inode ist eine Einheit, die bei der Anordnung von Dateien innerhalb eines Linux-Systems hilft.
Was sind Dateimetadaten?
Nehmen wir an, wir haben eine Datei namens „sample.txt“, die die Daten „hello“ enthält.
Diese Datei enthält einige für sie relevante Daten und Informationen wie Dateigröße, Berechtigungen, Benutzer- und Gruppeneigentum, Zeitstempel für Erstellung/Zugriff/Änderung, Anzahl der Links usw. Alle diese Informationen werden gemeinsam als Dateimetadaten bezeichnet.
Was sind Dateisysteme?
Auf einem Speichergerät wie einer Festplatte wird eine Partition als Dateisystem formatiert, bevor sie zur Dateispeicherung verwendet wird. Ein Dateisystem ist der Bibliothekar für die Festplatte. Formal handelt es sich um eine Reihe von Datenstrukturen und Algorithmen, die zusammenarbeiten, um Dateien methodisch auf der Partition zu speichern.
Partitionen auf Linux-Systemen werden häufig mit EXT4 formatiert. Andere Dateisysteme wie B-Tree File System (BTRFS), Reiser File System, ZFS usw. stehen ebenfalls zur Verwendung zur Verfügung.
Sie alle zusammenbinden
Inode ist eine Datenstruktur auf Ext4, die alle Metadaten für eine Datei enthält.
Natürlich gäbe es in einem Dateisystem zahlreiche Dateien. Wie Sie es erraten haben, hätte jede Datei ihren eigenen Inode. Um die Inodes eindeutig zu identifizieren, ist jeder Inode nummeriert.
Wie würde die Inode-Nummerierung aussehen?
Inode-Nummern in einem Dateisystem beginnen bei 1. Die ersten zehn Inodes sind für die Systemnutzung reserviert. Die Metadaten der Benutzerdateien werden von Inode 11 gespeichert. Alle Inodes sind übersichtlich in einer Inode-Tabelle gestapelt.
Ein Eintrag in der Inode-Tabelle wäre 256 Byte groß. Für eine Datei organisiert Linux alle Metadaten intelligent innerhalb von 256 Bytes! Darüber hinaus würde ein Inode für eine Datei auch Informationen darüber enthalten, wo sich die Daten der Datei im Dateisystem befinden. Denken Sie daran – nur die Metadaten der Datei werden im Inode gespeichert.
Die Gesamtzahl der Inodes in einem Dateisystem hängt vom verfügbaren Speicherplatz und der Anzahl der Dateien ab, die auf der Partition gespeichert werden können.
Wie werden Inodes zugewiesen und freigegeben?
Wenn der Benutzer Dateien zu einem frisch formatierten Dateisystem hinzufügt, werden Inodes ab 11 für die Speicherung von Dateimetadaten zugewiesen.
Es gibt eine weitere Datenstruktur namens „Inode Bitmap“, um den Zuordnungsstatus eines Inodes zu verfolgen. Es handelt sich um eine Ansammlung von Bits, die als Karte fungiert.
Betrachten wir acht Bits in der Inode-Bitmap, um den Zuordnungsstatus der Inodes 11 bis 18 anzugeben, wie in der folgenden Tabelle gezeigt. Ein Wert von 1 in der Bitmap bedeutet, dass der Inode zugewiesen ist, dh zum Speichern der Metadaten für eine Datei verwendet wird. Ein Wert von 0 in der Bitmap bedeutet, dass der Inode derzeit nicht verwendet wird. Hier können wir sehen, dass Inode 17 verwendet wird.
Falls die Datei, deren Metadaten sich in Inode 17 befinden, gelöscht wird, würde ihr entsprechender Bitmap-Status 0 werden, was anzeigt, dass sie von einer anderen Datei verwendet werden kann.
Wie kann ich die Inode-Nummer für eine Datei anzeigen?
Es gibt zwei Möglichkeiten, dies zu tun.
Der erste ist die Verwendung des Befehls ls mit dem Schalter –i, gefolgt vom Namen einer Datei. Das erste Feld in der Ausgabe ist die Inode-Nummer mit den Metadaten „sample.txt“.
Die gleichen Informationen können mit dem Befehl stat gefolgt vom Dateinamen abgerufen werden.
Um die Gesamtzahl der für eine Partition verfügbaren Inodes anzuzeigen, kann der Befehl df mit dem Schalter -i verwendet werden.
In der Partition „/dev/sda4“ stehen 404754480 Inodes zur Verwendung zur Verfügung, von denen nur 359044 Inodes verwendet werden.
Abschluss
Naturgemäß stapelt die Inode-Tabelle die Metadaten aller Dateien sorgfältig in Inodes, zusammen mit Informationen über den Speicherort der Dateidaten. Alles, was wir über Linux-Inodes besprochen haben, ist nur die Spitze des Eisbergs. Weitere Informationen zu seinem Innenleben finden Sie hier Das Verknüpfung.
Schreibe einen Kommentar