4.5. Управление квотами в GFS2

Квоты в файловой системе предназначены для ограничения пространства пользователей. Изначально ограничений нет. Если во время монтирования указан параметр quota=on или quota=account, GFS2 будет отслеживать занятое пространство каждого пользователя, даже если ограничения не заданы, и периодически обновляет данные квот, чтобы в случае сбоя системы не было необходимости в восстановлении статистики использования пространства.
Узел GFS2 обновляет файл квот через определенные интервалы, чтобы не замедлять работу. Недостаток такого подхода заключается в том, что это может привести к превышению установленного лимита между обновлениями. Минимизировать риск можно, сокращая интервал синхронизации по мере приближения к лимиту.

Примечание

Начиная с Red Hat Enterprise Linux 6.1, GFS2 поддерживает стандартную функциональность квот Linux. Для этого потребуется установить пакет quota. Далее подразумевается, что управление квотами осуществляется с помощью этих инструментов.
Управление квотами в предыдущих выпусках Red Hat Enterprise Linux осуществляется средствами gfs2_quota (см. Приложение A, gfs2_quota).

4.5.1. Настройка дисковых квот

Для добавления дисковых квот надо выполнить следующее:
  1. Настроить квоты в строгом режиме или включить режим статистики.
  2. Инициализировать базу данных квот, добавив актуальную статистику использования блоков.
  3. Определить правила квот (в режиме account правила игнорируются).
Далее эти этапы будут рассмотрены более подробно.

4.5.1.1. Настройка квот

В GFS2 квоты по умолчанию отключены. Чтобы их включить, во время монтирования добавьте параметр quota=on.
quota=account позволяет использовать функции квот и следить за использованием пространства, но без принуждения жесткого лимита.
4.5.1.1.1. Формат команд
Чтобы включить квоты, при подключении файловой системы укажите параметр quota=on.
mount -o quota=on устройство точка_монтирования
Подключение с активацией режима статистики квот:
mount -o quota=account устройство точка_монтирования
Чтобы отключить квоты, укажите quota=off. Этот вариант используется по умолчанию.
mount -o quota=off устройство точка_монтирования
quota={on|off|account}
on — включает использование квот;
off — отключает использование квот;
account — статистика использования пространства.
устройство
Устройство, где расположена файловая система GFS2.
точка_монтирования
Каталог, в который монтируется GFS2.
4.5.1.1.2. Примеры
В следующем примере файловая система на /dev/vg01/lvol0 подключается в /mygfs2 с активацией квот:
mount -o quota=on /dev/vg01/lvol0 /mygfs2
Ниже /dev/vg01/lvol0 подключается в /mygfs2. Использование квот включено в режиме статистики.
mount -o quota=account /dev/vg01/lvol0 /mygfs2

4.5.1.2. Создание базы данных квот

Прежде чем включить квотирование, необходимо выполнить проверку quotacheck.
quotacheck проверит файловые системы с квотами и создаст таблицу с информацией о занятом пространстве, откуда операционная система и будет получать данные.
Аргументы -u и -g отвечают за инициализацию квот для пользователей и групп соответственно. Так, чтобы создать исходные файлы квот для файловой системы в /home, выполните:
quotacheck -ug /home

4.5.1.3. Установка квот для пользователей

Команда edquota установит исходные лимиты для пользователей. Если файловая система смонтирована с параметром quota=account, использование пространства в пределах выделенных квот будет отслеживаться, но не будет ограничиваться.
В режиме root выполните:
edquota пользователь
Повторите эту команду для всех пользователей, для которых надо установить квоты. Например, если в /etc/fstab включено квотирование для раздела /home на /dev/VolGroup00/LogVol02, то результат команды edquota testuser будет выглядеть так:
Disk quotas for user testuser (uid 501):   
Filesystem                blocks     soft     hard    inodes   soft   hard
/dev/VolGroup00/LogVol02  440436        0        0

Примечание

Выбор текстового редактора, используемого командой edquota, определяется значением EDITOR в ~/.bash_profile.
Первый столбец содержит имя файловой системы, второй — число занятых блоков. Следующие столбцы определяют лимиты.
Гибкий лимит определяет максимальный размер пространства, который можно временно обойти.
Жесткий лимит определяет максимально доступный размер пространства, который не может быть превышен ни при каких обстоятельствах.
GFS2 не поддерживает квотирование индексных дескрипторов, поэтому для GFS2 эти столбцы останутся пустыми.
Нулевой лимит снимает ограничения. Отредактируйте значения, чтобы установить собственные ограничения. Пример:
Disk quotas for user testuser (uid 501):   
Filesystem                blocks     soft     hard    inodes   soft   hard
/dev/VolGroup00/LogVol02  440436   500000   550000
Результат изменения квот можно проверить:
quota testuser

4.5.1.4. Установка квот для групп пользователей

Квоты можно установить не только для отдельных пользователей, но и для целых групп. Чтобы включить квотирование, при монтировании файловой системы добавьте параметр account=on.
Пример настройки квот для группы devel:
edquota -g devel
Квоты будут инициализированы:
Disk quotas for group devel (gid 505):   
Filesystem                blocks    soft     hard    inodes   soft   hard
/dev/VolGroup00/LogVol02  440400       0        0
GFS2 не поддерживает квотирование на уровне inode, поэтому для GFS2 эти столбцы останутся пустыми. Измените значения лимитов по своему усмотрению и сохраните файл.
Результат настройки квот можно проверить:
quota -g devel