磁盘配额是什么
磁盘配额按用户或用户组限制某个文件系统上的空间与 inode 数量,达到软上限会给出宽限提示,超过硬上限直接拒绝写入。文件服务器、共享开发机、教学楼机房都常用它防止单个人把盘写满。ext4 系通过 usrquota/grpquota 挂载选项加 quota、quotacheck、edquota 一套工具管理;XFS 走 uquota/gquota 加 xfs_quota,命令完全不同,动手前先确认文件系统类型。
基本信息
| 适用平台 | 全部 Linux 发行版;ext4 与 XFS 的实现不同 |
|---|---|
| 启用方式 | 在 /etc/fstab 挂载项加配额选项并重新挂载 |
| 初始化 | ext4 系用 quotacheck -cugm 建库,quotaon 启用 |
| 设置上限 | edquota -u 用户 编辑块数与 inode 软硬限 |
| 查看 | quota -u 用户 看个人用量,repquota -s 出整体报表 |
典型使用场景
- 文件服务器:限制每个用户的家目录用量,防止单用户写满整个分区
- 开发机共享:按项目组配额,避免编译产物把盘占满影响他人
- 机房与培训环境:统一设置上限,恢复环境时无需逐台清理
- 日志与临时目录:给服务账户设限,异常写入时自动止住
- 容量治理:先出报表找出用量最大的用户,再针对性沟通或扩容
ext4 系:启用与初始化
ext4 系:启用与初始化
df -T /home # 先确认文件系统类型
grep '/home' /etc/fstab # 看当前挂载项
# 在 fstab 该行 options 里加入配额选项:
# /dev/vg0/home /home ext4 defaults,usrquota,grpquota 0 0
mount -o remount /home # 重新挂载使选项生效
quotacheck -cugm /home # 创建并检查配额数据库
quotaon -v /home # 启用配额
ls /home/aquota.user /home/aquota.group # 确认数据库文件已生成设置上限与查看报表
设置上限与查看报表
edquota -u appuser # 编辑该用户的软硬限与宽限期
edquota -t # 设置全局宽限期
quota -u appuser # 查看该用户当前用量与限制
repquota -s -a | head -30 # 输出全部文件系统的配额报表
warnquota # 对接近上限的用户发提醒(如已配置)
# XFS 文件系统改用:
xfs_quota -x -c 'limit bsoft=5g bhard=6g appuser' /home配额报表读法
| 列 | 含义 | 正常/异常 |
|---|---|---|
| Filesystem | 配额生效的文件系统 | 确认与你设置的目标一致 |
| User | 被限制的用户 | 报表中含系统账户属正常 |
| used | 已用量 | 接近 soft 值时需提醒用户 |
| soft | 软上限 | 超过后在宽限期内提示 |
| hard | 硬上限 | 超过后拒绝写入 |
| grace | 宽限期剩余 | 为空表示未超软上限 |
| files / ifree | inode 用量与剩余 | 小文件多时先触顶的是 inode |
XFS 用 uquota/gquota 挂载选项并配合 xfs_quota 管理,命令与 ext4 的 quota 系不通用,动手前先 df -T 确认。
quotacheck 会扫描整个文件系统的用量,大目录上耗时且占用 IO,安排在业务低峰执行。