Квотирование дискового пространства
Если в системе работает множество пользователей, то даже при большом объеме накопителей может обнаружиться недостаток дискового пространст- ва, вызванный деятельностью пользователей. Возможный подход к решению данной проблемы заключается в создании специального раздела для катало- гов пользователей. В таком случае, естественно, файлы пользователей не смогут превзойти размер раздела. Однако такое решение создаст иную про- блему — одни пользователи будут фактически лишать других пользователей дискового пространства.
Кардинальное решение состоит во введении в системе квотирования. Квоти- рование позволяет ограничить размер дискового пространства, занимаемого файлами пользователя, выделяя пользователю определенные дисковые ре- сурсы — квоту.
Для установки системы квотирования, прежде всего, необходимо проверить, установлен ли пакет quota. В системах, использующих в качестве менеджера пакетов RPM, это можно сделать с помощью команды rpm -q quota. Эта ко- манда должна вывести полное имя пакета с его версией (пример 17.19).
Пример 17.19. Проверка наличия пакета quota |
$ rpm -q quota quota-3.17-3.1
Помимо наличия пакета quota, который позволяет проверять объем дисковых ресурсов, занимаемых пользователем, в системе должно быть установлено ядро с поддержкой квоты. Поддержка квоты включается в разделе конфигу- рирования файловых систем при настройке ядра перед его сборкой.
Процесс создания квот состоит из трех шагов:
1. Определение файловых систем, ресурсы которых будут квотированы.
2. Создание базы данных квот для каждой квотируемой файловой системы.
3. Установка индивидуальных значений квот для пользователей и групп.
Фактически определение квотируемых файловых систем заключается в их монтировании с опциями:
r usrquota — для установки индивидуальных пользовательских квот;
r grpquota — для установки квот для групп пользователей.
Эти опции могут быть установлены вместе или по отдельности в зависимости от требований, предъявляемых к системе. Команда монтирования допускает эти опции, но игнорирует их, т. к. они предназначены для программного обеспечения квотирования. Поддержка квот включается при монтировании файловых систем, поэтому опции usrquota и grpquota указывают в файле
/etc/fstab.
Пример 17.20. Установка опции монтирования usrquota |
/dev/sda6 /home ext3 defaults,noatime,usrquota 1 2
В примере 17.20 каталог /home является точкой монтирования для файловой системы /dev/sda6, для которой будут установлены пользовательские квоты.
После внесения изменений в файл /etc/fstab квотируемая файловая система должна быть перемонтирована для того, чтобы опции квотирования вступили в силу. Для проверки правильности монтирования следует выполнить коман- ду mount без каких-либо аргументов. В списке смонтированных файловых систем эта команда должна отобразить опции квотирования для файловых систем.
Пример 17.21. Проверка опций монтирования для поддержки квоты |
$ mount
...
/dev/hda6 on /home type ext3 (rw,noatime,usrquota)
В примере 17.21 приведен фрагмент вывода команды mount, который подтвер- ждает, что файловая система, смонтированная в каталоге /home, подлежит кво- тированию, т. к. при ее монтировании была использована опция usrquota.
После монтирования квотируемых файловых систем с установленными оп- циями квотирования необходимо создать базу данных квот, в которой хра- нится информация о файловых ресурсах, занимаемых пользователями. База данных хранится в файлах:
r aquota.user — для пользовательских квот;
r aquota.group — для квот групп пользователей.
Файлы базы данных квот должны располагаться в каталогах — точках мон- тирования квотируемых файловых систем. Если квотируется файловая сис- тема, смонтированная в каталоге /home, то файлы базы данных квотирования должны находиться в нем.
Файлы базы данных будут созданы автоматически с помощью команды quotacheck, которая предназначена для проверки целостности базы данных квот. Обычно эта команда вызывается автоматически при монтировании кво- тируемых файловых систем во время загрузки операционной системы. Важ- нейшие опции команды quotacheck:
r -c — создать новую базу данных квот. При использовании этой опции пре- дыдущие настройки квот для пользователей и групп будут уничтожены;
r -m — не перемонтировать файловую систему в режиме только для чтения при создании или проверке квот;
r -a — проверить квоты на всех смонтированных с опциями квотирования файловых системах. Если эта опция не используется, то для команды дол- жен быть аргумент, указывающий проверяемую файловую систему;
r -u — проверить только пользовательские квоты;
r -g — проверить только квоты для групп;
r -v — выдавать дополнительную информацию в процессе работы.
Показанная в примере 17.22 команда создает новую базу данных пользова- тельских квот во всех квотируемых файловых системах.
Пример 17.22. Создание базы данных квот |
# quotacheck -caumv
После работы этой команды в нашем примере будет создан файл базы дан- ных пользовательских квот для файловой системы /home. В данном случае он называется /home/aquota.user.
Далее следует приступить к определению квот для пользователей и/или групп. Квотированию могут подлежать:
r суммарный объем файлов данного пользователя или группы пользова- телей;
r количество inode, т. е. количество файлов, пользователя или группы.
В пакете квотирования используется модель ограничений, в которой указы- вают ограничение, которое не может быть превзойдено (hard quota). Также указывают ограничение, при котором пользователь получает сообщение о превышении квоты, но блокирование записи еще не производится (soft quota). Время, на которое разрешается превышать soft quota, называется grace period. По умолчанию он установлен равным 7 суткам. По истечении этого срока операции записи блокируются. Этот период времени не может быть установлен индивидуально для каждого пользователя — он распространяется на всех.
Таким образом, установка индивидуальных квот для пользователей или групп заключается в следующем:
1. Определяется grace period для всех пользователей и групп. Если эта опе- рация не производится, то используется значение по умолчанию.
2. Устанавливаются настройки soft- и hard-квот на объем файлов и их коли- чество (inode) для одного или нескольких пользователей индивидуально. Любой из них может быть использован в качестве образца для установки квот для других пользователей.
3. Используя настройки квот для одного из пользователей как шаблон, про- изводится определение квот для других пользователей.
Продолжительность grace period может быть установлена с помощью команды edquota -t. При вызове этой команды будет запущен текстовый редактор по умолчанию (например, vi), в окне редактирования которого можно будет из- менить текущее значение grace period для количества и объема файлов. Редак- тирование производится во временном файле, причем если работа редактора будет завершена с записью в этот временный файл, то команда edquota считает содержимое временного файла и установит новое значение grace period.
Период времени grace period может быть задан в таких единицах времени:
r seconds — секунды;
r minutes — минуты;
r hours — часы;
r days — дни;
r weeks — недели;
r months — месяцы.
После установки grace period можно перейти к установке пользовательских и групповых квот. Пользовательская квота настраивается командой edquota –u.
Пример 17.23. Определение квоты для пользователя |
# edquota -u asimonov
В данном случае файловая квота будет установлена для пользователя
asimonov.
Как и при установке grace period, будет вызван редактор по умолчанию, в ок- не редактирования которого можно будет увидеть уже занятый файлами пользователя объем дискового пространства и количество использованных inode. Также будут отображены столбцы для установки новых значений soft- и hard-квот для суммарного объема файлов и количества inode. Именно эти столбцы должны быть отредактированы для установки новых значений. По- сле выхода из редактора с сохранением временного файла он будет считан командой edquota, и будут установлены новые значения квот.
Как только квота установлена для одного из пользователей системы, настройки для него могут быть использованы в качестве шаблона для других пользовате- лей. Для этого предназначена команда edquota -p <шаблон>. Преимуществом этой команды является неинтерактивный режим работы. То есть при вызове этой команды редактор текста не запускается, а настройки для пользователя, используемые как шаблон, будут просто скопированы в базе данных квот для других пользователей, указанных после опции –u (пример 17.24).
Пример 17.24. Определение квоты по шаблону |
# edquota -p asimonov -u bsmirnov akozlov rrumin zkravchenko
В этом случае настройки пользовательской квоты для asmirnov будут ис- пользованы как шаблон квот пользователей: bsmirnov, akozlov, rrumin и zkravchenko.
Если требуется установить квоты для групп пользователей, то вместо опции -u команды edquota надо использовать опцию -g, после которой должна быть указана группа пользователей для квотирования.
После определения пользовательских и/или групповых квот необходимо включить программное обеспечение квотирования в ядре. Это достигается
с помощью вызова команды quotaon. Если в командной строке не будет за- дана опция -a, включающая квотирование для всех смонтированных с оп- циями квотирования файловых систем, то в качестве аргумента указывают квотируемую файловую систему (пример 17.25).
Пример 17.25. Включение квотирования |
# quotaon -vu /dev/sda6
Квотирование файловой системы /dev/sda6. Опция -u включает пользова- тельские квоты, а опция -v выдает сообщение о включении квоты.
Вызов команды quotaon обычно осуществляется автоматически при загрузке операционной системы. Выключить квотирование можно с помощью коман- ды quotaoff. Для нее также необходимо либо указать опцию -a для отклю- чения квотирования всех файловых систем, либо указать квотируемую фай- ловую систему.
Пользователь может получить информацию об ограничениях, установленных квотой для него, с помощью команды quota. Она сообщает об объеме и ко- личестве файлов пользователя. Если пользователь превысит значение soft quota, то ему выдается соответствующее сообщение. С этого момента нач- нется обратный отсчет времени grace period. Как только этот период времени будет исчерпан, или же при попытке превысить hard quota, операции записи будут блокироваться.
Администратор может получать информацию о состоянии пользовательских квот с помощью команды repquota.
Дата добавления: 2015-06-12; просмотров: 1377;