Inode

Inode — это структура данных в Unix-подобных файловых системах, содержащая метаданные файла, такие как размер, права доступа и указатели на блоки данных, за исключением его имени.

Inode (index node) — это объект файловой системы, описывающий файл или директорию. Он хранит метаданные: размер, права доступа, идентификаторы владельца (UID/GID), временные метки и адреса блоков данных на диске. Имя файла в inode не хранится — оно связывается с номером inode через записи в директории.

При создании файловой системы (например, ext4) выделяется фиксированное количество inode. Каждый объект занимает ровно одну запись. Если лимит inode исчерпан, создание новых файлов становится невозможным, даже если на диске есть свободные гигабайты. Это критично для серверов с миллионами мелких файлов.

Механизм работы

Когда процесс обращается к файлу, ядро ОС находит его имя в каталоге, получает номер inode и считывает атрибуты из таблицы inode. Команда ls -i отображает эти номера. Жесткие ссылки (hard links) позволяют нескольким именам ссылаться на один и тот же inode, что экономит место и обеспечивает целостность данных.

Цифра: В стандартных настройках mkfs.ext4 создается один inode на каждые 16 КБ пространства. Проверить текущее состояние счетчиков в Linux можно командой df -i.