Wie kann ich eine EXT4-Partition mit einer besonders großen Anzahl von Inodes erstellen?

15

Über Inodes

In Ubuntu ist jede Datei und jedes Verzeichnis ein sogenanntes inode. Mit können df -iSie die Anzahl der verwendeten und für alle gemounteten Dateisysteme verfügbaren Inodes überprüfen.

Frage

Wenn Sie eine neue EXT4-Partition erstellen, wird die Standardanzahl von Inodes verwendet, die unter normalen Bedingungen ausreichen sollte. Wie müssen Sie jedoch eine neue EXT4-Partition mit einer besonders großen Anzahl von Inodes erstellen, wenn Sie ein System ausführen, das Millionen kleiner Dateien erzeugt? Was ist das Maximum?

Bemerkungen

  • Sie können die Anzahl der verfügbaren Inodes NICHT ändern, nachdem die EXT4-Partition erstellt wurde
bzero
quelle
@Rinzwind Das ist nicht die gleiche Frage, da nur gefragt wird, wie die große Anzahl kleiner Dateien zu finden ist. Es wird nicht erklärt, wie eine neue EXT4-Partition mit einer besonders großen Anzahl von Inodes formatiert wird. Ich werde meine Frage erneut öffnen.
bzero
Wie kann ich das oberste Banner deaktivieren, das besagt, dass diese Frage möglicherweise bereits beantwortet wurde? Das ist eine andere Frage.
bzero

Antworten:

12

Wenn Sie mkfs -t ext4 -N iNumberOfINodes /dev/XdYwhere iNumberOfINodesals 32-Bit-Zahl verwenden, beträgt die maximal mögliche Anzahl von Inodes in einem ext2 / 3/4-Dateisystem 2 ^ 32-1 oder 4.294.967.295 (~ 4 Milliarden).

Fabby
quelle
5
Gibt es bekannte Leistungsnachteile bei der Konfiguration von 4.000.000.000 iNodes?
bzero
1
eigentlich ist es nicht: mkfs.ext4: zu viele inodes (4294967296), spezifiziere <2 ^ 32
inodes
@ Dalore off-by-one Fehler: 2 ^ 32-1 ... Danke für die
Rückmeldung
Beachten Sie, dass ich das auch versucht habe, aber einen anderen Fehler erhalten habe, der nicht sehr aussagekräftig ist, welche Nummer akzeptiert wird.
Dalore
hast du 2 ^ 31 ausprobiert ???
Fabby
3

Siehe die Manpage für mkfs.ext4.

man mkfs.ext4

Mit der Option -Nkönnen Sie die Anzahl der im Dateisystem erstellten Inodes festlegen und mit der Option -Ikönnen Sie deren Größe erhöhen (damit sie mit erweiterten Attributen von Dateien umgehen können). Passen Sie es an Ihre Situation an, wenn Sie das Dateisystem erstellen.

ubfan1
quelle
Danke, also wird -N zum Zeitpunkt der Erstellung verwendet, wohingegen -l verwendet werden kann, um die Anzahl der Inodes anzupassen, nachdem die Partition erstellt wurde? Ich werde jetzt einen genaueren Blick auf die Manpages
werfen
Das -Iändert die Größe jedes Inodes in Bytes zum Zeitpunkt der Erstellung. Sie können die Anzahl der verfügbaren Dateien in vorhandenen Dateisystemen nicht erhöhen.
2.
"allows you to increase their size (so they can handle more files)"Das Erhöhen der Inode-Größe bedeutet nicht, dass Sie mehr Dateien verarbeiten können. Je größer das Verhältnis von Bytes zu Inode ist, desto weniger Inodes werden erstellt, sodass weniger Dateien verarbeitet werden können.
ZN13,
1

Es ist immer ein Kompromiss zwischen Inodes und Blockgröße. 32-Bit ist das Maximum, aber das tatsächliche Maximum hängt von der Größe Ihrer Festplatte / Ihres Dateisystems geteilt durch die Blockgröße ab. Jede Datei besteht aus mindestens einem Block. Sie können auch die Gruppengröße angeben, die bestimmt, wie viele Blöcke pro Inode vorhanden sind. (dh Bytes / Inode)

All dies bestimmt die Anzahl der Inodes, die Sie für eine bestimmte Festplattengröße und Blockgröße zuweisen können.

Es ist auch ein Kompromiss zwischen Leistung und Dateikapazität. Kleinere Blockgröße bedeutet, dass große Dateien fragmentiert werden und mehr E / A-Vorgänge zum Laden der Datei erforderlich sind.

Wenn Sie Anpassungen vornehmen möchten, müssen Sie dies nachlesen, sonst erhalten Sie ein Dateisystem, das für die gewünschten Anforderungen völlig ungeeignet ist.

Ellison Chan
quelle