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

15

Об инодах

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

Вопрос

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

Комментарии

  • Вы НЕ МОЖЕТЕ изменить количество доступных инодов ПОСЛЕ создания EXT4-раздела
bzero
источник
@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 миллиарда).

Fabby
источник
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позволяет вам увеличить их размер (чтобы они могли обрабатывать более расширенные атрибуты файлов). Настройте в соответствии с вашей ситуацией при создании файловой системы.

ubfan1
источник
Спасибо, поэтому -N используется во время создания, тогда как -l может использоваться для настройки количества инодов ПОСЛЕ создания раздела? Сейчас я более подробно рассмотрю
справочные
-IИзменяет размер каждого дескриптора в байтах во время создания. Это не позволит вам увеличить доступное их количество в существующих файловых системах.
Два
"allows you to increase their size (so they can handle more files)"Увеличение размера inode не означает, что вы можете обрабатывать больше файлов, чем больше отношение байтов к индексу, тем меньше будет создано inode, что означает, что будет обработано меньше файлов.
ZN13
1

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

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

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

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

Эллисон Чан
источник