What is inode in Linux?
Inode stands for Index Node. Although history is not quite sure about that, it is the most logical and best guess they came up with. It used to be written I-node, but the hyphen got lost over time.
As describe on linfo.org:
Inodes stores metadata about the file it refers to. This metadata contains all the information about the said file.
- Size.
- Permission.
- Owner/Group.
- Location of the hard drive.
- Date/time.
- Any other information needed.
Every used inodes refers to 1 file. Every file has 1 inode. Directories, character files, block devices, they are all files. They each have 1 inode.
For each file in a directory there is an entry containing the filename and the inode number associated with it.
Inodes are unique at the partition level. You can have two files with the same inode number given they are on different partition. Inodes information is store in a table like structure in a strategic parts of each partition. Often found near the beginning.
Организация работы с двумя и более файловыми системами
Разработчики операционных систем стремятся обеспечить пользователя возможностью работать сразу с несколькими файловыми системами. В этом понимании файловая система состоит из многих составляющих, в число которых входят и файловые системы в традиционном понимании.
На верхнем уровне располагается так называемый переключатель файловых систем. Он обеспечивает интерфейс между запросами приложения и конкретной файловой системой, к которой обращается это приложение. Переключатель файловых систем преобразует запросы в формат, воспринимаемый следующим уровнем — уровнем файловых систем.
Каждый компонент уровня файловых систем выполнен в виде драйвера соответствующей файловой системы и поддерживает определенную организацию файловой системы. Переключатель является единственным модулем, который может обращаться к драйверу файловой системы. Приложение не может обращаться к нему напрямую. Каждый драйвер файловой системы в процессе собственной инициализации регистрируется у переключателя, передавая ему таблицу точек входа, которые будут использоваться при последующих обращениях к файловой системе.
Для выполнения своих функций драйверы файловых систем обращаются к подсистеме ввода-вывода, образующей следующий слой. Подсистема ввода-вывода — это составная часть файловой системы, которая отвечает за загрузку, инициализацию и управление всеми модулями низших уровней файловой системы. Обычно эти модули представляют собой драйверы портов, которые непосредственно занимаются работой с аппаратными средствами. Кроме этого подсистема ввода-вывода обеспечивает некоторый сервис драйверам файловой системы, что позволяет им осуществлять запросы к конкретным устройствам. Подсистема ввода-вывода должна постоянно присутствовать в памяти и организовывать совместную работу иерархии драйверов устройств. В эту иерархию могут входить драйверы устройств определенного типа (драйверы жестких дисков или накопителей на лентах), драйверы, поддерживаемые поставщиками (такие драйверы перехватывают запросы к блочным устройствам и могут частично изменить поведение существующего драйвера этого устройства, например, зашифровать данные), драйверы портов, которые управляют конкретными адаптерами.
Большое число уровней архитектуры файловой системы обеспечивает авторам драйверов устройств большую гибкость — драйвер может получить управление на любом этапе выполнения запроса — от вызова приложением функции, которая занимается работой с файлами, до того момента, когда работающий на самом низком уровне драйвер устройства начинает просматривать регистры контроллера. Многоуровневый механизм работы файловой системы реализован посредством цепочек вызова.
В ходе инициализации драйвер устройства может добавить себя к цепочке вызова некоторого устройства, определив при этом уровень последующего обращения. Подсистема ввода-вывода помещает адрес целевой функции в цепочку вызова устройства, используя заданный уровень для того, чтобы должным образом упорядочить цепочку. По мере выполнения запроса, подсистема ввода-вывода последовательно вызывает все функции, ранее помещенные в цепочку вызова.
Внесенная в цепочку вызова процедура драйвера может решить передать запрос дальше — в измененном или в неизмененном виде — на следующий уровень, или, если это возможно, процедура может удовлетворить запрос, не передавая его дальше по цепочке.
Польза от инодов
Принцип работы инодов также объясняет, почему невозможно создать жесткую ссылку из одной файловой системы в другую. Разрешение такой задачи открыло бы возможность наличия конфликтующих номеров инодов. В то же время, символьная ссылка может быть создана в разных файловых системах.
Поскольку жесткая ссылка имеет тот же номер инода, что и исходный файл, то вы можете удалить исходный файл, и данные по-прежнему будут доступны по жесткой ссылке. Всё, что вы сделали в этом случае, — это удалили одно из имен, указывающих на заданный номер инода. Данные, связанные с этим инодом, будут оставаться доступными до тех пор, пока все имена, связанные с ним, не будут удалены.
Иноды также являются важной причиной, по которой Linux-системы могут обновляться без необходимости перезагрузки: один процесс может использовать библиотечный файл, в то время как другой процесс заменяет этот файл новой версией. Уже запущенный процесс будет продолжать использовать старый файл, в то время как каждый новый вызов к нему приведет к использованию новой версии
Еще одна интересная функция, которая поставляется с инодами, — это возможность хранить данные в самом иноде. Это называется встраиванием (англ. «inlining»). Этот метод хранения имеет преимущество в экономии места, поскольку не требует использования блоков данных, но при этом также увеличивает время поиска, избегая дополнительного доступа к диску для получения данных.
В некоторых файловых системах, таких как , есть опция под названием inline_data, которая позволяет операционной системе хранить данные вышеописанным способом. Из-за ограничения размера встраивание работает только для очень маленьких файлов.
Назначение Inode в ОС Linux
Для ОС Linux есть такое понятие, как Inode или индексный дескриптор. Индексные дескрипторы в файловых системах (таких как ext4) предназначены для хранения метаданных о файлах, каталогах и др. объектах.
Представим иерархическую структуру файловой системы Линукс в упрощенном виде:
- верхушка иерархии — это сама файловая система;
- уровнем ниже идут имена файлов (папок);
- имена файлов ссылаются на inode;
- inode ссылаются на физические данные.
Таким образом, файловая система Linux содержит блоки для хранения данных и inodes. По умолчанию, в ext4, 4092 байта — это размер одного блока. Любой файл в каталоге ОС Linux имеет имя файла и номер inode. Пользователь может узнать метаданные этого файла, указав его номер inode.
Как правило, каждый Inode хранит следующие атрибуты:
- размер;
- владелец;
- дата/время;
- разрешения и контроль доступа;
- расположение на диске;
- тип файла;
- количество ссылок;
- дополнительные метаданные о файле.
Таблица с Inode размещена в начале раздела диска, после нее уже идут блоки с данными. Директории в ОС Линукс рассматриваются как Inode типа «директория», в них содержатся списки имен файлов и номера их inode.
Для ОС Линукс также важно понятие о ссылках (символические и жесткие ссылки). Символическая ссылка — это по своей сути «ярлык», она содержит адрес файла
Символическая ссылка — это по своей сути «ярлык», она содержит адрес файла.
Если вы попытаетесь открыть такую ссылку, то откроется соответствующий файл (папка). Если удалить данный файл (папку), символическая ссылка не удалится, но при попытке открыть ее — она приведет «в никуда». Номер Inоdе «символической ссылки» отличается от номера inоde того файла, на который она ссылается.
Если же вы используете «жесткие ссылки», то ваш конкретный файл находится только в определенном месте жесткого диска, а уже именно на это место и ведут сразу несколько ссылок. Каждая «жесткая ссылка» представлена в виде отдельного файла, однако все такого вида ссылки указывают на один и тот же участок диска (даже если мы перемещаем этот файл между разными каталогами). Жесткая ссылка в системе идет под таким же номером Inode, как и фaйл, на который она ссылается.
Казалось бы, тема «Inode в ОС Linux» — это сфера деятельности системных администраторов и не касается рядовых пользователей, однако, у вас может произойти такой случай, когда на диске вроде бы есть еще свободное место, а вот новые файлы вы уже создавать не можете, так как у вас закончились номера inode. В данной статье мы объясняем зачем нужен inode, а также рассмотрим, как работать с linux инод и дадим все необходимые команды для этого.
Размещение атрибутов
Пользователь может получать доступ к атрибутам, используя средства, предоставленные для этих целей файловой системой. Обычно разрешается читать значения любых атрибутов, а изменять — только некоторые. Например, пользователь может изменить права доступа к файлу (при условии, что он обладает необходимыми для этого полномочиями), но изменять дату создания или текущий размер файла ему не разрешается.
Значения атрибутов файлов могут непосредственно содержаться в каталогах, как это сделано в файловой системе MS DOS (см. рисунок 1). На рисунке представлена структура записи в каталоге, содержащая простое символьное имя и атрибуты файла. Здесь буквами обозначены признаки файла: R — только для чтения, А — архивный, Н — скрытый, S — системный.
Рисунок 1 – Структура каталогов
Способ размещения атрибутов UNIX
Другим вариантом является размещение атрибутов в специальных таблицах, когда в каталогах содержатся только ссылки на эти таблицы. Такой подход реализован, например, в файловой системе ufs ОС UNIX. В этой файловой системе структура каталога очень простая. Запись о каждом файле содержит короткое символьное имя файла и указатель на индексный дескриптор файла, так называется в ufs таблица, в которой сосредоточены значения атрибутов файла.В том и другом вариантах каталоги обеспечивают связь между именами файлов и собственно файлами. Однако подход, когда имя файла отделено от его атрибутов, делает систему более гибкой. Например, файл может быть легко включен сразу в несколько каталогов. Записи об этом файле в разных каталогах могут содержать разные простые имена, но в поле ссылки будет указан один и тот же номер индексного дескриптора.
Inodes & Soft/Hard link
Soft link or symbolic link is a well known feature of Linux. But what happens with Inodes when you create a symbolic link in Linux? In the next picture I have a directory called “dir1“, a file named “file1” and inside “dir1” I have a soft link called “slink1” which points to “../file1“
Now I can list recursively and show the inode information.
As expected, dir1 and file1 have different inode number. But so does the soft link. When you create a soft link, you create a new file. In its metadata, it points to the target. For every soft link you create, you use one inode.
After creating a hard link in dir1 with the ln command:
Listing of inodes number gives me the following information:
You can see that “file1″ and “hlink1” have the same inode number. Truthfully, hard links are possible because of inodes. A hard link does not create a new file. It only provides a new name for the same data.
In older versions of Linux it was possible to hard link a directory. It was even possible to have a given directory be its own parent. This was made possible because of inode implementation. This is now restricted to prevent users from creating a very confusing structure of directories.
Другие значения inode
Работа inode также объясняет, почему невозможно создать жесткую ссылку на другую файловую систему. Разрешение такой задачи откроет возможность наличия конфликтующих номеров inods. Мягкая ссылка, с другой стороны, может быть создана в другой файловой системе.
Поскольку жесткая ссылка имеет тот же номер inode, что и исходный файл, вы можете удалить исходный файл, и данные по-прежнему доступны через жесткую ссылку. Все, что вы сделали в этом случае, это удалите одно из имен, указывающих на этот номер inode. Данные, связанные с этим номером inode, будут оставаться доступными до тех пор, пока не будут удалены все связанные с ним имена.
Inode также являются важной причиной, по которой система Linux может обновляться без перезагрузки. Это связано с тем, что один процесс может использовать файл библиотеки, в то время как другой процесс заменяет этот файл новой версией
Поэтому создаем новый индекс для нового файла. Уже запущенный процесс будет продолжать использовать старый файл, в то время как каждый новый вызов приведет к использованию новой версии.
Еще одна интересная особенность, которая поставляется с inode – это возможность хранить данные в самом inode. Это называется Inlining. Преимущество этого метода хранения заключается в экономии места, поскольку блок данных не потребуется. Это также увеличивает время поиска, избегая большего доступа к диску для получения данных.
В некоторых файловых системах, таких как ext4, есть опция inline_data. Когда он включен, он позволяет операционной системе хранить данные таким образом. Из-за ограничения размера вставка работает только для очень маленьких файлов. Ext2 и более поздние версии часто сохраняют информацию о мягких ссылках таким образом. То есть если размер не более 60 байт.
Заключение
Inode – это не то, с чем вы взаимодействуете напрямую, но они играют важную роль. Если раздел должен содержать много очень маленьких файлов, таких как почтовый сервер, знание того, что они из себя представляют и как они работают, может спасти вас от многих проблем в будущем.
Файловая система ext4
Файловая система ext4 была представлена в октябре 2008 года вместе с ядром Linux 2.6.28. Она поддерживает максимальный размер файла в 16 тебибайт и ограничивает максимальную длину имени файла 255 байтами.
Особенности файловой системы ext4
Давайте рассмотрим основной функционал файловой системы ext4:
Обратная совместимость. Файловая система ext4 поддерживает обратную совместимость с файловыми системами ext3 и ext2. Дополнительной функцией является автоматическое монтирование файловой системы ext3 в режиме ext3 с помощью драйвера ext4.
Улучшения распределения. Файловая система ext4 более эффективно распределяет блоки данных перед их записью на диск. Это повышает производительность как чтения, так и записи.
Расширение диапазона временных меток. Файловая система ext4 добавляет еще 408 лет к диапазону значений временных меток и поддерживает даты вплоть до 10 мая 2446 года. Также улучшилась точность временных меток — теперь они измеряются в наносекундах.
Многоблочное распределение. Особый механизм распределения блоков ищет свободные блоки, которые можно использовать для записи данных на диск. Файловая система ext4 задействует многоблочное распределение, позволяющее распределять несколько блоков всего лишь одним вызовом. Это уменьшает фрагментацию диска.
Отложенное распределение. Функция отложенного распределения выделяет блоки только при записи файла на диск. Благодаря этой функции кэш-память не заполняется ненужными данными, а производительность системы повышается.
Неограниченное количество подкаталогов. Ядро Linux версии 2.6.23 поддерживает неограниченное количество подкаталогов. Файловая система ext4 ввела древовидную структуру данных HTree, чтобы избежать снижения производительности. HTree представляет собой специализированную версию B-дерева.
Подсчет контрольных сумм. Файловая система ext4 использует подсчет контрольной суммы файлов. Данный механизм был введен для снижения риска повреждения файлов. Система ведения логов является наиболее используемой частью диска. Когда происходит сбой оборудования, блоки становятся непригодными для использования и происходит повреждение файлов. Используя подсчет контрольной суммы, система постоянно проверяет, не поврежден ли блок. Этот процесс также повышает производительность, поскольку сокращает время работы с лог-файлом.
Быстрая проверка файловой системы. Файловая система ext4 помечает нераспределенные группы блоков. Время, необходимое для выполнения команды проверки диска , значительно сокращается, поскольку отмеченные группы пропускаются. Это повышает общую производительность.
Онлайн-дефрагментация. Фрагментация диска приводит к снижению производительности файловой системы, что было серьезной проблемой для ext2 и ext3. Файловая система ext4 поддерживает утилиту e4defrag, которая позволяет пользователям дефрагментировать отдельные файлы или всю файловую систему.
Ограничения файловой системы ext4
Хотя файловая система ext4 считается лучшей файловой системой для дистрибутивов Linux, есть несколько ограничений, которые следует учитывать в вашей дальнейшей работе:
Восстановление поврежденных данных. Файловая система ext4 не может обнаружить или восстановить поврежденные данные, уже записанные на диск.
Максимальный размер тома установлен в 1 эксбибайт. Однако файловая система не может обрабатывать более 100 тебибайт данных без значительной потери производительности и увеличения фрагментации диска.
Используются дополнительные способы Inode
То, как работают inode в Linux, делает невозможным наличие конфликтующих номеров inode. Невозможно создать жесткую ссылку на разные файловые системы. Однако вы можете использовать программные ссылки в разных файловых системах. Вы можете удалить исходные файлы и по-прежнему иметь доступ к данным по жесткой ссылке.
Удалив файл, все, что вы сделали, это удалили одно из имен, указывающих на конкретный номер инода. Данные будут оставаться до тех пор, пока вы не удалите все имена, связанные с тем же номером инода. Обновление систем Linux без перезагрузки системы в значительной степени из-за способа работы inode.
Процесс может одновременно использовать файл библиотеки, другой процесс заменяет этот же файл более новой обновленной версией и создает новый индекс. Запущенный процесс продолжает использовать старый файл. В следующий раз, когда вы будете использовать тот же процесс, он будет использовать новую версию.
Пользователи не взаимодействуют напрямую с inode, но они представляют фундаментальный компонент файловых структур Linux.
Как работают иноды?
Когда вы создаете новый файл, ему присваивается имя файла и номер индекса. Оба хранятся в виде записей в каталоге. Выполнение команды ls (ls -li) покажет вам список имен файлов и номеров узлов, которые хранятся в каталоге.
Используйте команду ниже, чтобы вывести информацию об узлах для каждой файловой системы.
дф-хи
Сколько Inode вы используете?
Один из способов освободить место в файловой системе — это использовать все ваши inode. Даже если у вас достаточно свободного места на диске, вы не сможете создавать новые файлы.
Использование всех инодов также может привести к внезапной остановке системы. Чтобы просмотреть список статистических данных об использовании inode, таких как used, free и процент использования, введите следующую команду:
sudo df -ih
Добавление журнальной файловой системы на предварительно определенный логический том
Для создания файловой системы на
предварительно определенном логическом
томе рекомендуется использовать
инструмент SMIT, который даёт высокий уровень
контроля за указанием всех необходимых
параметров и позволяет избежать ошибок при
создании файловой системы.
Этот процесс форматирует логический том
для использования файловой системой.
# smit crjfslv
Add a
File System on a Previously Defined Logical Volume
Type or select values in entry fields.
Press Enter AFTER making all desired changes.
* LOGICAL VOLUME name
* MOUNT POINT[]+Mount AUTOMATICALLY at system
restartno+PERMISSIONSread/write+Mount OPTIONS[]+
Start Disk Accounting?no+Fragment Size (bytes)4096+Number of bytes per inode4096+Compression algorithmno+
F1=HelpF2=RefreshF3=CancelF4=List
F5=ResetF6=CommandF7=EditF8=Image
F9=ShellF10=ExitEnter=Do
Что не хранится в inodes
Инода не содержит время создания файла и его имени. Это атрибуты таблицы директориев (directory table). Когда юзер пробует получить к файлу доступ, происходит последующее:
— по названии файла в таблице директориев определяется соответственный ему номер иноды,
— по номеру иноды происходит воззвание к Inode table и считываются метаданные,
начинается работа с файлом, если это может быть.
В файловых системах, таких как ext3 либо ext4, иноды создаются сходу совместно с ФС. При разработке ФC количество инод определяется параметром -i команды mkfs. Чем больше это число, тем меньше инод создается совместно с ФС. Если создавать ФС с параметром -O largefile, то это будет равносильно заданию -i 1048576, т.е. 1 шт./Мб. А уменьшать -i можно прямо до размера блока, который обычно составляет 4 кб.
Что такое Inode в Linux?
Индод — это структура данных. Он определяет файл или каталог в файловой системе и хранится в записи каталога. Иноды указывают на блоки, которые составляют файл. Индод содержит все административные данные, необходимые для чтения файла. Метаданные каждого файла хранятся в inode в табличной структуре.
При использовании программы, которая ссылается на файл по имени, система ищет файл записи каталога, в котором он существует, чтобы получить соответствующий индекс. Это дает вашей системе данные файла и информацию, необходимую для выполнения процессов или операций.
Иноды обычно расположены в начале раздела . Они хранят всю информацию, связанную с файлом, кроме имени файла и фактических данных. Все файлы в любом каталоге Linux имеют имя файла и номер индекса. Пользователи могут получить метаданные для файла, ссылаясь на номер инода.
Имена файлов и номера индексов хранятся в отдельном индексе и ссылаются на индекс. Вы можете ссылаться на метаданные, которые представляют файл. Можно иметь несколько имен файлов, которые ссылаются на один фрагмент данных или индекс, как вы можете видеть на рисунке ниже.
Подразумеваемое
Файловые системы, созданные с использованием inodes, будут иметь следующие административные характеристики.
- Файлы могут иметь несколько имен. Если несколько имен жестко ссылаются на один и тот же индексный дескриптор, тогда имена эквивалентны; т.е. создаваемый первым не имеет особого статуса. В этом отличие от символьных ссылок , которые зависят от исходного имени, а не от индекса (номера).
- Inode может не иметь ссылок. Несвязанный файл удаляется с диска, а его ресурсы освобождаются для перераспределения, но удаление должно ждать, пока все процессы, открывшие его, закончат доступ к нему. Сюда входят исполняемые файлы, которые неявно остаются открытыми исполняющими их процессами.
- Обычно невозможно сопоставить открытый файл с именем файла, которое использовалось для его открытия. Операционная система немедленно преобразует имя файла в номер inode, а затем отбрасывает имя файла. Это означает, что библиотечные функции getcwd () и getwd () выполняют поиск в родительском каталоге, чтобы найти файл с индексным индексом, соответствующим рабочему каталогу , затем выполняют поиск в родительском каталоге этого каталога и так далее, пока не достигнут корневой каталог . Системы SVR4 и Linux содержат дополнительную информацию, чтобы это стало возможным.
- Исторически существовала возможность жестко связать каталоги. Это превратило структуру каталогов в произвольный ориентированный граф в отличие от ориентированного ациклического графа . Каталог даже мог быть собственным родителем. Современные системы обычно запрещают это сбивающее с толку состояние, за исключением того, что родительский элемент root по-прежнему определяется как root. Наиболее заметным исключением из этого запрета является Mac OS X (версии 10.5 и выше), которая позволяет суперпользователю создавать жесткие ссылки на каталоги.
- Номер inode файла остается неизменным, когда он перемещается в другой каталог на том же устройстве или когда диск дефрагментирован, что может изменить его физическое местоположение, что позволяет перемещать и переименовывать его даже во время чтения и записи без прерывания работы. . Это также означает, что полностью соответствующее поведение inode невозможно реализовать со многими файловыми системами, отличными от Unix, такими как FAT и ее потомки, у которых нет способа сохранить эту неизменность, когда и запись каталога файла, и его данные перемещаются. .
- Установка новых библиотек проста с файловыми системами inode. Запущенный процесс может получить доступ к файлу библиотеки, в то время как другой процесс заменяет этот файл, создавая новый индексный дескриптор, и для нового файла будет существовать совершенно новое сопоставление, чтобы при последующих попытках доступа к библиотеке была получена новая версия. Эта возможность устраняет необходимость перезагрузки для замены отображаемых в настоящее время библиотек.
- На устройстве могут закончиться inodes. Когда это происходит, новые файлы не могут быть созданы на устройстве, даже если на нем может быть свободное место. Это наиболее распространено для таких случаев, как почтовые серверы, содержащие много небольших файлов. Файловые системы (такие как JFS или XFS ) избегают этого ограничения с помощью экстентов или динамического выделения inode, что может «увеличить» файловую систему или увеличить количество inode.
Other implications of inodes
The way inodes work is also why it is impossible to create a hard link across different file system. Allowing such a task would open the possibility of having conflicting inode numbers. Soft link on the other hand can be created across different file system.
Because a hard link as the same inode number as the original file, you can delete the original file and the data is still available through the hard link. All you did in this case is remove one of the name pointing to this inode number. The data linked to this inode number will remain available until all names associated with it are deleted.
Inodes are also a big reason why a Linux system can update without the need to reboot. This is because one process can use a library file while another process replaces that file with a new version. Therefore, creating a new inode for the new file. The already running process will keep using the old file while every new call to it will result in using the new version.
Another interesting feature that comes with inodes is the ability to store the data in the inode itself. This is called Inlining. This storing method has the advantage of saving space because no data block will be needed. It also increases the lookup time by avoiding more disk access to get the data.
Some file system like ext4 has an option called inline_data. When enabled, it allows the operating system to store data this way. Due to size limitation, inlining only works for very small files. Ext2 and later will often store soft link information this way. That is if the size is no more 60 Bytes.
Conclusion
Inodes are not something you interact directly with, but they play an important role. If a partition is to contain many very small files, like a mail server, knowing what they are and how they work can save you a lot of problems down the road.
Организация прав доступа в файловых системах
Определить права доступа к файлу — значит определить для каждого пользователя набор операций, которые он может применить к данному файлу. В разных файловых системах может быть определен свой список дифференцируемых операций доступа, который может включать следующие операции:
- Право чтения.
- Право записи.
- Право исполнения.
- Право удаления.
- Право копирования (чтение и создание).
- Право перемещения (удаление и создание).
- Право просмотра списков файлов.
В самом общем случае права доступа могут быть описаны матрицей прав доступа, в которой столбцы соответствуют всем файлам системы, строки — всем пользователям, а на пересечении строк и столбцов указываются разрешенные операци. В некоторых системах пользователи могут быть разделены на отдельные категории. Для всех пользователей одной категории определяются единые права доступа. Например, в системе UNIX все пользователи подразделяются на три категории: владельца файла, членов его группы и всех остальных.
Различают два основных подхода к определению прав доступа:
- избирательный доступ, когда для каждого файла и каждого пользователя сам владелец может определить допустимые операции;
- мандатный подход, когда система наделяет пользователя определенными правами по отношению к каждому разделяемому ресурсу (в данном случае файлу) в зависимости от того, к какой группе пользователь отнесен.
Квоты для дискового пространства пользователей
Система квот (ограничений) дискового
пространства базируется на Berkeley Disk Quota System и
позволяет администратору контролировать
количество файлов и блоков данных
пользователей или их групп.
Эта система используется в следующих
случаях:
Пределы квот устанавливаются тремя
параметрами:
Soft limits — определяет количество блоков
по 1KB или файлов, на которое пользователь
может превысить на определенный период (grace
period).
Hard limits — максимальное количество
блоков по 1KB или файлов, которое
пользователь не может превысить
Grace period — время на которое пользователь
может превысить отпущенное ему по soft limits
дисковое пространство или количество
файлов. По умолчанию — 7 дней.
Внимание: Для запуска всех команд,
связанных с установкой и управлением
квотами необходимо иметь полномочия
пользователя root. Остальные пользователи
могут только просмотреть личные квоты с
помощью команды quota запускаемой в
командной строке
Установка квоты
1 шаг — Включение режима квот Для
указания того, что для данной файловой
системы установлен режим квот, необходимо
вставить в её станзу файла /etc/filesystems
следующую строку: для режима квот
пользователей: quota=userquota для режима квот
пользователей и групп: quota=userquota,groupquota
2 шаг — Установка квот Для создания и
редактирования квот используется команда edquota.
Эта команда создаёт временный файл, который
содержит информацию обо всех текущих
квотах каждого пользователя и группы.
Синтаксис команды edquota следующий:
edquota
где: опция -u используется для
редактирования квоты пользователя username;
опция -g используется для
редактирования квот группы groupname; опция -p
используется для указания прототипа
квоты (пользователя или группы, имя которых
необходимо указать), который используется
для копирования ранее установленных квот.
Внимание: Для использования команды edquota
должна быть установлена переменная EDITOR (для
примера, export EDITOR=/usr/bin/vi). 3 шаг — Установка Grace Period Для установки
Grace Period также используется команда edquota с
параметрами: -t — для всех пользователей
и групп; -tg — для всех групп; -tu — для
всех пользователей
3 шаг — Установка Grace Period Для установки
Grace Period также используется команда edquota с
параметрами: -t — для всех пользователей
и групп; -tg — для всех групп; -tu — для
всех пользователей.
Grace Period можно устанавливать в секундах,
минутах, часах или днях. Установка Grace Period в
размере 1-й секунды показывает, что Grace Period
не предоставляется. Установка 0 определяет
Grace Period по умолчанию.
Управление квотами
Включение режима квот Для включения
режима квот используется команда quotaon с
параметрами: -u — установка режима квот
только для пользователей; -g — установка
режима квот только для групп; -a —
установка режима квот для пользователей и
групп. После параметра можно указать имя
конкретной файловой системы, для которой
необходимо включить механизм квот. По
умолчанию режим квот выключен.
Выключение режима квот Для выключения
режима квот используется команда quotaoff.
Можно отключить режим квот для всех
файловых систем (с параметром -a) или для
конкретной файловой системы (указать её имя).
Проверка режима квот Команда quotacheck
используется для проверки корректности
работы механизма квот. Команда repquota
используется для проверки использования
текущих пользовательских или групповых
квот.