Wie viele Dateien kann ein Dateisystem maximal enthalten?

34

Wie viele Dateien kann ein Dateisystem angesichts der aktuellen Struktur eines Verzeichniseintrags in einem ext4-Dateisystem unter Ubuntu maximal enthalten?

Wie wird die maximale Anzahl von Dateien berechnet, die ein Dateisystem enthalten kann?


quelle

Antworten:

37

Ext4 hat ein theoretisches Limit von 4 Milliarden Dateien, das durch die Größe der Inode-Nummer begrenzt ist, die zur Identifizierung jeder Datei verwendet wird (ext4 verwendet 32-Bit-Inode-Nummern). Wie John jedoch sagt, ordnet ext4 Inode-Tabellen statisch zu, sodass das tatsächliche Limit festgelegt wird, wenn das Dateisystem erstellt wird.

Der Befehl df zeigt Ihnen die Anzahl der 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 außerdem eine unbegrenzte Anzahl von Unterverzeichnissen pro Verzeichnis, wobei die Standardeinstellung 64.000 sein kann. Dies ist konfigurierbar - siehe ext4-Artikel bei Kernel Newbies .

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


quelle
9

Es gibt keinen an sich; es hängt davon ab, ob. Wenn Sie ein ext4-Dateisystem erstellen, legen Sie die Größe der Inode-Tabelle fest , die wiederum die Gesamtzahl der Verzeichnisse oder Dateien bestimmt, die das Dateisystem gleichzeitig enthalten kann.

John Feminella
quelle
8
Sie können ausführen tune2fs -l /path/to/deviceund nach dem Inode-Zählwert suchen, um das Limit für ein bestimmtes Dateisystem zu ermitteln
1
Können wir die Anzahl der Inodes erhöhen? Soweit mir bekannt ist, werden Inodes als verknüpfte Liste gespeichert. Es ist also so, als würden der verknüpften Liste weitere Knoten hinzugefügt. Ich denke, die Frage läuft auf die maximale Länge einer verknüpften Liste hinaus.
4
In ext4 wird die Inode-Tabelle beim Erstellen des Dateisystems statisch zugeordnet. Die einzige Möglichkeit zur Erhöhung besteht darin, das Dateisystem neu zu erstellen. Mit den Optionen -N oder -i wird die Anzahl der erstellten Inodes festgelegt.
1
Es ist auch erwähnenswert, dass Verzeichnisse Dateien sind und als solche gezählt werden müssen.
dmckee
1
Wie Symlinks. Ich bin nicht sicher, ob Geräte, FIFOs und Sockets zählen oder nicht.
Ephemient
1

Nicht Ubuntu, aber unter Redhat Linux schlagen grundlegende Befehle wie find mit dem Fehler "Zu viele Argumente" fehl, wenn sie in einem 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 derartiger grundlegender Befehle eine zwingende Voraussetzung ist, würde ich vorschlagen, dass 3 Millionen Dateien zu viele sind.

John Hadaway
quelle
3
Dies ist jedoch keine Einschränkung des Dateisystems.
user9517 unterstützt GoFundMonica
1
Guter Punkt! Der FS mag es unterstützen, aber die Werkzeuge werden immer schwieriger damit umzugehen sein.
Csaba Toth