LinuxForum.Fans
Тема

Кончились inode

Автор: mister_hat 17 сообщений 12064 просмотров
#145056

Вопрос такой. При разбивке диска под установку gentoo выделил отдельный раздел для /usr/portage (примерно 2Гб) и создал на нем файловую систему Ext4. При распаковке дерева портежей (несколько раз пробовал) постоянно сыпались ошибки. Тогда я еще в линуксе совсем юн был, но гугление выяснило, что при размере раздела в 2 Гб и таком количестве мелких файлов просто кончились inode. Причем увеличение раздела до 5 Гб не помогло, инодов все равно не хватало. Помучался малость, забил и накатил reiserfs на этот раздел (как советовали на одном из форумов). После этого распаковалось нормально. Вопрос - можно ли в ext4 увеличить количество inode без увеличения размера раздела? Где об этом можно поподробнее почитать?

#145062
mister_hat написал:
Где об этом можно поподробнее почитать?
text
man mkfs.ext4
man mke2fs.conf
less /etc/mke2fs.conf
#145063

добавлю конкретики: mke2fs ключ -N

#145075
mister_hat написал:
Вопрос - можно ли в ext4 увеличить количество inode без увеличения размера раздела? Где об этом можно поподробнее почитать?

tune2fs
только учтите - должна быть включена фича ФС resize_inode. Проверяйте в tune2fs -l /dev/sdXY

#145076
Fat-Zer написал:
добавлю конкретики: mke2fs ключ -N

можно и без форматирования обойтись. Или в вашей генте нельзя?

#145086

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

#145089
Fat-Zer написал:
чего-т я пробежался по ману и не увидел, как изменить количество инодов. просвятитите уж...

man mkfs.ext4

text

-N number-of-inodes
              Overrides  the  default calculation of the number of inodes that should be reserved for the filesystem (which is based on
              the number of blocks and the bytes-per-inode ratio).  This allows the user  to  specify  the  number  of  desired  inodes
              directly.

man tune2fs

text

 -O [^]feature[,...]
              Set  or  clear  the  indicated  filesystem features (options) in the filesystem.  More than one filesystem feature can be
              cleared or set by separating features with commas.  Filesystem features prefixed with a caret  character  ('^')  will  be
              cleared  in the filesystem's superblock; filesystem features without a prefix character or prefixed with a plus character
              ('+') will be added to the filesystem.

...

resize_inode Reserve space so the block group descriptor table may grow in the future. Tune2fs only supports clearing this filesystem feature. ...

#145094

мда... видимо ещё не реализовали. значит только mkfs...

#145112
Lupo Alberto написал:
man mkfs.ext4

про это я сам писал

Lupo Alberto написал:
man tune2fs

а это, просто опция, которая (моя догадка) при изменении размеров самой ФС будет менять кол-во инодов... без форматирования опять же не обойтись...

drBatty написал:
мда... видимо ещё не реализовали. значит только mkfs...

хмм... сомневаюсь, что реализуют.

#145118
Fat-Zer написал:
а это, просто опция, которая (моя догадка) при изменении размеров самой ФС будет менять кол-во инодов... без форматирования опять же не обойтись...

дык... любопытно, что сейчас её можно только ОТКЛЮЧИТЬ. smile

Fat-Zer написал:
сомневаюсь, что реализуют.

ну не знаю. Не так-уж оно и надо на самом деле. Что-то у вас там не так в вашей генте... Даже на небольших разделах миллионы инодов по умолчанию создаются. Или у вас раздел совсем крохотный? А зачем жадничаете? Вот mkfs и решила, что на таком мизерном разделе и файлов будет немного... Я с таким никогда не сталкивался. Помню обратную ситуацию - когда mkfs пожрала немеренно гигабайт под эти дурацкие иноды на разделе для фильмов (фильмов-то на диск мало можно натолкать). Пришлось занизить до 500000. Появилось много лишних гигов. :cool:

#145120
drBatty написал:
Что-то у вас там не так в вашей генте...

[console]
lupo@gentoo-laptop ~ % cd /usr/portage
lupo@gentoo-laptop portage % find . | wc -l
141573
[/console]
Немного не точно — у меня каталог с архивами исходных текстов вынесен отдельно:
[console]
gentoo-laptop ~ % cd /home/users/portage [gentoo-laptop][12:03]
gentoo-laptop portage % find . | wc -l [gentoo-laptop][12:03]
115660
[/console]

Не знаю, много это или мало почти 270000 файлов для раздела в 2 Гб :o

#145126
Lupo Alberto написал:
Не знаю, много это или мало почти 270000 файлов для раздела в 2 Гб

мало. по мнению mkfs.ext4
вы можете сами посмотреть, что она думает, выполнив
[console]tune2fs -l /dev/sdaXY[/console]

#145152
drBatty написал:
вы можете сами посмотреть, что она думает, выполнив

Собственно, я спрашивал в контексте обсуждения данной темы.
Сам я почти везде использую ReiserFS, проблем пока не замечал.

#145183
Lupo Alberto написал:
Собственно, я спрашивал в контексте обсуждения данной темы.

ну вот вам в контексте:

text
/dev/sda3             132G   78G   54G  60% /mnt/sda3

Inode count: 8732672 Block count: 34921293 Reserved block count: 0 Free blocks: 14086795 Free inodes: 8610975

как видите, на раздел в 132Г выделяется по дефолту 8 732 672 инодов, что составляет 66156 инодов на гиг.

man mkfs написал:
-i bytes-per-inode
Specify the bytes/inode ratio. mke2fs creates an inode for every bytes-per-inode bytes of space on the disk. The larger
the bytes-per-inode ratio, the fewer inodes will be created. This value generally shouldn't be smaller than the block-
size of the filesystem, since in that case more inodes would be made than can ever be used. Be warned that it is not
possible to expand the number of inodes on a filesystem after it is created, so be careful deciding the correct value for
this parameter.

man mke2fs.conf написал:
inode_ratio
This relation specifies the default inode ratio if the user does not specify one on the command line, and the filesystem-
type specific section of the configuration file does not specify a default inode ratio.
#145199
drBatty написал:
как видите, на раздел в 132Г выделяется по дефолту 8 732 672 инодов, что составляет 66156 инодов на гиг.

ну так... на 2х гиговом разделе быдет ~66156*2, что меньше 141573(и это мы только файлы считали). простая арифметика показывает, что инодов не хватает...

для портеджей лучше уменьшить размер блока до 1к... ибо файлы всё равно мелкие, а ещё лучше обратится reiser'у.

#145207
Fat-Zer написал:
ну так... на 2х гиговом разделе быдет ~66156*2, что меньше 141573(и это мы только файлы считали). простая арифметика показывает, что инодов не хватает...

вы не совсем правы. этот параметр может зависеть от объёма ФС. Для маленьких разделов инодов может выделятся больше на гиг.
чем гадать и мучить калькулятор, лучше-бы глянули mke2fs.conf

Fat-Zer написал:
для портеджей лучше уменьшить размер блока до 1к... ибо файлы всё равно мелкие,

они что, почти все меньше 1К? дайте-ка статистику по размеру глянуть?

Fat-Zer написал:
а ещё лучше обратится reiser'у.

....

#145219
drBatty написал:
они что, почти все меньше 1К? дайте-ка статистику по размеру глянуть?

скрипт на скорую руку не сооружу, чтобы подсчитать... <1K не много, но амболютное большенство <4K.... в любом случае большой размер файлов нам не нужен...

drBatty написал:
вы не совсем правы. этот параметр может зависеть от объёма ФС. Для маленьких разделов инодов может выделятся больше на гиг.
чем гадать и мучить калькулятор, лучше-бы глянули mke2fs.conf

от размера он только для совсем мелких(порядка нескольких метров) зависит...
[console]
# tune2fs -l /dev/sda2
tune2fs 1.41.12 (17-May-2010)
Inode count: 122160
Block count: 487974
Free blocks: 223291
Free inodes: 97381
Block size: 4096
[/console]

Войдите или зарегистрируйтесь, чтобы ответить.