Inode: Unterschied zwischen den Versionen

Aus Linupedia.org
Wechseln zu: Navigation, Suche
(Inode Zwischenspeicherung)
 
(finale Freigabe)
Zeile 1: Zeile 1:
{{UnderConstruction}}--[[Benutzer:Robi|Robi]] 22:18, 23. Okt 2006 (CEST)
 
  
 
== Inode ==
 
== Inode ==
 
=== kurze Erklärung von Inode ===
 
=== kurze Erklärung von Inode ===
Die Inode sind der Dreh- und Angelpunkt sämtlicher Dateizugriffe. Ein Großteil der Arbeit des Betriebssystems ist die Umsetzung von Dateinamen in die dazugehörige Inodes. Inodes werden innerhalb der Filesysteme in Inode-listen geführt. Inodes sind definierte Datenstrukturen, die eine Datei eindeutig beschreiben und verwalten können. Die restlichen Blöcke im Filesystem, die nicht von den Inodes belegt werden, sind die Blöcke für die Daten. In den einzelnen Filesystemen gibt es kleine Unterschiede im Aufbau der Inodestruktur. Auch ist die Verwaltung der Inode in den einzelnen Filesystemen zum Teil sehr verschieden. In einem ext2/ext3 Filesystem zum Beispiel wird bei der Erstellung die Struktur für alle Inodes im Filesystem erzeugt und im Filesystemkopf ist die genaue Anzahl der Inodes im Filesystem festgehalten. In einem Reiserfs werden die Inodes erst erzeugt wenn sie wirklich benötigt werden. Auch besteht ein Unterschied zwischen den Inodes die sich in den Filesystemen auf der Festplatte befinden(Disk Inode), und den Inodes die bei der Bearbeitung im Speicher von Linux (in-core inode) benutzt werden. Auf diese Unterschiede wird hier nicht näher eingegangen. Als Beispiel wird hier vereinfacht die Inode eines ext2-Filesystems beschieben.
+
Die Inode sind der Dreh- und Angelpunkt sämtlicher Dateizugriffe. Ein Großteil der Arbeit des Betriebssystems ist die Umsetzung von Dateinamen in die dazugehörige Inodes. Um die Funktion einiger Befehle zu verstehen, sollte man einen groben Eindruck davon haben, wie Inodes aufgebaut sind, und welche Informationen sie beinhalten.<br>
 +
Inodes werden innerhalb der Filesysteme in Inode-Listen geführt. Inodes sind definierte Datenstrukturen, die eine Datei eindeutig beschreiben und verwalten können. Die restlichen Blöcke im Filesystem, die nicht von den Inodes belegt werden, sind die Blöcke für die Daten. In den einzelnen Filesystemen gibt es kleine Unterschiede im Aufbau der Inodestruktur. Auch ist die Verwaltung der Inode in den einzelnen Filesystemen zum Teil sehr verschieden. In einem ext2/ext3 Filesystem zum Beispiel wird bei der Erstellung die Struktur für alle Inodes im Filesystem erzeugt und im Filesystemkopf ist die genaue Anzahl der Inodes im Filesystem festgehalten. In einem Reiserfs werden die Inodes erst erzeugt wenn sie wirklich benötigt werden. Auch besteht ein Unterschied zwischen den Inodes die sich in den Filesystemen auf der Festplatte befinden (Disk Inode), und den Inodes die bei der Bearbeitung im Speicher von Linux (in-core inode) benutzt werden. Auf diese Unterschiede wird hier nicht näher eingegangen. Als Beispiel wird hier etwas vereinfacht die Disk Inode eines ext2-Filesystems beschieben.
  
  
Zeile 26: Zeile 26:
 
| GUI || GruppenID der die Datei angehört
 
| GUI || GruppenID der die Datei angehört
 
|-
 
|-
| Links || Anzahl der Links (also Namen) dieser Datei
+
| Links || Anzahl der Links (also Anzahl der Namen) dieser Datei
 
|-
 
|-
 
| Flags || Wahlschalter für zusätzliche ext2 Eigenschaften
 
| Flags || Wahlschalter für zusätzliche ext2 Eigenschaften
Zeile 53: Zeile 53:
  
  
Das Bild soll die Struktur der Verknüpfung der Inode mit den Datenblöcken verdeutlichen.
+
Das Bild soll die Struktur der Verknüpfung der Inode in einem ext2 Filesystem mit den Datenblöcken verdeutlichen.
  
wird gerade erstellt [[Benutzer:Robi|Robi]] 22:18, 23. Okt 2006 (CEST)
+
[[Bild:Inode.gif]]
  
  
Zeile 61: Zeile 61:
 
== Inode bei der täglichen Arbeit mit Filesystemen ==
 
== Inode bei der täglichen Arbeit mit Filesystemen ==
  
* Bei '''ls''' wird mittels der Option '''-i''' wird zu den Dateinamen die Inodenummer mit ausgegeben.
+
* Bei '''ls''' wird mittels der Option '''-i''' zu den Dateinamen die Inodenummer mit ausgegeben.
 
* Die für den Benutzer wichtigen Informationen einer Inode und damit Datei, kann man mit dem Befehl '''stat DATEINAME''' ausgeben.
 
* Die für den Benutzer wichtigen Informationen einer Inode und damit Datei, kann man mit dem Befehl '''stat DATEINAME''' ausgeben.
* Die Gesamtanzahl der Inode und die belegten- und freien Inode kann man sich mit dem Befehl '''df -i''' anzeigen lassen.
+
* Die Gesamtanzahl der Inode in den Filesystemen und die belegten- und freien Inode kann man sich mit dem Befehl '''df -i''' anzeigen lassen.
 
* Sind in einem Filesystem keine Inode mehr frei, können keine Dateien mehr angelegt werden, auch wenn das Filesystem noch längst nicht voll ist. Dieses Problem könnte mit einigen Filesystemtypen in einem Filesystem mit sehr vielen sehr kleinen Dateien auftreten, wenn nicht schon bei der Erstellung des Filesystems extra eine hohe Anzahl von Inodes in Form von Optionen angegeben wurde. Bei einem ext2/ext3 Filesystem kann man das '''bytes-per-inode ratio''' mittels der Opition '''-i''' von '''mkfs.ext2''' bestimmen. Siehe dazu auch die Manpages der '''mkfs''' Befehle.
 
* Sind in einem Filesystem keine Inode mehr frei, können keine Dateien mehr angelegt werden, auch wenn das Filesystem noch längst nicht voll ist. Dieses Problem könnte mit einigen Filesystemtypen in einem Filesystem mit sehr vielen sehr kleinen Dateien auftreten, wenn nicht schon bei der Erstellung des Filesystems extra eine hohe Anzahl von Inodes in Form von Optionen angegeben wurde. Bei einem ext2/ext3 Filesystem kann man das '''bytes-per-inode ratio''' mittels der Opition '''-i''' von '''mkfs.ext2''' bestimmen. Siehe dazu auch die Manpages der '''mkfs''' Befehle.
 
* die Anzahl der Inode, die einzelne User oder Gruppen in Filesystemen belegen dürfen, kann mit [[filesystem quota]]s beschränkt werden.
 
* die Anzahl der Inode, die einzelne User oder Gruppen in Filesystemen belegen dürfen, kann mit [[filesystem quota]]s beschränkt werden.
  
  
== Weitere Informationen und Links ==
+
== Weiterführende Informationen und Links ==
 +
 
 +
http://www.nongnu.org/ext2-doc/ext2.html#INODE-BITMAP
  
  
Zeile 75: Zeile 77:
  
 
[[Benutzer:Robi|Robi]] 22:18, 23. Okt 2006 (CEST)
 
[[Benutzer:Robi|Robi]] 22:18, 23. Okt 2006 (CEST)
[[Category:Bootmanager]]
+
[[Category:Partitionen]]

Version vom 24. Oktober 2006, 11:22 Uhr

Inode

kurze Erklärung von Inode

Die Inode sind der Dreh- und Angelpunkt sämtlicher Dateizugriffe. Ein Großteil der Arbeit des Betriebssystems ist die Umsetzung von Dateinamen in die dazugehörige Inodes. Um die Funktion einiger Befehle zu verstehen, sollte man einen groben Eindruck davon haben, wie Inodes aufgebaut sind, und welche Informationen sie beinhalten.
Inodes werden innerhalb der Filesysteme in Inode-Listen geführt. Inodes sind definierte Datenstrukturen, die eine Datei eindeutig beschreiben und verwalten können. Die restlichen Blöcke im Filesystem, die nicht von den Inodes belegt werden, sind die Blöcke für die Daten. In den einzelnen Filesystemen gibt es kleine Unterschiede im Aufbau der Inodestruktur. Auch ist die Verwaltung der Inode in den einzelnen Filesystemen zum Teil sehr verschieden. In einem ext2/ext3 Filesystem zum Beispiel wird bei der Erstellung die Struktur für alle Inodes im Filesystem erzeugt und im Filesystemkopf ist die genaue Anzahl der Inodes im Filesystem festgehalten. In einem Reiserfs werden die Inodes erst erzeugt wenn sie wirklich benötigt werden. Auch besteht ein Unterschied zwischen den Inodes die sich in den Filesystemen auf der Festplatte befinden (Disk Inode), und den Inodes die bei der Bearbeitung im Speicher von Linux (in-core inode) benutzt werden. Auf diese Unterschiede wird hier nicht näher eingegangen. Als Beispiel wird hier etwas vereinfacht die Disk Inode eines ext2-Filesystems beschieben.


Aufbau der Inode in ext2 Filesystemen

Der Prinzipielle Aufbau eines Inode im ext2 Filesystem besteht in folgender Liste

schemalischer Aufbau der ext2 Inode
Strukturelement Erklärung
Dateimodus definiert Dateitype und Zugriffsrechte
UID userID des Besitzers der Datei
Dateigröße in Byte
4 Zeitstempel letzter Zugriff, letzte Änderung, Inode Erstellung, letzte Löschung Inode
GUI GruppenID der die Datei angehört
Links Anzahl der Links (also Anzahl der Namen) dieser Datei
Flags Wahlschalter für zusätzliche ext2 Eigenschaften
Datenblockadressen Tabelle mit deren Inhalt die Addresse der Datenblöcke der Datei verwaltet werden
Versionsnummer wird nur beim Anhängen über NFS verwendet
ACL Verweise auf Zugriffskontrollisten
letztes Fragment Adresse des letzten allokierten Teilblocks
Zusätzliche Teilblocke Anzahl und Größe der zusätzliche benutzten Teilblocke


Aufbau und Funktion der Datenblockadressen

Die Tabelle der Datenblockadressen hat fünfzehn Einträge, jeder Eintrag zeigt auf einen Datenblock der die eigentlichen Daten der Datei enthält.

  • Die ersten 12 Einträge verweisen direkt auf die Datenblöcke
  • Der dreizehnte ist ein indirekter Verweis, er verweißt zwar auch nur auf einen einzigen Datenblock, doch in diesem kann wiederum auf 256 Datenblöcke verlinkt werden.
  • Der vierzehnte Eintrag ist ein doppelt indirekter Verweiß, mit seiner Hilfe könnten bis 256*256 Datenblöcke adressiert werden.
  • Der fünfzehnte Eintrag ist ein dreifach indirekter Verweiß, mit seiner Hilfe könnte bis 256*256*256 Datenblöcke adressiert werden.



Das Bild soll die Struktur der Verknüpfung der Inode in einem ext2 Filesystem mit den Datenblöcken verdeutlichen.

Inode.gif


Inode bei der täglichen Arbeit mit Filesystemen

  • Bei ls wird mittels der Option -i zu den Dateinamen die Inodenummer mit ausgegeben.
  • Die für den Benutzer wichtigen Informationen einer Inode und damit Datei, kann man mit dem Befehl stat DATEINAME ausgeben.
  • Die Gesamtanzahl der Inode in den Filesystemen und die belegten- und freien Inode kann man sich mit dem Befehl df -i anzeigen lassen.
  • Sind in einem Filesystem keine Inode mehr frei, können keine Dateien mehr angelegt werden, auch wenn das Filesystem noch längst nicht voll ist. Dieses Problem könnte mit einigen Filesystemtypen in einem Filesystem mit sehr vielen sehr kleinen Dateien auftreten, wenn nicht schon bei der Erstellung des Filesystems extra eine hohe Anzahl von Inodes in Form von Optionen angegeben wurde. Bei einem ext2/ext3 Filesystem kann man das bytes-per-inode ratio mittels der Opition -i von mkfs.ext2 bestimmen. Siehe dazu auch die Manpages der mkfs Befehle.
  • die Anzahl der Inode, die einzelne User oder Gruppen in Filesystemen belegen dürfen, kann mit filesystem quotas beschränkt werden.


Weiterführende Informationen und Links

http://www.nongnu.org/ext2-doc/ext2.html#INODE-BITMAP



Robi 22:18, 23. Okt 2006 (CEST)