Bei Inodes handelt es sich um eine Ver­wal­tungs­struk­tur von Da­tei­sys­te­men unixoider Be­triebs­sys­te­me. Inodes stehen in diesem Zu­sam­men­hang für Da­ten­köp­fe in Inode-Listen oder ähnlichen Da­ten­struk­tu­ren, die Metadaten zu ge­spei­cher­ten Dateien enthalten. Bei diesen Metadaten handelt es sich u. a. um In­for­ma­tio­nen wie Zu­griffs­rech­te, Spei­cher­ort, Gruppe, Be­nut­zer­num­mer oder Zeit­punk­te von Än­de­run­gen und Zugriffen.

Was ist eine Inode?

Inode steht für „index node“. Dabei handelt es sich um eine Form der Da­tei­ver­wal­tung, die seit Ein­füh­rung des Unix-Be­triebs­sys­tems und darauf ba­sie­ren­der Systeme wie Linux oder macOS eine wichtige Rolle spielt. Die Haupt­funk­ti­on von Inodes für Da­tei­sys­te­me besteht im Re­fe­ren­zie­ren, Verwalten und Aus­fin­dig­ma­chen be­stimm­ter Dateien im System durch ein­deu­ti­ge und un­ver­wech­sel­ba­re Inode-Nummern. Als de­fi­nier­te Da­ten­struk­tu­ren be­schrei­ben und verwalten Inodes spe­zi­fi­sche Dateien anhand von Metadaten. Um welche Metadaten es sich dabei handelt, hängt vom je­wei­li­gen Da­tei­sys­tem ab.

Obwohl sie keine In­for­ma­tio­nen zum Da­tei­na­men selbst enthalten, umfassen Inodes in der Regel folgende In­for­ma­tio­nen zu Dateien und Da­tei­blö­cken :

  • Typ und Zu­griffs­rech­te
  • Anzahl der Hardlinks
  • Be­nut­zer­num­mer (UID)
  • Grup­pen­num­mer (GID) oder GUI (GruppenID)
  • Größe der Datei in Bytes
  • Datum der letzten Ver­än­de­rung (mtime)
  • Datum der letzten Sta­tus­än­de­rung (ctime)
  • Datum des letzten Zugriffs (atime)
  • Adresse von Da­ten­blö­cken
  • Adresse des In­di­rek­ti­ons­blocks
  • Anzahl der Links
  • Ver­si­ons­num­mer
Managed Database Services
Da­ten­ban­ken – Auf´s We­sent­li­che kon­zen­trie­ren
  • IONOS Cloud-Partner: Die Experten für Ihren Datenbank-Betrieb
  • Flexibel: Maß­ge­schnei­der­te Datenbank-Lösungen ganz auf Ihre Be­dürf­nis­se
  • Re­chen­zen­tren in Deutsch­land: Ihre Daten sind sicher

Wie funk­tio­nie­ren Inodes?

Unix-Systeme verwalten die Sektoren von Fest­plat­ten­par­ti­tio­nen nicht durch Clus­te­ring, sondern in Form von Da­ten­blö­cken. Hierbei werden im Gegensatz zu DOS-Systemen statt FAT-Tabellen Inodes zum Verwalten und Re­fe­ren­zie­ren der Ver­zeich­nis­da­ten angelegt. Werden Daten auf der Fest­plat­te in festen Da­ten­blö­cken ge­spei­chert, kann es schnell vorkommen, dass eine Datei die Spei­cher­grö­ße des Blocks über­schrei­tet. Das System findet dann einen weiteren ver­füg­ba­ren Block, um den Rest der Datei zu speichern. Genau hier kommen Inodes ins Spiel.

Inodes sorgen dafür, dass sich im System ge­spei­cher­te Daten anhand von Referenz- und Ver­zeich­nis­da­ten und ihren Inodes samt ein­zig­ar­ti­ger Inode-Nummer finden lassen. Ein großer Vorteil ist hierbei, dass sie nicht vom Da­tei­na­men abhängen. Wird eine Datei kopiert und umbenannt, lässt sich diese pro­blem­los über dieselbe Inode-Nummer finden wie die Ori­gi­nal­da­tei. Das ist bei Hardlinks der Fall, die Nut­ze­rin­nen und Nutzer mit dem Linux-ln-Befehl erstellen. Diese Form der internen Buch­füh­rung bietet den Vorteil, dass Inodes sowohl auf Ori­gi­nal­da­tei­en als auch zu­ge­hö­ri­ge Backups verweisen, ohne zu­sätz­li­chen Speicher zu belegen.

Da Inodes je nach System fest angelegt werden, kann es dazu kommen, dass eine Datei die Größe der ver­füg­ba­ren Inodes über­schrei­tet. In diesem Fall verweist die Original-Inode auf eine weitere Inode, auch In­di­rek­ti­ons­block genannt, die den Rest der Metadaten enthält.

Hinweis

Da Sie den Umfang der Inodes je nach System von Anfang an festlegen, können die ver­füg­ba­ren Inodes für eine große Zahl an Dateien unter Umständen nicht reichen. In diesem Fall muss das Da­tei­sys­tem mit einer größeren Anzahl an Inodes neu struk­tu­riert werden.

Wo kommen Inodes zum Einsatz?

Inodes dienen zum Verwalten und Struk­tu­rie­ren von Da­tei­sys­te­men und finden sowohl in privaten Linux-Systemen als auch in Managend-Service-Lösungen Anwendung. Nut­ze­rin­nen und Nutzer sowie Un­ter­neh­men, die Cloud-Lösungen für Server mit unixoiden Be­triebs­sys­te­men suchen, können somit auf Inodes-Da­ten­struk­tu­ren zu­rück­grei­fen. Dabei kann es sich wie bei den meisten Cloud-Diensten je nach in­di­vi­du­el­lem Bedarf um eine Public Cloud oder um eine Private Cloud handeln.

Welche Da­tei­sys­te­me un­ter­stüt­zen Inodes?

Alle unix­ar­ti­gen Be­triebs­sys­te­me wie Linux oder macOS verwenden Inodes. Je nach un­ter­stütz­tem Da­tei­sys­tem kann sich die Struktur und der Aufbau von Inodes jedoch un­ter­schei­den. So kommen sie in ext2/ext3/ext4-Systemen in Form von Inode-Listen bzw. -Tabellen als be­schrei­ben­de Da­ten­köp­fe zum Einsatz. Die Inode-Liste wird hier bereits beim Anlegen des Systems eindeutig erstellt und lässt sich nach­träg­lich nicht ändern. Zudem belegen ext4-Inodes mit 256 Bytes festen Spei­cher­platz, der sich nicht mehr an­der­wei­tig nutzen lässt. Eine Inode be­schreibt in diesen Da­ten­sys­te­men jeweils eine Datei bzw. ein Ver­zeich­nis im System anhand der zu­ge­hö­ri­gen Metadaten.

Dem gegenüber stehen kom­ple­xe­re Da­tei­sys­te­me wie xfs oder btrfs , in denen Inodes erst erzeugt werden, wenn sie zum Aus­fin­dig­ma­chen von Dateien benötigt werden. In diesem Fall kommen keine Listen oder Tabellen mit Inodes zum Einsatz. Weitere Un­ter­schie­de in der Funk­ti­ons­wei­se finden sich zudem bei Inodes auf Fest­plat­ten (Disk Inode) und Inodes, die zur Be­ar­bei­tung des Linux-Speichers dienen (In-Core-Inode).

Wichtige Inode-Befehle im Überblick

Da es für die ver­füg­ba­ren Inodes je nach Da­tei­sys­tem ein Limit gibt, sollten Sie wissen, wie sich die belegten Inodes bzw. die von Inodes belegten Stellen im System anzeigen lassen. Das ist etwa dann er­for­der­lich, wenn nicht mehr genug Inodes für weitere Dateien zur Verfügung stehen.

Befehl zum Anzeigen belegter Stellen im Da­tei­sys­tem

Möchten Sie sich anzeigen lassen, welche Stellen von Inodes im Da­tei­sys­tem belegt werden, nutzen Sie diesen Befehl:

~ find /home /tmp -xdev -printf ´%h \n´ | sort | uniq -c | sort -k 1 -nr | head -n 20

Befehl zur Übersicht der aktuellen Inode-Belegung

Um sich alle aktuell belegten Inodes im System anzeigen zu lassen, verwenden Sie:

df -ih

Eine Übersicht zur Inode-Nutzung inklusive zu­ge­hö­ri­gem Da­tei­sys­tem, der Ge­samt­zahl an Inodes, der aktuellen Belegung und den nicht belegten Inodes bietet der Befehl:

df -i

Befehl zur Anzeige spe­zi­fi­scher Inodes-Nummer

Um sich die spe­zi­fi­sche Inodes-Nummer einer Datei anzeigen zu lassen, verwenden Sie diesen Befehl:

ls -i

Befehl zur Anzeige aller Dateien eines Inodes

Möchten Sie wissen, welche Dateien (inklusive Ori­gi­nal­da­tei­en, Da­tei­ko­pien oder Backups) ein Inode re­fe­ren­ziert, nutzen Sie:

-inum

Tipps bei hoher Aus­las­tung der Inodes

Nicht immer bedeutet eine hohe Aus­las­tung von Inodes, dass sich Ihre Spei­cher­ka­pa­zi­tä­ten dem Ende zuneigen. Oft lässt sich eine erhöhte Inodes-Nutzung auch auf über­flüs­si­ge kleine Daten wie temporäre TMP-Dateien, Caches oder Sessions zu­rück­füh­ren. Das Problem lässt sich meist lösen, indem Sie alle Dateien, die älter als 14 Tage sind, au­to­ma­tisch löschen. Dazu führen Sie einen Cronjob mit folgendem Befehl aus:

03 \*\*\ */usr/bin/find /path/to/files/\* -type f – mtime +14 -delete \> /dev/null 2\>&1

Was passiert bei zu wenig Inodes?

Sollten nicht mehr genügend Inodes für weitere Dateien zur Verfügung stehen, kann sich das unter Umständen durch folgende Effekte bemerkbar machen:

  • An­wen­dun­gen stürzen ab
  • Daten gehen verloren
  • Un­ge­plan­ter Neustart
  • Prozesse stürzen ab und starten nicht neu
  • Geplante Prozesse starten nicht au­to­ma­tisch

Sollte die Inode-Kapazität tat­säch­lich bei 100 Prozent liegen, empfiehlt es sich, belegten Speicher frei­zu­ge­ben. Al­ter­na­tiv können Sie in einem relativ auf­wen­di­gen Prozess das Da­tei­sys­tem neu­struk­tu­rie­ren und so die Höchst­zahl der Inodes erweitern.

Zum Hauptmenü