linux-labs

Вики / Хранилище и ФС

Дисковые квоты

Концепция Linux · quota ХранилищеПраваФайлы

Лимиты места и числа файлов на пользователя/группу — включение, настройка, отчёты.

Квоты ограничивают, сколько места (блоков) и файлов (inode) может занять пользователь или группа на ФС. Полезно на общих серверах, чтобы один юзер не забил диск (см. disk-usage).

Лимиты бывают soft (можно превысить на grace-период с предупреждением) и hard (жёсткий потолок, запись блокируется).

sudo apt install quota
# в /etc/fstab добавить опции к нужной ФС: usrquota,grpquota
#   /dev/sdb1  /data  ext4  defaults,usrquota,grpquota  0  2
sudo mount -o remount /data
sudo quotacheck -cugm /data       # создать файлы учёта (aquota.user/group)
sudo quotaon -v /data             # включить квоты
sudo quotaon -p /data             # проверить, включены ли
# задать лимиты пользователю (блоки: soft hard, inode: soft hard):
sudo setquota -u alice 5G 6G 0 0 /data        # soft=5G hard=6G по месту, inode без лимита
sudo setquota -u alice 0 0 10000 12000 /data  # лимит по числу файлов
sudo edquota -u alice             # интерактивно в редакторе
sudo edquota -t                   # настроить grace-период (для soft)
sudo edquota -p alice -u bob      # скопировать квоты alice пользователю bob

# отчёты:
quota -u alice                    # квота и использование пользователя
sudo repquota -a                  # отчёт по всем ФС с квотами
sudo repquota -s /data            # человекочитаемо (-s)

На xfs механизм иной — квоты включаются опцией монтирования, не quotacheck:

# /etc/fstab:  /data xfs defaults,uquota,gquota 0 0   (или pquota для проектных)
sudo xfs_quota -x -c 'report -h' /data
sudo xfs_quota -x -c 'limit bsoft=5g bhard=6g alice' /data

setquota: не работает / «not found»

ФС смонтирована без usrquota/grpquota — проверь mount | grep -i quota. Либо не сделан quotacheck/quotaon. На xfs это не сработает — там xfs_quota и опции uquota/gquota/pquota.

Пользователь упёрся в лимит

quota -u user / repquota покажут текущее и потолок. Подними setquota/edquota или попроси почистить. На soft-лимите есть grace-период (edquota -t).

Квоты «слетели» после ребута

quotaon не выполняется сам — убедись, что опции в /etc/fstab и юнит quotaon включён (на ext). На xfs квоты активируются монтированием с нужными опциями.

quotacheck требует отмонтировать

Лучше считать на спокойной/ro ФС. На активной — quotacheck -m (force), но точность ниже; идеально — в single-user или с remount ro.

# ext4: fstab ...,usrquota,grpquota ; remount ; quotacheck -cugm ; quotaon -v
sudo setquota -u user 5G 6G 0 0 /data     # soft/hard по месту
sudo edquota -u user ; sudo edquota -t    # интерактивно / grace
quota -u user ; sudo repquota -s /data    # отчёты
# xfs: fstab uquota,gquota ; xfs_quota -x -c 'limit bsoft=.. bhard=.. user' /data

См. также