Подключение дисковых квот

Подключение дисковых квот из ISPmanager


Для подключения дисковых квот в ISPmanager Lite необходимо в разделе «Возможности» найти и установить пакет «Дисковые квоты».

  • Для linux систем при этом установится пакет quota

ISPmanager при этом:

  • подключает в /etc/fstab нужные опции
  • перемонтирует /
  • запускает quotacheck на /
  • включает quotaon на /

После этого в интерфейсе управления пользователями появится колонка «Диск» и для каждого пользователя можно будет создать ограничение по диску. (ISPmanager пересчитывает квоту примерно раз в 2 минуты (до релиза 5.15.0 примерно раз в 10 минут))

Просмотр квот через терминал

 

repquota -g / - для файловой системы EXT4
xfs_quota -x -c 'report -u' - для файловой системы XFS

 

Ручное подключение дисковых квот


Если ISPmanager по какой-то причине не смог подключить квоты, необходимо:

Проверить опции монтирования

Выясните какая директория выбрана для файлов пользователей:

 

/usr/local/mgr5/sbin/mgrctl -m ispmgr pathlist |grep DefaultHomeDir ||  /usr/local/mgr5/sbin/mgrctl -m ispmgrnode pathlist |grep DefaultHomeDir

 

Проверьте на каком она находится разделе:

 

df  <найденная_директория> |tail -1 | awk '{print $6}'

 

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

 

mount | grep 'on <найденный_раздел> '

 

Она покажет опции монтирования для найденного раздела. В них должно быть

 

grpquota,usrquota

 

Если квоты не подключены, то нужно добавить опции в /etc/fstab примерно так:

 

UUID=<тут UUID> <найденный_раздел>   ext4    defaults,grpquota,usrquota   1 1

 

Затем перемонтировать найденный раздел командой

 

mount -o remount <найденный_раздел>

 

Создание файлов для работы quota

Запускаем

 

quotacheck -gum <найденный_раздел>

 

Включение квот

Запускаем команду

 

quotaon -guv <найденный_раздел>

 

Дисковые квоты для xfs в CentOS 7


В CentOS 7 по умолчанию используется файловая система xfs, для неё поддержка квот включается в момент загрузки. После установки пакета дисковых квот в панели ISPmanager необходимо перезагрузить сервер.

Ручная настройка дисковых квот для xfs в CentOS 7


При необходимости дисковые квоты можно настроить вручную. Для этого до установки пакета квот нужно отредактировать конфигурационный файл загрузчика. Для Grub 2 это делается так:

1. В файле /etc/default/grub в конец строки GRUB_CMDLINE_LINUX добавить опции квоты:

 

rootflags=usrquota,grpquota

 

2. на всякий случай забекапить конфиг:

 

cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.back

 

3. Сгенерировать новый конфиг:

 

grub2-mkconfig -o /boot/grub2/grub.cfg

 

После этого нужно перезагрузить сервер.

После перезагрузки корневой раздел монтируется с нужными опциями:

 

mount | grep ' / '
/dev/vda3 on / type xfs (rw,relatime,attr2,inode64,usrquota,grpquota)

 

Теперь можно перейти к установке пакета дисковых квот в ISPmanager.

FAQ


В панели управления не отображается занятое дисковое пространство.

  • Ситуация 1. В логе панели ошибка:

 

Dec  5 16:09:02 [3228:38] proc EXTINFO Run '/bin/sh -c quotasync -g /' pid 3658
Dec  5 16:09:02 [3228:38] proc EXTINFO Process 3658 finished with status 1

 

Такое поведение характерно для файловой системы reiserfs (вирутализация OpenVZ).

Для решения проблемы достаточно добавить в файл конфигурации ispmgr.conf опцию DisableQuotasync.

Option DisableQuotasync — если указана данная опция, панель не будет вызывать команду quotasync перед получением информации о системных квотах.

После добавления опции в конфиг необходимо перезапустить панель командой killall core

  • Ситуация 2:

    Корневой раздел и раздел с пользовательскими данными имеют разные файловые системы

    Если корневой раздел в формате XFS, а пользовательский в EXT4, то необходимо убрать опцию Option XfsQuota из файла конфигурации ispmgr.conf

Значение занятого дискового пространства в ISPmanager отличается от того, что показывает команда du

  • Например, в панели управления в разделе «Пользователи» отображается информация по занятому дисковому пространству: 880/1000 MB

Но du -sh на директорию пользователя показывает 1,6 GB

Это означает, что в директории пользователя есть файлы, группа которых не соответствует группе пользователя.

Найти такие файлы поможет команда

 

find /var/www/user -not -group user

 

  • Если же команда du , наоборот, показывает меньшее значение, чем в панели, то значит за пределами домашней директории есть файлы, принадлежащие группе пользователя.

Найти такие файлы можно с помощью команды

 

find / -path /var/www/user  -group user

 

Диаграмма «Использование диска»

На диаграмме «Использование диска» отображается отношение рамеров директорий tmp, email, logs, www, размеров баз данных и свободного пространства (свободное пространство = лимит по квоте — занятое). Другие директории пользователя на ней не будут учитываться. Размер будет считаться, но диаграмма останется незаполненной.