Quel est le nombre maximal de fichiers qu'un système de fichiers peut contenir?

34

Étant donné la structure actuelle d'une entrée de répertoire sur un système de fichiers ext4 sur Ubuntu, quel est le nombre maximal de fichiers qu'un système de fichiers peut contenir?

Quelle est la méthode générale de calcul du nombre maximal de fichiers qu'un système de fichiers peut contenir?


la source

Réponses:

37

Ext4 a une limite théorique de 4 milliards de fichiers, limitée par la taille du numéro d'inode utilisée pour identifier chaque fichier (ext4 utilise des numéros d'inode 32 bits). Cependant, comme le dit John, ext4 alloue les tables d'inodes de manière statique, de sorte que la limite réelle est définie lors de la création du système de fichiers.

La commande df vous indique le nombre d'inodes libres sur votre système de fichiers:

$ df -i

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

Ext4 prend également en charge un nombre illimité de sous-répertoires par répertoire, bien que la limite par défaut soit de 64 000. Ceci est configurable - voir l' article ext4 sur Kernel Newbies .

Pour plus d'informations, voir Le nouveau système de fichiers ext4: état actuel et plans futurs du Symposium Linux 2007.


la source
9

Il n'y en a pas un en soi; ça dépend. Lorsque vous créez un système de fichiers ext4, vous décidez de la taille de la table inode , qui détermine à son tour le nombre total de répertoires ou de fichiers que le système de fichiers peut contenir simultanément.

John Feminella
la source
8
vous pouvez exécuter tune2fs -l /path/to/deviceet rechercher la valeur de comptage Inode pour trouver la limite d'un système de fichiers donné
1
Peut-on augmenter le nombre d'inodes? Autant que je sache, les inodes sont stockés sous forme de liste chaînée, ce qui revient à ajouter d'autres nœuds à la liste chaînée. Je suppose que la question se résume à quelle peut être la longueur maximale d’une liste chaînée?
4
Dans ext4, la table inode est allouée de manière statique lors de la création du système de fichiers. Le seul moyen de l'augmenter est de recréer le système de fichiers. Les options -N ou -i permettent de définir le nombre d'inodes créés.
1
Il est également intéressant de noter que les répertoires sont des fichiers et doivent être comptés comme tels.
dmckee
1
De même que les liens symboliques. Je ne sais pas si les périphériques, les FIFO et les sockets comptent ou non.
éphémère
1

Non pas Ubuntu, mais sous Redhat Linux, les commandes de base telles que find échouent avec une erreur «Trop d'arguments» lors de l'exécution sur un répertoire contenant 3 millions de fichiers. ls fonctionne correctement si aucun paramètre n'est inclus, mais échoue avec la même erreur dès que les paramètres de filtre sont ajoutés.

En supposant que la fiabilité de telles commandes de base est une exigence obligatoire, je dirais que 3 millions de fichiers, c'est trop.

John Hadaway
la source
3
Ce n'est cependant pas une restriction du système de fichiers.
user9517 prend en charge GoFundMonica
1
Bon point! Le FS peut le supporter, mais les outils auront de plus en plus de difficultés à le gérer.
Csaba Toth