После некоторого исследования Google я выяснил, что использование inode, вероятно, связано с количеством каталогов / файлов.
Некоторые из предыдущих ответов дают вам общее представление о том, что происходит, но давайте узнаем, как с этим что-то сделать. Я знаю, что вы сочтете это педантичным, но давайте начнем с типа вашей файловой системы и обсудим каждый из них, как мы видели их в Linux. Тот факт, что ваш вопрос помечен как Linux, важен, потому что другие файловые системы * nix поддерживают множество других типов. Я не эксперт по этим отдельным файловым системам, но я могу быстро понять достаточно подробные статьи, чтобы затронуть важные части.
ext2 / ext3 / ext4
Оливер Дидрих написал статью под названием «Настройка файловой системы Linux"что делает пару очень важных моментов. Во-первых, эти файловые системы помещают индексы в зарезервированную область диска, что позволяет кэшировать их и быстро получать к ним доступ. Размер этого пространства составляет фиксированный во время создания файловой системы. Это означает, что для его увеличения вам необходимо: а) отразить файлы на другой файловой системе правильного размера и иметь период переключения или б) сделать резервную копию файловой системы, правильно воссоздать ее и восстановить файлы обратно.
Чтобы узнать, как у вас дела с конкретной файловой системой, скажем / dev / sda1, используйте debuge2fs -h
command и найдите эти строки об индексных дескрипторах. В моей файловой системе используется около 2,4% моих индексных дескрипторов в файловой системе 226 ГБ и 100 ГБ (корневой диск Ubuntu).
Inode count: 15032320
Block count: 60113214
Reserved block count: 3005660
Free blocks: 32794380
Free inodes: 14658480
Другие говорят, что когда иноды исчезнут, они исчезнут. И они не шутят. Я нашел инструмент под названием ext2resize, который в конечном итоге собирался предложить эту функцию, но автор, похоже, получил интересную дневную работу, которая отнимает слишком много его времени. Увидеть Вопросы-Ответы. Не задерживайте дыхание, пока ext2 / 3/4 поддерживает такой рост, поскольку большинство в сообществе разработчиков ядра и файловых систем считают, что действительно интересная работа связана с файловыми системами твердотельных дисков, а также с кластерными файловыми системами. Материал ext2 / 3/4 - старая шляпа, даже если ext4 довольно новый.
Еще одно интересное замечание: вы можете попробовать выполнить оптимизацию для каталогов, содержащих много файлов. Учитывая, что вы думаете, что у вас закончатся inodes, у вас, вероятно, есть действительно длинные списки каталогов. tune2fs -O dir_index /dev/sda1
позволяет индексировать b-дерево вместо стандартной модели связанного списка. См. Страницу руководства для tune2fs или Сообщение Стива на debian-administration.org.
Если вы хотите переделать файловую систему с большим количеством инодов, вам придется использовать mke2fs -N ___
вариант для mke2fs (см. справочную страницу и используйте debuge2fs
для вычисляемого числа по умолчанию. При желании вы можете изменить соотношение inode-to-block при создании файловой системы с mke2fs -i ___
вариант для mke2fs. Мой дистрибутив Ubuntu 10.04 поставляется с соотношением по умолчанию 16384 или, если я правильно это прочитал, одним 256-байтовым индексом на каждые 16384 блока данных (по 4 КБ каждый). Файловые системы для программ чтения новостей получают соотношение по умолчанию 4096: 1, что в четыре раза больше inode.
Другие файловые системы
За последние три года произошел взрыв популярности файловых систем. Многие из них доступны под Linux, хотя популярная ZFS доступна только под Sun Solaris и FreeBSD. В Linux вы можете рассмотреть возможность изучения Btrfs, ReiserFS 3, XFS или JFS. Существуют также коммерческие файловые системы, которые серьезно относятся к вашей доступности и масштабируемости, но их так много, что вам придется Смотри сюда в Википедии.
Выводы
Либо сделайте полосу inode достаточно большой в день 1, чтобы обрабатывать количество файлов, либо перейдите к файловой системе, которая может справиться с нагрузкой.
Файловая система использует inodes для отслеживания местоположения файлов на диске. Если у вас больше нет inodes, вы не сможете записать больше файлов в файловую систему, пока они не станут доступными. Лучше всего спланировать, что будет жить в файловой системе, прежде чем форматировать ее, как и во многих файловых системах, вы можете выбрать размер inode по умолчанию, соответствующий размеру файла, который будет там жить (т.е. больший размер inode для больших файлов, меньший для файлов меньшего размера) и, таким образом, максимально увеличить количество файлов в пространстве файловой системы.
высокое использование inode обычно указывает на большое количество небольших файлов (или, возможно, повреждение файловой системы).
если у вас закончились inodes, вы не сможете создавать дополнительные файлы, поэтому диск будет «заполнен» независимо от его фактической доступной емкости в МБ / ГБ / ТБ
иногда системный администратор может установить ограничение на количество файлов, поэтому у вас не может быть большого количества маленьких файлов в такой файловой системе :)