Количество inodes в разделе не соответствует максимальному количеству inodes, которое раздел должен поддерживать

Мы используем Amazon EBS для хранения большого количества небольших файлов (‹10 КБ) в трехуровневой структуре каталогов.

 ~/lists# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1             9.9G  3.9G  5.5G  42% /
tmpfs                 854M     0  854M   0% /lib/init/rw
varrun                854M   64K  854M   1% /var/run
varlock               854M     0  854M   0% /var/lock
udev                  854M   80K  854M   1% /dev
tmpfs                 854M     0  854M   0% /dev/shm
/dev/sda2             147G   80G   60G  58% /mnt
/dev/sdj              197G   60G  128G  32% /vol

Рассматриваемый раздел - / vol (размер: 200 ГБ).

 ~/lists# df -i
Filesystem            Inodes   IUsed   IFree IUse% Mounted on
/dev/sda1             655360   26541  628819    5% /
tmpfs                 186059       3  186056    1% /lib/init/rw
varrun                186059      31  186028    1% /var/run
varlock               186059       2  186057    1% /var/lock
udev                  186059     824  185235    1% /dev
tmpfs                 186059       1  186058    1% /dev/shm
/dev/sda2            19546112 17573097 1973015   90% /mnt
/dev/sdj             13107200 13107200       0  100% /vol
 ~/lists# sudo /sbin/dumpe2fs /dev/sdj | grep "Block size"
dumpe2fs 1.41.4 (27-Jan-2009)
Block size:               4096

Количество инодов для раздела / том составляет более 13 миллионов. Размер блока равен 4096. Принимая размер блока как 4096, количество индексов, которые должен поддерживать раздел 200 ГБ (ext3), составляет 52 миллиона + (максимальное вычисление индексных дескрипторов: размер тома в байтах / 2 ^ 12). Так почему же раздел поддерживает только 13 миллионов inode?


person lazynerd    schedule 14.01.2010    source источник
comment
Сэм, спасибо за ответ. Размер блока составляет 4 КБ (а не 8 КБ). Но даже если мы возьмем 8 КБ, число все равно не сложится. 200 ГБ / 8 КБ = 26 миллионов + (а не 13 миллионов).   -  person lazynerd    schedule 14.01.2010
comment
Правильно, вы только что изложили мою точку зрения ... вы делаете расчеты на основе того, что, по вашему мнению, должен был сделать mkfs.ext3. Я просто говорю, что вашему тому было выделено 13M inodes, и все они используются. Поэтому, если вы планируете записать на том много маленьких файлов, проверьте inodes во время mkfs. Кстати, если вы ответите на ответы людей, они получат уведомление. Я видел только ваш ответ здесь, потому что я вернулся, чтобы проверить этот вопрос вручную.   -  person Sam Post    schedule 01.02.2010


Ответы (1)


Я почти уверен, что inodes выделяются статически при создании тома (в данном случае с использованием mfs.ext3). По какой-то причине mkfs.ext3 решил зарезервировать 13 миллионов инодов, и теперь вы не можете создавать больше файлов.

См. Это обсуждение inodes в 2001 г.

На странице Wikipedia ext3 есть сноска, объясняющая это более кратко: ссылка на wiki

Кроме того, inodes выделяются для каждого файла (а не блока), поэтому существует только 13M inodes - mkfs.ext3 должен быть настроен со средним размером файла 8 КБ, что могло бы объяснить проблему, которую вы видите.

person Sam Post    schedule 14.01.2010
comment
сноска в той же статье en.wikipedia.org/wiki/Ext3#cite_note-0 говорит об ограничении inode - person rampr; 14.01.2010