Thank you for reading this post, don't forget to subscribe!
Когда создается новая файловая система на диска в Linux, то ядро оставляет место для inode (индексный дискриптор) во время первоначального структурирования файловой системы. Количество инодов в файловой системе напрямую влияет на количество файлов (т.е. максимальное число инодов и следовательно, максимальное количество файлов устанавливается при создании файловой системы).
Если все иноды в файловой системе исчерпаны, ядро не может создавать новые файлы, даже если на диске есть свободное место
При создании новой файловой системы в разделе вы можете использовать опцию -i, чтобы установить число байтов на индекс (отношение байтов на индекс), чем больше отношение байтов на индекс, тем меньше будет создано.
В следующем примере показано, как создать тип файловой системы EXT4 с небольшим соотношением байтов на индекс в разделе 4 ГБ.
1 |
$ <span class="hljs-built_in">sudo</span> mkfs.ext4 -i <span class="hljs-number">16400</span> /dev/sdc1 |
Примечание. После создания файловой системы вы не можете изменять отношение байтов к индексу (если только вы не переформатируете его), а изменение размера файловой системы изменяет количество инодов, чтобы поддерживать это соотношение.
Вот еще один пример с большим отношением байтов на индекс.
1 |
$ <span class="hljs-built_in">sudo</span> mkfs.ext4 -i <span class="hljs-number">196800</span> /dev/sdc1 |
Кроме того, вы также можете использовать флаг -T, чтобы указать, как будет использоваться файловая система, чтобы mkfs.ext4 мог выбрать оптимальные параметры файловой системы для этого использования, включая соотношение байтов на индекс. Файл конфигурации /etc/mke2fs.conf содержит различные поддерживаемые типы использования и многие другие параметры конфигурации.
В следующих примерах команда сообщает, что файловая система будет использоваться для создания и/или хранения данных largefile и большого largefile4, которые предлагают более подходящие соотношения: один инод на каждые 1 МБ и 4 МБ соответственно.
1 2 3 |
$ sudo mkfs<span class="hljs-preprocessor">.ext</span>4 -T largefile /dev/device <span class="hljs-keyword">OR</span> $ sudo mkfs<span class="hljs-preprocessor">.ext</span>4 -T largefile4 /dev/device |
Чтобы проверить использование inode файловой системы, выполните команду df с параметром -i (параметр -T показывает тип файловой системы).
1 2 3 |
$ df <span class="hljs-attribute">-i</span> <span class="hljs-literal">OR</span> $ df <span class="hljs-attribute">-iT</span> |