3.7.5 配额配置、管理与监控
本节给出配额从安装、启用、设置到监控告警的完整操作链路,包含原理草图、可执行示例、命令解释、排错与练习,确保可落地。
1) 原理草图:配额控制链路
2) 安装与启用(ext4示例)
- 安装工具:quota/quota-tools
- 挂载参数:usrquota,grpquota
- 生成配额文件:quotacheck
- 启用配额:quotaon
# 1. 安装(RHEL/CentOS)
yum install -y quota
# 2. 修改 /etc/fstab 增加配额参数
# 设备 挂载点 类型 参数 dump fsck
/dev/vdb1 /data ext4 defaults,usrquota,grpquota 0 2
# 3. 重新挂载使参数生效
mount -o remount /data
# 4. 初始化配额文件(-a全部,-v详细,-u用户,-g组)
quotacheck -avug
# 5. 开启配额
quotaon -av
# 6. 验证
repquota -a
3) xfs配额启用示例
xfs不使用aquota.*,用xfs_quota管理。
# /etc/fstab
/dev/vdb1 /data xfs defaults,uquota,gquota 0 0
mount -o remount /data
# 进入xfs_quota交互
xfs_quota -x -c 'report -h' /data
4) 配额设置与命令解释(含示例)
- edquota:交互式编辑软/硬限制
- setquota:脚本化批量设置
- edquota -t:设置宽限期
- quota -s:查看用户配额(人类可读)
# 1. 设置用户alice软/硬限制(块与inode)
edquota -u alice
# 打开后示例含义:
# Filesystem blocks soft hard inodes soft hard
# /dev/vdb1 10240 20480 25600 1000 1500 2000
# 解释:blocks为已用,soft/hard为软硬限制;inodes为文件数限制
# 2. 设置宽限期(软限超限可用期)
edquota -t
# 示例输出:
# Time units may be: days, hours, minutes, or seconds
# Filesystem Block grace period Inode grace period
# /dev/vdb1 7days 7days
# 3. 批量设置(setquota)
# setquota -u 用户 块软 块硬 inode软 inode硬 挂载点
setquota -u bob 20480 25600 1500 2000 /data
# 4. 快速复制模板用户
edquota -p alice bob
# 5. 查看用户配额
quota -s -u alice
5) 监控与告警落地(脚本示例)
将repquota转换为指标,输出超限用户列表,可接入Prometheus/告警系统。
#!/bin/bash
# /usr/local/bin/quota_check.sh
# 输出:超软限/硬限用户列表
repquota -a | awk '
NR>2 && $1 ~ /^\/dev/ {fs=$1}
NR>2 && $1 !~ /^\/dev/ && $1 != "block" {
user=$1; used=$3; soft=$4; hard=$5; grace=$7
if (used > soft && soft > 0) {
printf("WARN user=%s used=%s soft=%s hard=%s grace=%s fs=%s\n", user, used, soft, hard, grace, fs)
}
if (used > hard && hard > 0) {
printf("CRIT user=%s used=%s soft=%s hard=%s grace=%s fs=%s\n", user, used, soft, hard, grace, fs)
}
}'
预期效果:超软限输出WARN,超硬限输出CRIT,可被监控采集。
6) 常见排错清单(含命令)
- 配额未生效:检查挂载参数
bash
mount | grep /data
# 预期包含 usrquota,grpquota 或 uquota,gquota
- quotacheck失败:确认文件系统只读/损坏
bash
dmesg | tail
fsck -f /dev/vdb1
- xfs配额无效:确认uquota/gquota参数并重挂载
bash
xfs_quota -x -c 'state' /data
- 配额文件丢失:重新生成
bash
quotacheck -avug
quotaon -av
7) 维护建议与最佳实践
- 扩容或修复后执行quotacheck校验一致性。
- 将配额配置变更纳入变更记录。
- 与用户目录规划结合,避免配额过细导致管理复杂。
8) 练习
1. 在/data对用户alice设置软限20G、硬限25G、inode软限1500、硬限2000。
2. 让alice写入超过软限的数据,观察quota -s输出与宽限期效果。
3. 用setquota批量给bob和carol设置相同配额。
4. 在xfs上用xfs_quota生成报告并导出为文本。