Что такое иноды в Linux и как они используются?

Все в Linux считается файлом для обеспечения согласованности. Сюда входят аппаратные устройства, принтеры, каталоги и процессы. Обычные файлы, такие как музыка, текст, видео и другие мультимедийные файлы, также содержат дополнительные данные, связанные с ними, называемые метаданными.

Что такое Inode(Inodes) в Linux ? Записи inode(Inode) являются основой файловой системы Linux(Linux file system) . Они управляют метаданными о файле и являются важной частью внутренней работы Linux

Какова структура файловой системы?(What Is The Structure Of a File System?)

Файловая система делится на две части — блоки данных и индексные дескрипторы. Количество блоков фиксируется после создания и не может быть изменено.

Имя, путь, местоположение, ссылки и другие атрибуты файла не находятся в каталоге. Каталоги — это просто таблицы, содержащие имена файлов с соответствующим номером инода.

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

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

Верхней частью иерархии является сама файловая система. В файловой системе находятся имена файлов. Имена файлов ссылаются на индексные дескрипторы. Иноды ссылаются на физические данные.

Что такое иноды в Linux?(What Are Inodes In Linux?)

Инод — это структура данных. Он определяет файл или каталог в файловой системе и хранится в записи каталога. Inodes указывают на блоки, из которых состоит файл. Индекс содержит все административные данные, необходимые для чтения файла. Метаданные (metadata)каждого(Every) файла хранятся в индексных дескрипторах в табличной структуре.

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

Иноды обычно располагаются в начале раздела(beginning of a partition) . В них хранится вся информация, связанная с файлом, кроме имени файла и фактических данных. Все файлы в любом каталоге Linux имеют имя файла и номер индекса. Пользователи могут получить метаданные для файла, указав номер инода.

Имена файлов(File) и номера инодов хранятся в отдельном индексе и связаны с инодом. Вы можете ссылаться на метаданные, которые представляют файл. Возможно иметь несколько имен файлов, которые ссылаются на один фрагмент данных или индексный дескриптор, как вы можете видеть на изображении ниже.

Что такое номер инода?(What Is The Inode Number?)

Каждый inode в структуре Linux имеет уникальный номер, идентифицируемый с ним. Он также называется порядковым номером и имеет следующие атрибуты:

  • Размер
  • Владелец
  • Дата/время
  • Разрешения и контроль доступа
  • Расположение на диске
  • Типы файлов
  • Количество ссылок
  • Дополнительные метаданные о файле

Чтобы проверить список номеров инодов, используйте следующую команду:

лс -я(ls -i)

На приведенном ниже снимке экрана показан каталог с номерами инодов, отображаемыми в крайнем левом столбце.

Как работают иноды?(How Do Inodes Work?)

Когда вы создаете новый файл, ему присваивается имя файла и номер индексного дескриптора. Оба хранятся как записи в каталоге. Выполнение команды ls (ls -li ) покажет вам список имен файлов и номеров инодов, которые хранятся в каталоге.

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

дф-привет(df -hi)

Сколько инодов вы используете?

Один из способов исчерпать место в файловой системе — использовать все ваши индексные дескрипторы. Даже если у вас достаточно свободного места на диске, вы не сможете создавать новые файлы.

Использование всех инодов также может привести к внезапной остановке вашей системы. Чтобы просмотреть список статистических данных об использовании инодов, таких как используемые, свободные и использованные проценты, введите следующую команду:

судо дф-их(sudo df -ih)

Дополнительные способы использования Inode(Additional Ways Inodes Are Used)

То, как индексные дескрипторы работают в Linux , делает невозможным наличие конфликтующих номеров инодов. Невозможно создать жесткую ссылку между разными файловыми системами. Однако вы можете использовать программные ссылки в разных файловых системах. Вы можете удалить исходные файлы и по-прежнему иметь доступ к данным через жесткую ссылку.

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

Процесс может использовать файл библиотеки в то время, когда другой процесс заменяет тот же файл более новой обновленной версией и создает новый индексный дескриптор. Работающий процесс продолжает использовать старый файл. В следующий раз, когда вы будете использовать тот же процесс, будет использоваться новая версия.

Пользователи не взаимодействуют напрямую с индексными дескрипторами, но они представляют собой фундаментальный компонент файловых структур Linux .



About the author

Я инженер-программист и эксперт по Windows 10. У меня более двух лет опыта работы со смартфонами, Windows 10 и Microsoft Edge. Моя основная задача — сделать так, чтобы ваши устройства работали лучше и быстрее. Я работал над различными проектами для таких компаний, как Verizon, IMac, HP, Comcast и многих других. Я также являюсь сертифицированным инструктором по обучению работе с облачными технологиями Microsoft Azure.



Related posts