Назад | Перейти на главную страницу

Сколько файлов я могу иметь непосредственно в каталоге в ext3?

У меня есть корневой каталог data_0. В этом каталоге находится около 15 000 каталогов ('a', 'b', 'c', ... 'aa', 'ab' ...). В каждом из этих каталогов находятся тысячи очень маленьких файлов (4 ~ 10 КБ), от 1000 до 2000 файлов каждый.

Все это приводит к 30 миллионам файлов. Мне нужно переместить их из 'data_0' в папку 'data_1', но без папок «уровня 2» (a, b, c и т. Д.), Поэтому:

/data_0/a/1.txt --> /data_1/a_1.txt
/data_0/a/2.txt --> /data_1/a_2.txt
...
/data_0/ccc/989.txt --> /data_1/ccc_989.txt
...

Как далеко я могу зайти с этим? Производительность здесь не важна. Есть ли логический предел или просто предел производительности?

Нет логического ограничения на количество файлов в одном каталоге, хотя существуют значительные ограничения производительности, поскольку отдельные каталоги получают больше файлов (мое практическое правило - не превышать 1000, хотя в определенных ситуациях я делал 10000) . Существует ограничение на общее количество файлов в файловой системе, которое определяется параметрами создания вашей файловой системы (общее количество inodes). Существует также жестко заданное ограничение в 32000 подкаталогов на каталог (из которых две записи всегда занимают . и ..).

Если нужно доверять незнакомцам в Интернете, нет ограничений на количество файлов, которые может содержать папка ext3. Так говорится в списке рассылки RedHat для пользователей ext3.. Ядро 2.6 предположительно допускает теоретическое разрешение «миллиардов» файлов в одном каталоге. Вы можете захотеть поправить dir_index немного чтобы он работал бесперебойно, если вы будете выполнять поиск в файлах. Есть также некоторые другие побочные эффекты огромного количества файлов в одном каталоге, которые вы, возможно, захотите прочитать в этот поток StackOverflow.

Так что ответ наиболее вероятный: «Да, но ...»