Linux: управление квотами дискового пространства

Linux: управление квотамиВ случаях использования большим количеством пользователей одной системы достаточно часто возникает вопрос, как же организовать в Linux управление квотами. Квота — это ограничение на объем дискового пространства, который может использовать пользователь или группа пользователей. Такая потребность может возникнуть, например, при организации файлового хранилища организации или при организации shared-хостинга. В операционных системах на базе ядра Linux такие ограничения реализуются достаточно просто.

Управление квотами дискового пространства осуществляется под пользователем root. Существуют два вида квот: мягкие (soft quota) и жесткие (hard quota).

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

Жесткая квота определяет абсолютный максимальный объем дискового пространства, который пользователь не может превышать. Пользователю не разрешено будет занять больше дискового пространства, чем определено жесткой квотой.

Установка пакета

Перед началом работы с квотами нужно установить пакет quota

 

Настройка файловых систем на работу с квотами

Для файловой системы, для которой мы хотим включить управление квотами, нужно указать опции монтирования usrquota и grpquota для поддержки пользовательских и групповых квот соответственно. Эти параметры нужно указать в файле /etc/fstab, например, так:

После указания опций надо перемонтировать файловую систему:

После этого в корне файловой системы нужно создать файлы aquota.user и aquota.group. Это файлы базы данных квот. Создать их можно следующей командой:

Опции:

-c, —create-files Создать базу данных
-u, —user Проверить квоты для пользователей
-g, —group Проверить квоты для групп
-v, —verbose Выводить подробную информацию
-a, —all Проверить все не-NFS файловые системы

После этого можно включить квоты

У этой команды тоже есть опции командной строки, вот некоторые из них:

-a, —all Включить квоты для всех файловых систем
-f, —off Выключить квоты
-u, —user Работать с пользовательскими квотами
-g, —group Работать с групповыми квотами
-p, —print-state Вывести информацию о квотах
-v, —verbose Выводить подробную информацию о работе

После включения квот можно приступать к их настройке.

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

Настройка лимитов квот (непосредственное управление квотами) производится при помощи команды edquota. Формат команды:

Несколько опций команды edquota:

-u, —user Редактировать пользовательские квоты
-g, —group Редактировать групповые квоты
-r, —remote Редактировать квоты на удаленной системе
-f, —file-system=<файловая-система> Редактировать квоты только на указанной файловой системе
-t, —edit-period Редактировать временные лимиты для мягких квот, которые указываются в единицах времени — минутах, секундах, и так далее

После редактирования квот может потребоваться перезапустить сервис quota

Теперь давайте создадим пользователя и настроим для него квоты

Пользователь создан. Добавим для него следующие ограничения: пусть он не может использовать больше 1 мегабайта и может создать только 3 файла на файловой системе, смонтированной в /mnt/storage.

Выполним команду

В редакторе вы увидите следующее:

Выставим следующие значения для квот по пространству: soft — 768, hard — 1024, по inodes: soft — 2, hard — 3.

И выйдем с сохранением. Теперь посмотрим, сохранились ли квоты. Залогинимся под пользователем user1 и перейдем в директорию /mnt/storage. Попробуем создать файл большого размера:

Как видите, квота пользователя исчерпана. Посмотрим, что у нас есть на дисковой системе:

Как видите, размер файла 1 мегабайт. Теперь надо проверить, работает ли ограничение на количество файлов. Удалим file.dat и попробуем создать четыре файла.

Файл file4 мы не смогли создать, потому что сработало ограничение на количество файлов. Смотрим, какие файлы у нас есть:

Как видите, управление квотами работает.

Просмотреть установленные квоты можно при помощи команды quota. Вот несколько опций:

-u, —user Вывод информации для пользователя
-g, —group Вывод информации для группы
-v, —verbose Вывод подробной информации
-s, —human-readable Вывод информации в удобном для чтения человеком виде
-l, —local-only Выводить информацию только по локальным файловым системам, то есть не выводить информацию о сетевых файловых системах

Давайте посмотрим информацию для пользователя user1:

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

Также можно воспользоваться командой repquota для просмотра квот, которые в данный момент присутствуют в системе.

У команды repquota также есть дополнительные опции командной строки.


Понравилась статья?

Подпишитесь на новости сайта и получайте новые статьи на свой почтовый ящик (один раз в неделю).


Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *