Compte tenu de 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?
Ext4 a une limite théorique de 4 milliards de fichiers, qui est limitée par la taille du numéro d'inode qu'il utilise pour identifier chaque fichier (ext4 utilise des numéros d'inode 32 bits). Cependant, comme le dit John, ext4 alloue des tables d'inodes statiquement, de sorte que la limite réelle est définie lors de la création du système de fichiers.
La commande df vous montre un 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 qu'il puisse par défaut être limité à 64 000. Ceci est configurable - voir 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.
Il n'y en a pas, 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 à son tour régit le nombre total de répertoires ou de fichiers que le système de fichiers peut contenir simultanément.
Pas Ubuntu, mais sur Redhat Linux, les commandes de base telles que find échouent avec une "erreur de nombre trop élevé d'arguments" lorsqu'elles sont exécutées sur un répertoire contenant 3 millions de fichiers. ls s'exécute 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 ces commandes de base est une exigence obligatoire, je dirais que 3 millions de fichiers, c'est trop.