Какое максимальное количество файлов может содержать файловая система?

34

Учитывая текущую структуру записи каталога в файловой системе ext4 в Ubuntu, какое максимальное количество файлов может содержать файловая система?

Каков общий метод расчета максимального количества файлов, которое может содержать файловая система?


источник

Ответы:

37

Ext4 имеет теоретический предел в 4 миллиарда файлов, который ограничен размером номера инода, который он использует для идентификации каждого файла (ext4 использует 32-битные номера инода). Однако, как говорит Джон, ext4 статически распределяет таблицы инодов, поэтому фактический предел устанавливается при создании файловой системы.

Команда df показывает количество свободных инодов в вашей файловой системе:

$ df -i

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

Ext4 также поддерживает неограниченное количество подкаталогов на каталог, хотя по умолчанию он может быть ограничен до 64 000. Это настраивается - смотрите статью ext4 на Kernel Newbies .

Для получения дополнительной информации см . Новая файловая система ext4: текущее состояние и планы на будущее из Linux Symposium 2007 года.


источник
9

Там нет ни одного, по сути; это зависит. При создании файловой системы ext4 вы решаете размер таблицы inode , которая, в свою очередь, определяет общее количество каталогов или файлов, которые файловая система может хранить одновременно.

Джон Феминелла
источник
8
Вы можете запустить tune2fs -l /path/to/deviceи найти значение счетчика Inode, чтобы найти предел для данной файловой системы
1
Можем ли мы увеличить количество инодов? Насколько я знаю, inode хранятся в виде связанного списка, так что это похоже на добавление большего количества узлов в связанный список. Я думаю, вопрос сводится к тому, что может быть максимальной длины связанного списка?
4
В ext4 таблица inode статически выделяется при создании файловой системы. Единственный способ увеличить его - воссоздать файловую систему. Параметры -N или -i используются для установки количества создаваемых inode.
1
Стоит также отметить, что каталоги являются файлами и должны учитываться как таковые.
dmckee
1
Как и символические ссылки. Я не уверен, считаются ли устройства, FIFO и сокеты или нет.
ephemient
1

Не Ubuntu, но в Redhat Linux базовые команды, такие как find fail, с «ошибкой слишком большого количества аргументов» при запуске с каталогом, содержащим 3 миллиона файлов. ls запускается успешно, если никакие параметры не включены, но выдает ошибку с той же ошибкой, как только добавляются параметры фильтра.

Предполагая, что надежность таких основных команд является обязательным требованием, я бы предположил, что 3 миллиона файлов - это слишком много.

Джон Хэдэуэй
источник
3
Это не ограничение файловой системы, хотя.
user9517 поддерживает GoFundMonica
1
Хорошая точка зрения! FS может поддерживать это, но инструментам будет все труднее справляться с этим.
Чаба Тот