Heim > Artikel > Betrieb und Instandhaltung > Was ist ein Knoten unter Linux?
Unter Linux ist der I-Node eine 64 Byte lange Tabelle; der I-Node enthält Informationen über eine Datei, einschließlich Dateigröße, Dateieigentümer, Dateizugriffsberechtigungsmethode und ob es sich bei der Datei um eine normale Datei oder eine Verzeichnisdatei handelt Oder spezielle Dateien usw. Das wichtigste Element im I-Node ist die Festplattenadresstabelle.
Die Betriebsumgebung dieses Tutorials: Linux7.3-System, Dell G3-Computer.
i-Knoten ist eine 64 Byte lange Tabelle, die Informationen zu einer Datei enthält, einschließlich Dateigröße, Dateieigentümer, Dateizugriffsberechtigungsmethode und ob es sich bei der Datei um eine normale Datei, eine Verzeichnisdatei oder eine spezielle Datei handelt Dokumente usw.
Das Linux-Dateisystem ist das Herzstück des Linux-Systems und bietet eine hierarchische Struktur von Verzeichnissen und Dateien. Das Dateisystem unterteilt den Speicherplatz in Gruppen von 1024 Byte, sogenannte Blöcke (es gibt auch Blöcke von 512 Byte, wie z. B. SCOXENIX). Nummeriert von 0 bis zur maximalen Anzahl von Blöcken für die gesamte Festplatte.
Alle Blöcke können in vier Teile unterteilt werden, die nicht vom Dateisystem verwendet werden. Der private Block enthält viele Informationen, einschließlich der Festplattengröße die Größe der anderen beiden Teile des gesamten Blocks. Ab Block 2 befindet sich die I-Node-Tabelle, die I-Nodes enthält. Die Anzahl der Blöcke in der Tabelle ist variabel, worauf später noch eingegangen wird. Nach der I-Node-Tabelle befindet sich ein freier Speicherblock (Datenspeicherblock), der zum Speichern von Dateiinhalten verwendet werden kann.
Die logische Struktur und die physische Struktur einer Datei sind sehr unterschiedlich. Die logische Struktur ist die Datei, die der Benutzer sieht, nachdem er den Befehl cat eingegeben hat. Der Benutzer kann den Zeichenstrom abrufen, der den Dateiinhalt darstellt. Die physische Struktur gibt an, wie die Datei tatsächlich auf der Festplatte gespeichert wird. Benutzer gehen davon aus, dass es sich bei ihren Dateien um Grenzzeichenströme handelt, tatsächlich werden die Dateien jedoch möglicherweise nicht grenzwertig auf der Festplatte gespeichert. Dateien, die länger als einen Block sind, sind normalerweise auf der Festplatte verstreut. Wenn ein Benutzer jedoch auf eine Datei zugreift, entfernt das Linux-Dateisystem jeden Block in der richtigen Reihenfolge und stellt dem Benutzer die logische Struktur der Datei zur Verfügung.
Natürlich muss es irgendwo im Linux-System eine Tabelle geben, die dem Dateisystem sagt, wie es die physische Struktur in eine logische Struktur umwandeln soll. Dabei handelt es sich um den i-Knoten.
i-Knoten ist eine 64 Byte lange Tabelle, die Informationen zu einer Datei enthält, einschließlich Dateigröße, Dateieigentümer, Dateizugriffsberechtigungsmethode und ob es sich bei der Datei um eine normale Datei, eine Verzeichnisdatei oder eine spezielle Datei usw. handelt . . Das wichtigste Element im I-Node ist die Festplattenadresstabelle.
In dieser Tabelle sind 13 Blocknummern enthalten. Die ersten 10 Blocknummern sind die Speicheradressen der ersten 10 Blöcke der Datei. Diese 10 Blocknummern können die logische Struktur einer Datei angeben, die höchstens 10 Blöcke lang ist. Die Datei erhält die entsprechenden Blöcke in der Reihenfolge, in der die Blocknummern in der Plattenadresstabelle erscheinen. Was passiert, wenn die Datei länger als 10 Blöcke ist? Das 11. Element in der Festplattenadresstabelle gibt eine Blocknummer an, auf die diese Blocknummer verweist. Bisher erfüllt diese Methode Dateien, die länger als 266 Blöcke sind. 272384 Bytes). Wenn die Datei größer als 266 Blöcke ist, gibt Element 12 der Festplattenadresstabelle eine Blocknummer an. Der Block, auf den diese Blocknummer verweist, enthält 256 Blocknummern. Jede dieser 256 Blocknummern zeigt auf einen Block, und der Block enthält 256 Blocknummern, diese Blocknummern werden verwendet, um den Inhalt der Datei abzurufen. Die Indexadressierungsmethode von Element 13 in der Festplattenadresse ähnelt der von Element 12, außer dass es eine weitere Ebene des indirekten Index gibt.
Auf diese Weise beträgt die maximale Länge der Datei im Linux-System 16842762 Blöcke, was 17246988288 Bytes entspricht. Glücklicherweise hat das Linux-System eine praktischere Grenze für die maximale Länge der Datei hinzugefügt (im Allgemeinen 1 bis 2 MB). ), damit Benutzer nicht versehentlich eine Datei erstellen können, die alle Blöcke des gesamten Festplattenbereichs belegt.
inode
Wenn es um Inode geht, müssen wir zuerst die Gesamtstruktur der Festplatte vorstellen. Die Festplatte enthält mehrere Festplattenplatten. Jede Festplattenplatte verfügt über einen Magnetkopf (Kopf), der lesen und schreiben kann. Wenn dieser Kopf fixiert ist und sich die Festplattenplatte einmal dreht, folgt sie ist die Spur. Der Satz gleicher Titelnummern aller Platten auf der Festplatte wird als Zylinder bezeichnet. Jede Spur ist in viele Bereiche unterteilt, und jeder Bereich wird als Sektor bezeichnet. Ein Sektor ist die kleinste physikalische Speichergröße einer Festplatte. Die Speicherkapazität eines Sektors beträgt etwa 512 Byte (ungefähr 0,5 KB).
Nachdem wir die allgemeine Struktur der Festplatte kennengelernt haben, sprechen wir über die Partitionierung der Festplatte. Die kleinste Einheit für die Festplattenpartitionierung ist die magnetische Spalte. Nach Abschluss der Partitionierung wird sie natürlich formatiert. Bei der Formatierung unter Linux müssen Sie berücksichtigen, dass Block und Inode die kleinste Einheit sind, die auf der Festplatte aufgezeichnet werden kann. Daher beträgt die Größe normalerweise n*512 Byte.
Was ist also ein Inode? Block ist der Bereich, der den Inhalt der Datei aufzeichnet, und Inode zeichnet die Attribute der Datei und die Informationen auf, in welchem Block sie platziert ist. Daher belegt jede Datei einen Inode. Wenn das Linux-System eine Datei finden möchte, durchsucht es zunächst die Inode-Tabelle, um die Attribute der Datei und den Speicherort der Daten zu finden, und sucht dann nach dem Block, in dem die Daten gespeichert sind, um die Daten abzurufen. Die Anzahl der Inodes wurde zu Beginn festgelegt. Die Einstellungsmethode lautet normalerweise „Festplattengröße/eine Kapazität“. kann auf ca. 8K eingestellt werden. Wenn also eine 1-GB-Festplatte in 8K-Inodes unterteilt wird, sind es 131072 Inodes. Die Größe eines Inodes beträgt 128 Byte. Auf diese Weise können wir klar erkennen, dass eine Partition nach der Formatierung als Dateisystem grundsätzlich über zwei große Blöcke verfügt: die Inode-Tabelle und den Datenbereich, und einer wird zum Aufzeichnen verwendet Attributinformationen der Datei. Der mit der Datei gespeicherte Blockblock wird zum Aufzeichnen des Inhalts der Datei verwendet.
Nach dem Erstellen einer Datei werden gleichzeitig ein Inode und ein Block erstellt. Der Inode speichert die Attributinformationen der Datei, enthält jedoch nicht den Dateinamen und speichert den Zeiger auf die Adresse des Blocks, in dem sich die Datei befindet Die entsprechenden Daten werden lokalisiert. Der Block speichert die Daten der Datei. Jeder Block kann höchstens eine Datei speichern. Wenn ein Block nicht gespeichert werden kann, wird der nächste Block belegt.
Der Dateiname, die Dateiattribute und der Dateiinhalt von Dateien werden in Linux separat gespeichert: Der Dateiname wird im Verzeichniseintrag (d. h. dentry) gespeichert, und die Dateiattribute werden im Inode gespeichert. Unter normalen Umständen wird jeder Inode gespeichert belegt 128 Bit Speicherplatz. Dateiinhalte werden in Datenblöcken gespeichert.
Sie können mkfs.ext3 -b verwenden, um die Blockgröße festzulegen. Jeder Block kann bis zu eine Datei speichern. Daher sollte die Blockgrößeneinstellung im Allgemeinen auf den Anwendungseinstellungen unseres Servers basieren Bei einigen kleinen Dateien können Sie die Blockgröße verkleinern, um Platzverschwendung zu vermeiden. Beim Speichern großer Datenmengen müssen Sie die Blockgröße vergrößern, wodurch sich die Anzahl der Abrufvorgänge verringern kann Belastung durch Inodes.
Je größer der Block, desto weniger Inodes, was für Dateisysteme geeignet ist, die große Dateien speichern. Je kleiner der Block, desto mehr Inodes, die für Dateisysteme geeignet sind, die viele, aber kleine Dateien speichern.
Wenn das System ausgeführt wird, synchronisieren Inode und Block den Speicher und die Festplatte nach der Änderung. Der Inhalt, den wir mit ls -li auflisten, ist der temporäre Speicher im Speicher, sodass das abnormale Herunterfahren des Systems manchmal zu Blockaden führt Problem mit nicht synchronisiertem Inode.
Empfohlenes Lernen: Linux-Video-Tutorial
Das obige ist der detaillierte Inhalt vonWas ist ein Knoten unter Linux?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!