xfs 的 project 配额更贴合目录级管理,需挂载时启用 prjquota,通过 /etc/projects 和 /etc/projid 绑定目录与 project id,用 xfs_quota 设置空间限制并自动统计文件变动。

直接用 XFS 的 project 配额,比用户或组配额更贴合目录级管理需求。它按目录树绑定配额,不依赖归属关系变更,避免 chown/chgrp 带来的维护负担。
启用 project 配额并挂载
XFS 的 project 配额是专为目录设计的机制,必须在挂载时显式开启:
- 编辑 /etc/fstab,在对应 XFS 分区行添加 prjquota(不能只写 pquota 或 prj)
- 例如:
/dev/sdb1 /data xfs defaults,prjquota 0 0 - 执行
sudo mount -o remount /data生效 - 确认已启用:
mount | grep '/data' | grep prjquota,有输出即成功
为项目目录绑定 project ID
project 配额靠 project ID(数字)识别目录,不是路径名本身:
- 创建 project 映射文件:
sudo tee /etc/projects 1001:/data/project-web<br>EOF
- 定义 project 名称(可选但推荐):
sudo tee /etc/projid web-proj:1001<br>EOF
- 应用映射:
sudo xfs_quota -x -c 'project -s web-proj' /data - 该命令会扫描
/data/project-web下所有文件,打上 project ID 1001 标签
设置并验证目录空间限制
配额策略直接作用于 project ID,与用户身份解耦:
- 设硬限 5GB、软限 4GB、宽限期 7 天:
sudo xfs_quota -x -c 'limit -p bsoft=4g bhard=5g time=7days 1001' /data - 查看当前使用:
xfs_quota -x -c 'quota -p 1001' /data - 批量写入测试时,一旦突破 5GB,任何用户向该目录写文件都会收到
Disk quota exceeded - 移动文件进出该目录会自动更新配额统计(前提是用
mv,非跨文件系统复制)
日常维护要点
project 配额稳定但需注意几个实操细节:
- 新增子目录默认继承父目录 project ID,无需重复绑定
- 若手动修改了文件归属(如 chown),不影响 project 统计,因配额基于 inode 标签
- 重命名目录名不影响配额,只要路径仍在
/etc/projects定义范围内 - 清理配额缓存(极少需要):
sudo xfs_quota -x -c 'free -p 1001' /data











