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

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

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

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

решение1

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 2007 года.

решение2

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

решение3

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

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

Связанный контент