Что такое инод Linux
Обновлено: 21.11.2024
Последнее обновление: 19 марта 2021 г.
Автор: Мигель Сальгадо
В этой статье представлен обзор концепции inode и некоторых полезных команд.
Что такое инод?
Linux® должен выделять узел индекса (inode) для каждого файла и каталога в файловой системе. Иноды не хранят фактические данные. Вместо этого они хранят метаданные, где вы можете найти блоки хранения данных каждого файла.
Метаданные в inode
В индексном узле существуют следующие метаданные:
- Тип файла
- Разрешения
- Идентификатор владельца
- Идентификатор группы
- Размер файла
- Время последнего доступа
- Время последнего изменения
- Программные/жесткие ссылки
- Список управления доступом (ACL)
Проверить номер инода в конкретном файле
Есть разные способы проверить номер инода. В следующем примере показано создание файла с именем mytestfile. Команда stat отображает статистику файла, включая уникальный номер индекса:
Вы также можете проверить номер инода mytestfile, указав содержимое каталога. Вы можете запустить комбинацию команд в каталоге с помощью ls или grep , как показано в следующих примерах:
Проверьте использование inode в файловых системах
В следующем примере проверяются индексные дескрипторы во всех смонтированных файловых системах с упором на /dev/xvda1, для которого максимальное количество индексных дескрипторов составляет 1 310 720:
Добавление флага -h к предыдущей команде df не дает точного числа, но обеспечивает более читаемый вывод:
Подсчет инодов в определенном каталоге
Чтобы проверить количество индексных дескрипторов в определенном каталоге, выполните следующую команду:
В следующем примере проверяется количество файлов в каталоге /root.
В данном случае отображаются 11 файлов, созданных в /root.
Что происходит с назначенным индексным узлом при перемещении или копировании файла?
При копировании файла Linux присваивает новому файлу другой индексный дескриптор, как показано в следующем примере:
При перемещении файла все по-другому. Пока файл не меняет файловые системы, индексный дескриптор остается прежним:
В следующем примере файл1 перемещается из /dev/xvda1 в файловую систему /dev/xvdb1:
Когда система перемещала файл в другую файловую систему, она назначала другой индекс.
Рекомендации по снижению использования inode
Вам следует проверить использование вашего индексного дескриптора, поскольку чрезмерное использование может привести к проблемам при создании новых файлов. Выполните следующие действия, чтобы сократить использование:
- Удалите ненужные файлы и каталоги.
- Удалить файлы кеша.
- Удалить старые файлы электронной почты.
- Удалить временные файлы.
Что может произойти, если вы никогда не обращаетесь к inodes?
Несмотря на то, что на сервере есть свободное место на диске, на сервере могут закончиться индексные дескрипторы, что может привести к следующим последствиям, если серверу не хватает индексных дескрипторов при создании дополнительных файлов:
- Вы можете потерять данные.
- Приложения могут аварийно завершать работу.
- Сервер может быть перезапущен.
- Процессы могут не перезапуститься.
- Запланированные задачи могут не выполняться.
Поделитесь этой информацией:
© 2020 Rackspace США, Inc.
Если не указано иное, содержимое этого сайта находится под лицензией Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License
Что такого важного в индексных дескрипторах, что мне нужно следить за ними? Узнайте из этой вводной статьи.
Опубликовано: 9 июня 2020 г. | Тайлер Кэрриган (Red Hat)
Дополнительные ресурсы по Linux
Файловые системы Linux сложны для понимания, особенно когда вы углубляетесь в дебри данных и метаданных. Каждый раз, когда вы запускаете команду ls и видите вывод — список файлов, разрешения, принадлежность учетной записи и т. д. — помните, что данные о файлах, которые вы видите, хранятся где-то отдельно от самих файлов и должны быть призванным. Inodes усердно работают за кулисами, так что вам не нужно. Давайте посмотрим, что такое индексный дескриптор и что он для нас делает.
Что такое индексный дескриптор?
По определению индексный узел является узлом индекса. Он служит уникальным идентификатором для определенного фрагмента метаданных в данной файловой системе. Каждая часть метаданных описывает то, что мы считаем файлом. Все верно, индексные дескрипторы работают в каждой файловой системе независимо от других. Это становится запутанным, когда вы понимаете, что каждый inode хранится в общей таблице. Короче говоря, каждая файловая система, смонтированная на вашем компьютере, имеет свои собственные индексы. Номер инода может использоваться более одного раза, но не одной и той же файловой системой.Идентификатор файловой системы объединяется с номером инода для создания уникальной идентификационной метки.
Сколько инодов?
Если вам не интересна математика, вы можете пропустить этот раздел. В каждой системе есть много индексных дескрипторов, и есть пара цифр, о которых следует знать. Во-первых, и это менее важно, теоретическое максимальное количество инодов равно 2^32 (примерно 4,3 миллиарда инодов). Во-вторых, и это гораздо более важно, это количество инодов в вашей системе. Как правило, соотношение инодов составляет 1:16 КБ емкости системы. Очевидно, что каждая система уникальна, поэтому вам нужно сделать эти расчеты самостоятельно.
Из синтаксиса команды и вывода выше видно, что мы запустили df -i в файловой системе /dev/sda1 . Всего в этой файловой системе 524 288 инодов, из которых используется только 312 (около 1%).
Мы также можем посмотреть номер инода определенного файла. Для этого используем команду ls -i на нужном файле. Например:
Номер инода для этого файла — 1459027.
Как и в случае с файлами, мы также можем видеть индекс каталога. Для этого мы снова используем команду ls -i с несколькими дополнительными параметрами. Например:
Вы можете видеть, что мы использовали -i (иноды), а также -l (длинный формат) и -d (каталог). Эти флаги предоставляют нам множество информации о каталоге my_articles, включая номер инода, разрешения, владельца и т. д.
Inodes — отличное место для начала, если вы хотите больше узнать о файловых системах и их структурах. Важно знать, как маркируются и индексируются наименьшие единицы данных. Некоторые гораздо более сложные операции могут быть выполнены с инодами. Например, вы можете открыть индексный дескриптор и прочитать содержимое файла. Эта возможность дает вам еще более глубокий взгляд на то, какие метаданные там хранятся. Надеемся, что этот общий вид даст вам основу для исследования inode.
Дэйв Маккей
Дэйв Маккей
Писатель
Фатмавати Ахмад Заэнури/Shutterstock
Файловая система Linux основана на индексных дескрипторах. Эти жизненно важные части внутренней работы файловой системы часто понимают неправильно. Давайте посмотрим, что именно они собой представляют и что они делают.
Элементы файловой системы
По определению файловая система должна хранить файлы, и они также содержат каталоги. Файлы хранятся в каталогах, и эти каталоги могут иметь подкаталоги. Что-то где-то должно записывать, где находятся все файлы в файловой системе, как они называются, к каким учетным записям они принадлежат, какие у них разрешения и многое другое. Эта информация называется метаданными, потому что это данные, которые описывают другие данные.
В файловой системе Linux ext4 структуры индексного дескриптора и каталога работают вместе, чтобы обеспечить базовую структуру, в которой хранятся все метаданные для каждого файла и каталога. Они делают метаданные доступными для всех, кто в них нуждается, будь то ядро, пользовательские приложения или утилиты Linux, такие как ls , stat и df .
Иноды и размер файловой системы
Несмотря на то, что существует пара структур, для файловой системы требуется гораздо больше. Существуют тысячи и тысячи каждой структуры. Для каждого файла и каталога требуется индексный дескриптор, а поскольку каждый файл находится в каталоге, для каждого файла также требуется структура каталогов. Структуры каталогов также называются записями каталогов или «dentries».
Каждый индексный дескриптор имеет номер индексного дескриптора, уникальный в файловой системе. Один и тот же номер индекса может появиться более чем в одной файловой системе. Однако идентификатор файловой системы и номер индексного дескриптора вместе составляют уникальный идентификатор, независимо от того, сколько файловых систем смонтировано в вашей системе Linux.
Помните, что в Linux нельзя монтировать жесткий диск или раздел. Вы монтируете файловую систему, которая находится на разделе, поэтому легко иметь несколько файловых систем, не осознавая этого. Если у вас есть несколько жестких дисков или разделов на одном диске, у вас более одной файловой системы. Они могут быть одного типа — например, все ext4, — но они все равно будут разными файловыми системами.
Все индексные дескрипторы хранятся в одной таблице. Используя номер инода, файловая система легко вычисляет смещение в таблице инодов, в которой находится этот инод. Вы можете понять, почему «i» в inode означает индекс.
Переменная, содержащая номер инода, объявлена в исходном коде как 32-разрядное длинное целое без знака.Это означает, что номер индексного дескриптора представляет собой целое число с максимальным размером 2^32, что в результате дает 4 294 967 295 — более 4 миллиардов индексных дескрипторов.
Это теоретический максимум. На практике количество индексных дескрипторов в файловой системе ext4 определяется, когда файловая система создается с соотношением по умолчанию: один индексный дескриптор на 16 КБ емкости файловой системы. Структуры каталогов создаются "на лету", когда используется файловая система, поскольку файлы и каталоги создаются в файловой системе.
Есть команда, с помощью которой вы можете узнать, сколько инодов находится в файловой системе вашего компьютера. Опция -i (inodes) команды df предписывает отображать выходные данные в количестве inodes.
Мы собираемся просмотреть файловую систему в первом разделе первого жесткого диска, поэтому набираем следующее:
Вывод дает нам:
- Файловая система: файловая система, о которой сообщается.
- Inodes: общее количество inodes в этой файловой системе.
- IUsed: количество используемых инодов.
- IFree: количество оставшихся инодов, доступных для использования.
- IUse%: процент используемых инодов.
- Смонтировано: точка подключения для этой файловой системы.
Мы использовали 10% индексных дескрипторов в этой файловой системе. Файлы хранятся на жестком диске в дисковых блоках. Каждый индекс указывает на блоки диска, в которых хранится содержимое файла, который они представляют. Если у вас есть миллионы крошечных файлов, у вас могут закончиться индексные дескрипторы до того, как закончится место на жестком диске. Однако столкнуться с такой проблемой очень сложно.
В прошлом эта проблема возникала на некоторых почтовых серверах, которые хранили сообщения электронной почты в виде отдельных файлов (что быстро приводило к созданию больших коллекций небольших файлов). Однако когда эти приложения изменили свою серверную часть на базы данных, это решило проблему. Обычная домашняя система не исчерпает свои индексные дескрипторы, и это хорошо, потому что в файловой системе ext4 вы не можете добавить дополнительные индексные дескрипторы без переустановки файловой системы.
Чтобы узнать размер дисковых блоков в вашей файловой системе, вы можете использовать команду blockdev с параметром --getbsz (получить размер блока):
Размер блока – 4096 байт.
Давайте воспользуемся параметром -B (размер блока), чтобы указать размер блока 4096 байт и проверить обычное использование диска:
Эти выходные данные показывают нам:
- Файловая система: файловая система, о которой мы отчитываемся.
- 4K-blocks: общее количество блоков по 4 КБ в этой файловой системе.
- Использовано: сколько блоков 4K используется.
- Доступно: количество оставшихся блоков размером 4 КБ, доступных для использования.
- Использование%: процент использованных блоков по 4 КБ.
- Смонтировано: точка подключения для этой файловой системы.
В нашем примере для хранения файлов (а также для хранения индексных дескрипторов и структур каталогов) используется 28 % пространства в этой файловой системе за счет 10 % инодных дескрипторов, так что все в порядке.< /p>
Метаданные Inode
Чтобы увидеть номер инода файла, мы можем использовать ls с параметром -i (инод):
Номер инода для этого файла — 1441801, поэтому этот инод содержит метаданные для этого файла и, традиционно, указатели на дисковые блоки, где находится файл на жестком диске. Если файл фрагментирован, очень велик или и то, и другое, некоторые блоки, на которые указывает индексный дескриптор, могут содержать дополнительные указатели на другие блоки диска. И некоторые из этих других дисковых блоков могут также содержать указатели на другой набор дисковых блоков. Это решает проблему, связанную с тем, что индексный дескриптор имеет фиксированный размер и может содержать конечное число указателей на дисковые блоки.
Этот метод был заменен новой схемой, использующей «экстенты». Они записывают начальный и конечный блоки каждого набора смежных блоков, используемых для хранения файла. Если файл не фрагментирован, вам нужно сохранить только первый блок и длину файла. Если файл фрагментирован, вы должны сохранить первый и последний блоки каждой части файла. Этот метод (очевидно) более эффективен.
Если вы хотите узнать, использует ли ваша файловая система указатели блоков диска или экстенты, вы можете заглянуть внутрь индексного дескриптора. Для этого мы воспользуемся командой debugfs с параметром -R (запрос) и передадим ей индексный дескриптор интересующего файла. Это просит debugfs использовать свою внутреннюю команду «stat» для отображения содержимого индексного дескриптора.Поскольку номера инодов уникальны только в пределах файловой системы, мы также должны сообщить debugfs файловую систему, в которой находится инод.
Вот как будет выглядеть этот пример команды:
Как показано ниже, команда debugfs извлекает информацию из индексного дескриптора и представляет ее нам в формате less :
Нам показана следующая информация:
Где имя файла?
Теперь у нас есть много информации о файле, но, как вы могли заметить, мы не получили имя файла. Здесь в игру вступает структура каталогов. В Linux, как и у файла, у каталога есть индексный дескриптор. Однако индексный дескриптор каталога указывает не на блоки диска, содержащие файловые данные, а на блоки диска, содержащие структуры каталогов.
По сравнению с inode, структура каталогов содержит ограниченный объем информации о файле. Он содержит только номер инода файла, имя и длину имени.
Инод и структура каталогов содержат все, что вам (или приложению) нужно знать о файле или каталоге. Структура каталогов находится в блоке диска каталогов, поэтому мы знаем каталог, в котором находится файл. Структура каталогов дает нам имя файла и номер индексного дескриптора. Индексный дескриптор сообщает нам все остальное о файле, включая временные метки, разрешения и местонахождение файловых данных в файловой системе.
Иноды каталога
Вы можете увидеть номер индексного дескриптора каталога так же легко, как и файлы.
В следующем примере мы будем использовать ls с параметрами -l (длинный формат), -i (инод) и -d (каталог) и смотреть на рабочий каталог:
Поскольку мы использовали параметр -d (каталог), ls сообщает о самом каталоге, а не о его содержимом. Индексный дескриптор этого каталога — 1443016.
Чтобы повторить это для домашнего каталога, введите следующее:
Инод домашнего каталога — 1447510, а рабочий каталог находится в домашнем каталоге. Теперь давайте посмотрим на содержимое рабочего каталога. Вместо опции -d (каталог) мы будем использовать опцию -a (все). Это покажет нам записи каталога, которые обычно скрыты.
Вводим следующее:
Поскольку мы использовали параметр -a (все), отображаются записи с одной (.) и двойной точкой (..). Эти записи представляют сам каталог (одна точка) и его родительский каталог (двойная точка).
Если вы посмотрите на номер инода для записи с одной точкой, вы обнаружите, что это 1443016 — тот же номер инода, который мы получили, когда обнаружили номер инода для рабочего каталога. Кроме того, номер инода для записи с двумя точками совпадает с номером инода для домашнего каталога.
Вот почему вы можете использовать команду cd .. для перехода на уровень вверх в дереве каталогов. Аналогичным образом, если перед именем приложения или сценария вы ставите ./ , вы сообщаете оболочке, откуда следует запускать приложение или сценарий.
Иноды и ссылки
Как мы уже говорили, для правильно сформированного и доступного файла в файловой системе необходимы три компонента: файл, структура каталогов и индексный дескриптор. Файл — это данные, хранящиеся на жестком диске, структура каталогов содержит имя файла и номер его индексного дескриптора, а индексный дескриптор содержит все метаданные файла.
Символические ссылки — это элементы файловой системы, которые выглядят как файлы, но на самом деле являются ярлыками, указывающими на существующий файл или каталог. Давайте посмотрим, как им это удается и как для этого используются три элемента.
Допустим, у нас есть каталог с двумя файлами: один — скрипт, а другой — приложение, как показано ниже.
Мы можем использовать команду ln и параметр -s (символический), чтобы создать программную ссылку на файл сценария, например:
Мы создали ссылку на my_script.sh с именем geek.sh . Мы можем ввести следующее и использовать ls для просмотра двух файлов скриптов:
Запись для компьютерщиков.sh отображается синим цветом. Первый символ флагов разрешений — это «l» для ссылки, а -> указывает на my_script.sh. Все это указывает на то, что geek.sh является ссылкой.
Как и следовало ожидать, два файла сценария имеют разные номера инодов. Что может быть более удивительным, так это то, что программная ссылка geek.sh не имеет тех же разрешений пользователя, что и исходный файл сценария. На самом деле разрешения для geek.sh гораздо более либеральны — все пользователи имеют полные разрешения.
Структура каталогов для geek.sh содержит имя ссылки и ее индексный дескриптор. Когда вы пытаетесь использовать ссылку, ссылаются на ее индексный дескриптор, как и на обычный файл. Инод ссылки будет указывать на блок диска, но вместо данных о содержимом файла блок диска содержит имя исходного файла. Файловая система перенаправляет на исходный файл.
Мы удалим исходный файл и посмотрим, что произойдет, если мы введем следующее для просмотра содержимого geek.sh :
Символическая ссылка не работает, и перенаправление не выполняется.
Теперь мы вводим следующее, чтобы создать жесткую ссылку на файл приложения:
Чтобы посмотреть индексные дескрипторы этих двух файлов, введите следующее:
Оба выглядят как обычные файлы. Ничто в geek-app не указывает на то, что это ссылка, как в листинге ls для geek.sh. Кроме того, geek-app имеет те же права пользователя, что и исходный файл. Однако может показаться удивительным, что оба приложения имеют одинаковый номер индексного дескриптора: 1441797.
Запись каталога для geek-app содержит имя «geek-app» и номер индекса, но он совпадает с номером индекса исходного файла. Итак, у нас есть две записи файловой системы с разными именами, которые указывают на один и тот же индексный дескриптор. На самом деле любое количество элементов может указывать на один и тот же индексный дескриптор.
Мы введем следующее и воспользуемся программой stat для просмотра целевого файла:
Мы видим, что две жесткие ссылки указывают на этот файл. Это хранится в индексном узле.
В следующем примере мы удаляем исходный файл и пытаемся использовать ссылку с секретным безопасным паролем:
Удивительно, но приложение работает так, как ожидалось, но как? Это работает, потому что когда вы удаляете файл, индексный дескриптор можно использовать повторно. Структура каталогов помечается как имеющая нулевой индексный дескриптор, после чего блоки диска становятся доступными для хранения другого файла в этом пространстве.
Однако, если количество жестких ссылок на индексный дескриптор больше одной, счетчик жестких ссылок уменьшается на единицу, а номер инода структуры каталогов удаленного файла устанавливается равным нулю. Содержимое файла на жестком диске и в индексном узле по-прежнему доступно для существующих жестких ссылок.
Мы введем следующее и воспользуемся статистикой еще раз — на этот раз для geek-app:
Эти сведения извлекаются из того же индексного узла (1441797), что и предыдущая команда stat. Количество ссылок уменьшилось на одну.
Поскольку у нас осталась только одна жесткая ссылка на этот индексный дескриптор, удаление geek-app действительно приведет к удалению файла. Файловая система освободит индекс и пометит структуру каталогов нулевым индексом. После этого новый файл может перезаписать хранилище данных на жестком диске.
Накладные расходы Inode
это удобная система, но есть накладные расходы. Чтобы прочитать файл, файловая система должна выполнить следующие действия:
- Найти правильную структуру каталогов
- Прочитать номер инода
- Найти нужный индекс
- Прочитать информацию об индексном узле
- Следуйте ссылкам inode или экстентам на соответствующие блоки диска.
- Прочитать данные файла
Необходимо немного больше прыгать, если данные несмежные.
Представьте себе работу, которую нужно выполнить, чтобы ls выполнила список файлов длинного формата из множества файлов. ls выполняет множество операций туда и обратно только для того, чтобы получить информацию, необходимую для создания выходных данных.
Конечно, ускорение доступа к файловой системе — это то, почему Linux старается максимально упреждающе кэшировать файлы. Это очень помогает, но иногда — как и в случае с любой файловой системой — накладные расходы могут стать очевидными.
Теперь вы поймете, почему.
Команды Linux | |
Файлы | tar · pv · cat · tac · chmod · grep · diff · sed · ar · man · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · join · jq · fold · uniq · journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev · look · strings · type · rename · zip · unzip · mount · umount · install · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · patch · convert · rclone · shred · srm |
Процессы | alias · screen · top · nice · renice · прогресс · strace · systemd · tmux · chsh · история · at · пакетное · бесплатное · которое · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · timeout · стена · yes · kill · спать · sudo · su · время · groupadd · usermod · группы · lshw · выключение · перезагрузка · halt · poweroff · passwd · lscpu · crontab · date · bg · fg |
Сеть | netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · копать · finger · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw |
- › Объяснение временных меток файлов Linux: atime, mtime и ctime
- › Как восстановить удаленные файлы в Linux с помощью testdisk
- › Как использовать команду fsck в Linux
- › Как восстановить метки панели задач в Windows 11
- › Что означает XD и как вы его используете?
- › Как установить Google Play Маркет в Windows 11
- › Почему прозрачные чехлы для телефонов желтеют?
- ›5 шрифтов, которые следует прекратить использовать (и лучшие альтернативы)
Все в Linux считается файлом для обеспечения согласованности. Сюда входят аппаратные устройства, принтеры, каталоги и процессы. Обычные файлы, такие как музыка, текст, видео и другие мультимедийные файлы, также содержат дополнительные данные, связанные с ними, называемые метаданными.
Что такое индексные дескрипторы в Linux? Записи Inode являются основой файловой системы Linux. Они управляют метаданными о файле и являются важной частью внутренней работы Linux.
Какова структура файловой системы?
Файловая система разделена на две части: блоки данных и индексные дескрипторы. Количество блоков фиксируется после создания и не может быть изменено.
Имя, путь, местоположение, ссылки и другие атрибуты файла не находятся в каталоге. Каталоги — это просто таблицы, содержащие имена файлов с соответствующим номером индексного дескриптора.
Вы можете создать жесткую ссылку, которая приведет к нескольким именам для одного и того же файла. Когда вы создаете жесткую ссылку, она также создает новое имя в таблице с индексным узлом, но не перемещает файл.
Если бы вы переместили большой файл, это заняло бы много времени. Более эффективно создать запись имени в новом каталоге и удалить старую запись. Вы также можете переименовывать файлы таким же образом.
Верхняя часть иерархии — это сама файловая система. В файловой системе находятся имена файлов. Имена файлов ссылаются на индексные дескрипторы. Индексные дескрипторы ссылаются на физические данные.
Что такое индексные дескрипторы в Linux?
Инод — это структура данных. Он определяет файл или каталог в файловой системе и хранится в записи каталога. Inodes указывают на блоки, из которых состоит файл. Индекс содержит все административные данные, необходимые для чтения файла. Метаданные каждого файла хранятся в индексных дескрипторах в табличной структуре.
При использовании программы, которая обращается к файлу по имени, система будет искать в файле записи каталога, где он существует, чтобы получить соответствующий индексный дескриптор. Это дает вашей системе файловые данные и информацию, необходимые для выполнения процессов или операций.
Иноды обычно располагаются в начале раздела. В них хранится вся информация, связанная с файлом, кроме имени файла и фактических данных. Все файлы в любом каталоге Linux имеют имя файла и номер индекса. Пользователи могут получить метаданные файла, указав номер индексного дескриптора.
Имена файлов и номера индексных дескрипторов хранятся в отдельном индексе и связаны с индексным дескриптором. Вы можете ссылаться на метаданные, которые представляют файл. Можно иметь несколько имен файлов, которые ссылаются на один фрагмент данных или индексный дескриптор, как показано на изображении ниже.
Что такое номер инода?
Каждый inode в структуре Linux имеет уникальный номер, связанный с ним. Он также называется порядковым номером и имеет следующие атрибуты:
- Размер
- Владелец
- Дата/время
- Разрешения и контроль доступа
- Расположение на диске
- Типы файлов
- Количество ссылок
- Дополнительные метаданные о файле
Чтобы проверить список номеров инодов, используйте следующую команду:
ls-i
На приведенном ниже снимке экрана показан каталог с номерами индексных дескрипторов в крайнем левом столбце.
Как работают иноды?
При создании нового файла ему присваивается имя файла и номер индексного дескриптора. Оба хранятся как записи в каталоге. Запустив команду ls (ls -li), вы увидите список имен файлов и номеров инодов, которые хранятся в каталоге.
Используйте приведенную ниже команду, чтобы вывести информацию об индексных дескрипторах для каждой файловой системы.
дф-привет
Сколько инодов вы используете?
Один из способов исчерпать свободное место в файловой системе – использовать все ваши индексные дескрипторы. Даже если на вашем диске достаточно свободного места, вы не сможете создавать новые файлы.
Использование всех индексных дескрипторов также может привести к внезапной остановке вашей системы. Чтобы просмотреть список статистических данных об использовании инодов, таких как используемые, свободные и процент использования, введите следующую команду:
sudo df -ih
Дополнительные способы использования Inode
Способ работы инодов в Linux делает невозможным наличие конфликтующих номеров инодов. Невозможно создать жесткую ссылку между разными файловыми системами. Однако вы можете использовать программные ссылки в разных файловых системах. Вы можете удалить исходные файлы и по-прежнему иметь доступ к данным через жесткую ссылку.
Удаляя файл, вы всего лишь удаляете одно из имен, указывающих на определенный номер индексного дескриптора. Данные останутся до тех пор, пока вы не удалите все имена, связанные с одним и тем же номером инода. Системы Linux обновляются без перезагрузки системы, в значительной степени из-за того, как работают индексные дескрипторы.
Процесс может использовать файл библиотеки в то время, когда другой процесс заменяет тот же файл более новой обновленной версией и создает новый индексный дескриптор. Запущенный процесс продолжает использовать старый файл. В следующий раз, когда вы будете использовать тот же процесс, будет использоваться новая версия.
Пользователи не взаимодействуют напрямую с индексными дескрипторами, но они представляют собой фундаментальный компонент файловых структур Linux.
Дэвид имеет опыт работы в малом бизнесе и живет в Австралии. Он разработчик WordPress и Ubuntu, которому нравится дизайн, CSS и интеграция технических инструментов. Прочитать полную биографию Дэвида
Понравился ли вам этот совет? Если это так, загляните на наш канал YouTube на нашем родственном сайте Online Tech Tips. Мы охватываем Windows, Mac, программное обеспечение и приложения, а также предлагаем множество советов по устранению неполадок и обучающих видеороликов. Нажмите кнопку ниже, чтобы подписаться!
Инод — это структура данных, в которой хранится различная информация о файле в Linux, такая как режим доступа (чтение, запись, выполнение разрешений), владелец, тип файла, размер файла, группа, количество ссылок и т. д. Каждая inode идентифицируется целым числом. Индексный дескриптор назначается файлу при его создании.
Некоторые файловые системы (особенно ext3) создают все индексные дескрипторы при создании файловой системы. Это означает, что возможно исчерпание памяти, поскольку используются все иноды, хотя на диске есть свободное место. Другие файловые системы (например, xfs) создают индексные дескрипторы по мере необходимости.
Вы можете просмотреть номер инода файла с помощью команды ls -il:
Первое число слева представляет номер инода файла.
- Обзор
- Установка
- Оболочка
- Редактирование текста
- Управление процессами
- Установка приложений
- Управление пользователями
- Управление группами
- Разрешения
- Управление оборудованием
- Загрузить Linux
- Сетевые протоколы
- Основы работы в сети
- Сетевые инструменты
- Обзор файловых систем
- Разметка диска
- Настроить жесткие диски
- Настройка дисковых квот
- Ведение журнала
- Планирование заданий
- Дата и время
- Электронная почта
- Сценарии оболочки
- Разное
сообщить об этом объявлении
Читайте также: