¿Cuál es el número máximo de archivos que puede contener un sistema de archivos?

34

Dada la estructura actual de una entrada de directorio en un sistema de archivos ext4 en Ubuntu, ¿cuál es la cantidad máxima de archivos que puede contener un sistema de archivos?

¿Cuál es el método general para calcular la cantidad máxima de archivos que puede contener un sistema de archivos?


fuente

Respuestas:

37

Ext4 tiene un límite teórico de 4 mil millones de archivos, que está restringido por el tamaño del número de inodo que usa para identificar cada archivo (ext4 usa números de inodo de 32 bits). Sin embargo, como dice John, ext4 asigna tablas de inodo estáticamente, por lo que el límite real se establece cuando se crea el sistema de archivos.

El comando df le muestra un recuento de inodos libres en su sistema de archivos:

$ df -i

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

Ext4 también admite un número ilimitado de subdirectorios por directorio, aunque puede tener un límite predeterminado de 64,000. Esto es configurable; vea el artículo ext4 en Kernel Newbies .

Para obtener más información, consulte El nuevo sistema de archivos ext4: estado actual y planes futuros del Simposio de Linux 2007.


fuente
9

No hay uno, per se; depende. Cuando crea un sistema de archivos ext4, usted decide el tamaño de la tabla de inodo , que a su vez gobierna el número total de directorios o archivos que el sistema de archivos puede contener a la vez.

John Feminella
fuente
8
puede ejecutar tune2fs -l /path/to/devicey buscar el valor de recuento de Inode para encontrar cuál es el límite para un sistema de archivos determinado
1
¿Podemos aumentar el recuento de Inode? Hasta donde yo sé, los inodes se almacenan como una lista vinculada, por lo que es como agregar más nodos a la lista vinculada. Supongo que la pregunta se reduce a cuál puede ser la longitud máxima de una lista vinculada.
44
En ext4, la tabla de inodo se asigna estáticamente cuando se crea el sistema de archivos. La única forma de aumentarlo es recrear el sistema de archivos. Las opciones -N o -i se utilizan para establecer el número de inodos creados.
1
También vale la pena señalar que los directorios son archivos y deben contarse como tales.
dmckee
1
Como son los enlaces simbólicos. No estoy seguro de si los dispositivos, FIFO y sockets cuentan o no.
Ephemient
1

No Ubuntu, pero en Redhat Linux, los comandos básicos como find fallan con un 'Error de demasiados argumentos' cuando se ejecuta contra un directorio que contiene 3 millones de archivos. ls se ejecuta correctamente si no se incluyen parámetros, pero falla con el mismo error tan pronto como se agregan los parámetros del filtro.

Asumir que la confiabilidad de tales comandos básicos es un requisito obligatorio, sugeriría que 3 millones de archivos sean demasiados.

John Hadaway
fuente
3
Sin embargo, eso no es una restricción del sistema de archivos.
user9517 es compatible con GoFundMonica el
1
¡Buen punto! El FS puede admitirlo, pero las herramientas tendrán cada vez más dificultades para manejarlo.
Csaba Toth