Wie viele Dateien kann ein Dateisystem bei der aktuellen Struktur eines Verzeichniseintrags in einem ext4-Dateisystem unter Ubuntu maximal enthalten?
Wie berechnet man allgemein die maximale Anzahl von Dateien, die ein Dateisystem enthalten kann?
Antwort1
Ext4 hat ein theoretisches Limit von 4 Milliarden Dateien, das durch die Größe der Inode-Nummer beschränkt ist, die zur Identifizierung jeder Datei verwendet wird (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 die Anzahl der freien Inodes auf Ihrem Dateisystem:
$ 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 die Standardgrenze 64.000 beträgt. Dies ist konfigurierbar – sieheext4-Artikel bei Kernel Newbies.
Weitere Informationen finden Sie unterDas neue ext4-Dateisystem: aktueller Status und Zukunftsplänevom Linux-Symposium 2007.
Antwort2
Es gibt nicht unbedingt eine; es kommt darauf an. Wenn Sie ein ext4-Dateisystem erstellen, entscheiden Sie über die Größe desInode-Tabelle, das wiederum die Gesamtzahl der Verzeichnisse oder Dateien bestimmt, die das Dateisystem gleichzeitig enthalten kann.
Antwort3
Nicht unter Ubuntu, aber unter Redhat Linux schlagen grundlegende Befehle wie „find“ mit der Fehlermeldung „Zu viele Argumente“ fehl, wenn sie für ein Verzeichnis mit 3 Millionen Dateien ausgeführt werden. „ls“ wird erfolgreich ausgeführt, wenn keine Parameter angegeben werden, schlägt jedoch mit der gleichen Fehlermeldung fehl, sobald Filterparameter hinzugefügt werden.
Unter der Annahme, dass die Zuverlässigkeit solcher grundlegenden Befehle eine zwingende Voraussetzung ist, würde ich sagen, dass 3 Millionen Dateien zu viel sind.