Подключение дисковых квот
Подключение дисковых квот из ISPmanager
Для подключения дисковых квот в ISPmanager Lite необходимо в разделе "Возможности" найти и установить пакет "Дисковые квоты".
- Для linux систем при этом установится пакет quota
ISPmanager при этом:
- подключает в /etc/fstab нужные опции
- перемонтирует /
- запускает quotacheck на /
- включает quotaon на /
После этого в интерфейсе управления пользователями появится колонка "Диск" и для каждого пользователя можно будет создать ограничение по диску. (ISPmanager пересчитывает квоту примерно раз в 2 минуты (до релиза 5.15.0 примерно раз в 10 минут).
Просмотр квот через терминал
repquota -g / - для файловой системы EXT4
xfs_quota -x -c 'report -g' - для файловой системы 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, размеров баз данных и свободного пространства (свободное пространство = лимит по квоте — занятое). Другие директории пользователя на ней не будут учитываться. Размер будет считаться, но диаграмма останется незаполненной.