Вопрос: ext4: Выполнение inodes [duplicate]


На этот вопрос уже есть ответ:

У меня заканчивается inodes. Только 11% доступный:

the-foo:~ # df -i 
Filesystem               Inodes   IUsed   IFree IUse% Mounted on
/dev/mapper/system-home 9830400 8702297 1128103   89% /home

Есть ли способ решить эту проблему без создания и копирования нового раздела?

Детали:

the-foo:~ # tune2fs -l /dev/mapper/system-home
tune2fs 1.42.6 (21-Sep-2012)
Filesystem volume name:   <none>
Last mounted on:          /home
Filesystem UUID:          55899b65-15af-437d-ac56-d323c702f305
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
Filesystem flags:         signed_directory_hash 
Default mount options:    user_xattr acl
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              9830400
Block count:              39321600
Reserved block count:     1966080
Free blocks:              22958937
Free inodes:              2706313
First block:              0
Block size:               4096
Fragment size:            4096
Reserved GDT blocks:      1014
Blocks per group:         32768
Fragments per group:      32768
Inodes per group:         8192
Inode blocks per group:   512
Flex block group size:    16
Filesystem created:       Tue Jul  8 08:02:22 2014
Last mount time:          Sun Apr 24 22:33:00 2016
Last write time:          Thu Sep  8 09:18:01 2016
Mount count:              11
Maximum mount count:      10
Last checked:             Tue Jul  8 08:02:22 2014
Check interval:           0 (<none>)
Lifetime writes:          349 GB
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:           256
Required extra isize:     28
Desired extra isize:      28
Journal inode:            8
First orphan inode:       2759586
Default directory hash:   half_md4
Directory Hash Seed:      e4402d28-9b15-46e2-9521-f0e25dfb58d0
Journal backup:           inode blocks

Пожалуйста, дайте мне знать, если вам нужна дополнительная информация.


6
2017-09-08 07:30


Источник


@neutrinus No. Это примерно размер индексного дескриптора (256 против 128 байт), а не количество индексов. - glglgl
@glglgl конечно, но они также предоставляют решение, чтобы сделать это «на месте» - путем изменения размера двух разделов - neutrinus
Поскольку увеличение количества инодов невозможно, попробуйте понять, почему у вас заканчивается inode. Возможно, у вас есть каталог, полный небольших файлов, которые нужно время от времени очищать. Кроме того, проверьте, является ли размещение этих файлов в архиве. - scai


Ответы:


Есть ли способ решить эту проблему без создания и копирования нового раздела

Нет, число инодов фиксируется, когда файловая система создается как справочная страница говорит

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


14
2017-09-08 07:47





В основном нет, но в вашем случае вы использовали LVM, и для дома есть LV (Logical Volume).

Если вы запустите pvdisplay и искать «свободные экстенты», это может быть возможно lvexpand увеличить размер домашнего LV, а затем запустить resize2fs 

Внизу вы добавите только индексы с той же скоростью, что и текущий файл.

Что вам нужно сделать, так это найти в какой директории много файлов и решить, нужны ли вам эти файлы

0-байтовый файл будет использовать inode.

$ ls -la /home drwxr-xr-x 194 criggie criggie 28672 Sep 8 18:13 criggie drwxr-xr-x 2 statler statler 4096 Dec 13 2015 statler drwxr-xr-x 2 wakdorf waldorf 4096 Dec 21 2014 waldorf

Обратите внимание на 194 во второй колонке? Это показывает, что в этом каталоге много inodes. cd в этот каталог и повторить.

Я подозреваю, что у вас есть временная директория или что-то со многими тысячами небольших файлов, которые, вероятно, могут быть очищены.


5
2017-09-08 10:44



Нет, второй столбец «ls -l» - это число (жестких) ссылок на этот файл. Для каталога это подсчет подкаталогов + 2. (каждый подкаталог D имеет .. запись, относящаяся к D, также плюс одна для собственной директории . запись плюс один для его фактического имени.) - ilkkachu
@ilkkachu ОК, спасибо за это, вы правы, тем не менее его индикатор того, у каких каталогов есть много файлов внутри них, и стоит проверить большое количество небольших файлов. - Criggie
@Criggie: Нет. Это показатель того, что в каталогах есть много непосредственных подкаталогов. если foo/ содержит 10 000 файлов, но нет подкаталогов, у него будет счетчик ссылок из двух. Если bar/ содержит один подкаталог bar/baz/, который, в свою очередь, содержит 10 000 подкаталогов, bar/ будет иметь счетчик ссылок 3. Количество ссылок не предоставляет информацию, которую вы пытаетесь совершить. - Kevin
В любом случае вам нужно использовать что-то вроде find -size -8192cдля поиска файлов меньше, чем, например, 8 кБ (половина байтов по умолчанию для каждого дескриптора) - ilkkachu