Page tree

Inodes, или индексные дескрипторы ("описатели") - это структуры данных в системах Unix, используемые для хранения информации о файлах и каталогах. Так как дескрипторы являются, по сути, данными о данных, их также называют метаданными.

Inodes хранят такие свойства файла, как его размер, информацию о владельце, группу, к которой принадлежит файл, права доступа, счетчик жестких ссылок, место, где на данный момент располагается содержимое файла, временные отметки (время последней модификации файла, последнее время доступа к файлу и т.д.) и пр. Другими словами, дескриптор содержит в себе всю информацию о файле, кроме его имени и содержимого. 

Чем больше создано файлов, тем больше индексных дескрипторов занято. Чрезмерное количество файлов (например, файлы кэша или почтовая очередь) может привести к отсутствию свободных inodes и, как следствие, к ошибкам в работе сервера и сообщениям о недостаточном дисковом пространстве, несмотря на его фактическое наличие. Решать проблему потребуется удалением ненужных файлов или директорий.

Получить информацию о количестве использованных и занятых дескрипторов можно при подключении по SSH, с помощью следующей команды:

df -hTi

Значения в выводе команды:

  • Inodes - объем доступного пространства для индексных дескрипторов;
  • IUsed - объем, занятый дескрипторами;
  • IFree - свободный объем;
  • IUse% - объем, занятый дескрипторами, в процентах.

Для решения проблемы с недостатком свободных inodes необходимо удалить достаточное число файлов или каталоги с большим числом файлов.

Найти директории, содержащие в себе большое количество файлов, можно с помощью команды ниже:

echo "Detailed Inode usage for: $(pwd)" ; for d in `find -maxdepth 1 -type d |cut -d\/ -f2 |grep -xv . |sort`; do c=$(find $d |wc -l) ; printf "$c\t\t- $d\n" ; done ; printf "Total: \t\t$(find $(pwd) | wc -l)\n"

Удалить ненужные файлы и директории можно с помощью команды rm. Будьте внимательны при ее использовании.

  • No labels