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

Материал из ISPWiki
Перейти к: навигация, поиск

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

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

  • Для 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 (или ispmgrnode.conf если речь о ISPmanager Business) опцию DisableQuotasync.

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

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

  • Ситуация 2:

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

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

Значение занятого дискового пространства в 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, размеров баз данных и свободного пространства (свободное пространство = лимит по квоте - занятое). Другие директории пользователя на ней не будут учитываться. Размер будет считаться, но диаграмма останется незаполненной.