Frage Wie viele Dateien darf ein Dateisystem maximal enthalten?


Angesichts der aktuellen Struktur eines Verzeichniseintrags auf einem ext4-Dateisystem unter Ubuntu: Wie viele Dateien darf ein Dateisystem maximal enthalten?

Wie lautet die allgemeine Methode zur Berechnung der maximalen Anzahl von Dateien, die ein Dateisystem enthalten kann?


30
2018-01-20 05:22


Ursprung




Antworten:


Ext4 hat eine theoretische Grenze von 4 Milliarden Dateien, die durch die Größe der Inode-Nummer beschränkt ist, die es verwendet, um jede Datei zu identifizieren (ext4 verwendet 32-Bit-Inode-Nummern). Wie John jedoch sagt, weist ext4 Inode-Tabellen statisch zu, sodass das tatsächliche Limit beim Erstellen des Dateisystems festgelegt wird.

Der Befehl df zeigt Ihnen eine Anzahl von freien Inodes in Ihrem Dateisystem an:

$ df -i

Filesystem        iused     ifree  %iused  Mounted on
/dev/disk0s3   55253386  66810480    45%   /
/dev/disk1s3   55258045  66805821    45%   /Volumes/Clone

Ext4 unterstützt auch eine unbegrenzte Anzahl von Unterverzeichnissen pro Verzeichnis, obwohl es auf ein Limit von 64.000 voreingestellt ist. Dies ist konfigurierbar - siehe die ext4 Artikel bei Kernel Newbies.

Weitere Informationen finden Sie unter Das neue ext4-Dateisystem: aktueller Status und zukünftige Pläne vom Linux-Symposium 2007.


35
2018-01-20 07:00





Es gibt keins an sich; es hängt davon ab, ob. Wenn Sie ein ext4-Dateisystem erstellen, bestimmen Sie die Größe des Inode-Tabelle, die wiederum die Gesamtzahl der Verzeichnisse oder Dateien regelt, die das Dateisystem gleichzeitig speichern kann.


9
2018-01-20 05:32



Du kannst rennen tune2fs -l /path/to/device und suchen Sie nach dem Inode-Zählwert, um herauszufinden, welches Limit für ein bestimmtes Dateisystem gilt
Können wir die Inode-Anzahl erhöhen? Soweit ich weiß, werden Inodes als eine verkettete Liste gespeichert, es ist also so, als würde man der verketteten Liste weitere Knoten hinzufügen. Ich denke, die Frage läuft auf die maximale Länge einer verknüpften Liste hinaus.
In ext4 wird die Inode-Tabelle beim Erstellen des Dateisystems statisch zugewiesen. Die einzige Möglichkeit, es zu erhöhen, besteht darin, das Dateisystem neu zu erstellen. Mit den Optionen -N oder -i wird die Anzahl der erstellten Inodes festgelegt.
Es ist auch erwähnenswert, dass Verzeichnisse Dateien sind und als solche gezählt werden müssen. - dmckee
So wie Symlinks. Ich bin mir nicht sicher, ob Geräte, FIFOs und Steckdosen zählen oder nicht. - ephemient


Nicht Ubuntu, aber auf Redhat Linux Grundbefehle wie die Suche scheitern mit einem 'Too many arguments error', wenn sie gegen ein Verzeichnis mit 3 Millionen Dateien ausgeführt werden. ls wird erfolgreich ausgeführt, wenn keine Parameter enthalten sind, schlägt jedoch mit demselben Fehler fehl, sobald Filterparameter hinzugefügt werden.

Unter der Annahme, dass die Zuverlässigkeit solcher Basisbefehle eine zwingende Voraussetzung ist, würde ich vorschlagen, dass 3 Millionen Dateien zu viele sind.


0
2018-06-14 09:47



Das ist jedoch keine Dateisystembeschränkung. - Iain
Guter Punkt! Der FS kann es unterstützen, aber die Werkzeuge werden immer schwieriger zu bewältigen sein. - Csaba Toth