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

Максимальный лимит inode файловой системы ext4 - может кто-нибудь объяснить?

Недавно у нас возникла проблема, когда одна из файловых систем ext4 казалась неспособной обрабатывать очень большое количество файлов, more than 6mln in this case, несмотря на достаточно места. Это 6mln максимальное число, которое файловая система ext4 может иметь при форматировании со всеми настройками по умолчанию? Я пытался погуглить, но не получил окончательного ответа. Кто-нибудь может пролить свет на это, пожалуйста? Ура !!

Нет по умолчанию в качестве таких для ext4 это зависит от размера устройства и параметров, выбранных при создании. Вы можете проверить существующие лимиты, используя

tune2fs -l /path/to/device

Например,

root@xwing:~# tune2fs -l /dev/sda1
tune2fs 1.42 (29-Nov-2011)
Filesystem volume name:   <none>
Last mounted on:          /

[lots of stuff snipped]

Inode count:              1277952
Free inodes:              1069532
Inodes per group:         8192
Inode blocks per group:   512

[lots of stuff snipped]

Согласно man mkfs.ext4

-i байтов на индекс

Укажите соотношение байтов / индексных узлов. mke2fs создает индексный дескриптор для каждого байта на каждый индексный дескриптор пространства на диске. Чем больше соотношение байтов на индексный дескриптор, тем меньше инодов будет создано. Это значение, как правило, не должно быть меньше размера блока файловой системы, поскольку в этом случае будет создано больше индексных дескрипторов, чем может быть использовано. Имейте в виду, что невозможно увеличить количество inodes в файловой системе после ее создания, поэтому будьте осторожны при выборе правильного значения для этого параметра.

Это зависит от того, как вы отформатировали файловую систему. С помощью tune2fs -l <device> вы можете узнать количество инодов, которые есть на вашем устройстве, вероятно, около 6 миллионов инодов в вашем случае. Каждый файл или каталог использует индексный дескриптор.

Насколько мне известно, единственная возможность увеличить количество inodes - это переформатировать вашу файловую систему. В -i параметр к mkfs может использоваться для указания соотношения байтов / индексных узлов. Значение по умолчанию определено в /etc/mke2fs.conf (в моей системе: 16384).

Большее соотношение байтов / индексных дескрипторов определяет меньшее количество индексов, меньшее - больше индексов. Значения по умолчанию работают хорошо в большинстве случаев, но если у вас большое количество небольших файлов, вы можете столкнуться с лимитом и, возможно, потребуется отформатировать файловую систему с меньшим соотношением байтов / индексных узлов.