Как я могу создать раздел EXT4 с очень большим количеством inode?


15

Об инодах

В Ubuntu каждый файл и каталог является так называемым inode. Вы можете использовать, df -iчтобы проверить количество используемых inode и доступных для всех смонтированных файловых систем.

Вопрос

Если вы создаете новый EXT4-раздел, он использует число inode по умолчанию, которого при нормальных условиях должно быть достаточно. Однако, если вы запускаете систему, которая производит миллионы маленьких файлов, как вам нужно создать новый раздел EXT4 с очень большим количеством inode? Какой максимум?

Комментарии

  • Вы НЕ МОЖЕТЕ изменить количество доступных инодов ПОСЛЕ создания EXT4-раздела


@Rinzwind Это не тот же вопрос, поскольку он только спрашивает, как найти большое количество маленьких файлов ... он не объясняет, как отформатировать новый раздел EXT4 с очень большим количеством inode. Я снова открою свой вопрос.
Bzero

Как я могу отключить этот главный баннер, говоря, что на этот вопрос уже можно было ответить? Это другой вопрос.
bzero

Ответы:


12

Использование mkfs -t ext4 -N iNumberOfINodes /dev/XdYwhere iNumberOfINodes- это 32-битное число, поэтому максимально возможное число inode в любой файловой системе ext2 / 3/4 составляет 2 ^ 32-1 или 4 294 967 295 (~ 4 миллиарда).


5
Есть ли известные недостатки производительности при настройке 4 000 000 000 iNodes?
bzero

1
на самом деле это не так: mkfs.ext4: слишком много inode (4294967296), укажите <2 ^ 32 inode
dalore

Ошибка @dalore off-by-one: 2 ^ 32-1 ... Спасибо за обратную связь, ответ адаптирован ... :-)
Fabby

Заметьте, я тоже это попробовал, но получил еще одну ошибку, которая не очень информативна относительно того, какое число принято.
Далоре

ты пробовал 2 ^ 31 ???
Фабби

3

Смотрите страницу руководства для mkfs.ext4.

man mkfs.ext4

Опция -Nпозволяет вам установить количество инодов, созданных в файловой системе, а опция -Iпозволяет вам увеличить их размер (чтобы они могли обрабатывать более расширенные атрибуты файлов). Настройте в соответствии с вашей ситуацией при создании файловой системы.


Спасибо, поэтому -N используется во время создания, тогда как -l может использоваться для настройки количества инодов ПОСЛЕ создания раздела? Сейчас я более подробно рассмотрю
справочные

-IИзменяет размер каждого дескриптора в байтах во время создания. Это не позволит вам увеличить доступное их количество в существующих файловых системах.
Два

"allows you to increase their size (so they can handle more files)"Увеличение размера inode не означает, что вы можете обрабатывать больше файлов, чем больше отношение байтов к индексу, тем меньше будет создано inode, что означает, что будет обработано меньше файлов.
ZN13

1

Это всегда компромисс между инодами и размером блока. 32-разрядный - это максимум, но фактический максимум зависит от размера вашей дисковой / файловой системы, деленного на размер блока. Каждый файл состоит как минимум из одного блока. Вы также можете указать размер группы, который определяет, сколько блоков на индекс. (т.е. байты / индекс)

Все это будет определять количество inode, которые вы можете выделить для конкретного размера диска и размера блока.

Это также компромисс между производительностью и объемом файла. Меньший размер блока означает, что большие файлы будут фрагментированы и потребуют больше операций ввода-вывода для загрузки файла.

Если вы хотите настроить, вам нужно прочитать, иначе вы получите файловую систему, совершенно не подходящую для того, что вы думали, что хотели.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.