Учитывая текущую структуру записи каталога в файловой системе ext4 в Ubuntu, какое максимальное количество файлов может содержать файловая система?
Каков общий метод расчета максимального количества файлов, которое может содержать файловая система?
Ext4 имеет теоретический предел в 4 миллиарда файлов, который ограничен размером номера inode, который он использует для идентификации каждого файла (ext4 использует 32-битные номера inode). Однако, как говорит Джон, ext4 выделяет таблицы inode статически, поэтому фактический предел устанавливается при создании файловой системы.
Команда df показывает количество свободных индексных дескрипторов в вашей файловой системе:
$ df -i
Filesystem iused ifree %iused Mounted on
/dev/disk0s3 55253386 66810480 45% /
/dev/disk1s3 55258045 66805821 45% /Volumes/Clone
Ext4 также поддерживает неограниченное количество подкаталогов на каталог, хотя по умолчанию может быть установлено ограничение в 64000. Это настраивается - см. Статья о ext4 на сайте Kernel Newbies.
Для получения дополнительной информации см. Новая файловая система ext4: текущее состояние и планы на будущее из симпозиума по Linux 2007 года.
По сути, его нет; это зависит. Когда вы создаете файловую систему ext4, вы определяете размер таблица inode, который, в свою очередь, определяет общее количество каталогов или файлов, которые файловая система может хранить одновременно.
Не в Ubuntu, а в Redhat Linux основные команды, такие как find, завершаются ошибкой «Слишком много аргументов» при запуске в каталоге, содержащем 3 миллиона файлов. ls работает успешно, если параметры не включены, но выдает ту же ошибку, как только добавляются параметры фильтра.
Предполагая, что надежность таких базовых команд является обязательным требованием, я бы предположил, что 3 миллиона файлов - это слишком много.