
CentOS 7 磁盘配额实验EXT4 用户/组限额与 XFS Project Quota1. 服务介绍Linux 磁盘配额Quota用于限制普通用户、用户组或指定目录可以占用的磁盘容量和文件数量。它常用于教学服务器、共享文件服务器、邮件服务器和虚拟主机避免单个账号写满分区并影响其他用户。本实验先在独立磁盘上完成 EXT4 用户配额和组配额再介绍 CentOS 7 默认 XFS 文件系统的用户、组和 Project Quota。实验同时验证软限制、硬限制、宽限期和超限写入结果。2. 准备运行环境• 操作系统CentOS 7.x。• 操作账号root或具备sudo权限的管理员。• 实验磁盘新增 2 GB 磁盘示例设备为/dev/sdb。• EXT4 挂载点/mnt/mountpoint。• 测试用户student测试组students。• XFS 示例挂载点/home。先确认设备名称避免格式化系统盘lsblk -f fdisk -l findmnt / 下文假定新分区为/dev/sdb1。旧截图使用/dev/sdb直接格式化整块磁盘仅用于展示原实验过程实际操作推荐创建分区后使用/dev/sdb1。3. 相关知识与注意事项3.1 Quota 限制对象• 用户配额按 UID 限制单个用户。• 组配额按 GID 限制用户组。• Project QuotaXFS 按目录树限制空间不依赖目录内文件所属用户。3.2 容量、文件数和宽限期•blocks已使用磁盘容量。•inodes已创建文件和目录数量。•soft软限制超过后进入宽限期。•hard硬限制达到后立即拒绝继续写入。•grace time超过软限制后允许继续使用的时间。3.3 文件系统差异• EXT3/EXT4 使用usrquota、grpquota、quotacheck、quotaon、edquota和repquota。• XFS 使用uquota/usrquota、gquota/grpquota、pquota/prjquota与xfs_quota。• XFS 的grpquota与prjquota不应同时配置在同一挂载点。• Quota 只对挂载点所在文件系统生效给根目录设置配额不会自动限制其他独立分区。•root通常不受普通用户配额限制必须切换到测试用户验证。• 不要对块设备执行chmod 777。测试目录只授予所需用户或组权限。4. EXT4 用户与组磁盘配额实验4.1 创建测试用户和组groupadd students useradd -g students student passwd student id student4.2 添加磁盘并创建分区在虚拟机中添加 2 GB 磁盘然后确认系统识别出/dev/sdb。fdisk /dev/sdb # 依次输入 n、p、1接受默认起止扇区最后输入 w partprobe /dev/sdb lsblk /dev/sdb4.3 格式化并挂载文件系统CentOS 7 支持 EXT4推荐使用mkfs.ext4 /dev/sdb1 mkdir -p /mnt/mountpoint mount /dev/sdb1 /mnt/mountpoint旧实验截图使用mkfs.ext3 /dev/sdb命令输出如下。若已经创建/dev/sdb1不要再格式化/dev/sdb否则会覆盖分区表。4.4 配置开机挂载和 Quota 参数先获取 UUIDblkid /dev/sdb1 cp -a /etc/fstab /etc/fstab.bak.$(date %F-%H%M%S)在/etc/fstab添加一行UUID替换为实际UUID /mnt/mountpoint ext4 defaults,usrquota,grpquota 0 2无需重启重新挂载并检查mount -o remount /mnt/mountpoint findmnt -no SOURCE,FSTYPE,OPTIONS /mnt/mountpoint df -hT /mnt/mountpoint4.5 安装并初始化 Quotayum -y install quota quotacheck -cugm /mnt/mountpoint ls -l /mnt/mountpoint/aquota.user /mnt/mountpoint/aquota.group quotaon -vug /mnt/mountpoint4.6 配置 student 用户限制交互式配置edquota -u student示例把容量软限制设为 5000 KiB、硬限制设为 10000 KiB同时把文件数软限制设为 5000、硬限制设为 10000。也可以用非交互命令完成同样配置setquota -u student 5000 10000 5000 10000 /mnt/mountpoint为测试用户准备目录只授予需要的权限mkdir -p /mnt/mountpoint/student chown student:students /mnt/mountpoint/student chmod 700 /mnt/mountpoint/student quotaon -vug /mnt/mountpoint4.7 查看配额并验证超限写入管理员查看整个文件系统repquota -augv quota -uvs student quotaon -p /mnt/mountpoint切换到student写入超过 10 MiB 硬限制的文件su - student dd if/dev/zero of/mnt/mountpoint/student/quota-test.img bs1M count11 statusprogress ls -lh /mnt/mountpoint/student/quota-test.img quota -s exit达到硬限制时应出现Disk quota exceeded文件最终大小不会超过硬限制。5. XFS Quota 配置CentOS 7 默认常用 XFS。以下示例假定/home是独立 XFS 文件系统。5.1 用户和组配额/etc/fstab示例/dev/mapper/centos-home /home xfs defaults,usrquota,grpquota 0 0重新挂载并检查状态umount /home mount -a xfs_quota -x -c state /home xfs_quota -x -c report -ubih /home xfs_quota -x -c report -gbih /home设置用户、组和宽限期xfs_quota -x -c limit -u bsoft250M bhard300M isoft5000 ihard6000 student /home xfs_quota -x -c limit -g bsoft950M bhard1G students /home xfs_quota -x -c timer -u -b 14days /home xfs_quota -x -c report -ugibh /home5.2 Project Quota 限制目录使用 Project Quota 时把/etc/fstab中grpquota改为prjquota/dev/mapper/centos-home /home xfs defaults,usrquota,prjquota 0 0配置 Project ID 与目录mkdir -p /home/myquota echo 11:/home/myquota /etc/projects echo myquotaproject:11 /etc/projid xfs_quota -x -c project -s myquotaproject /home xfs_quota -x -c limit -p bsoft450M bhard500M myquotaproject /home xfs_quota -x -c report -pbih /home验证目录硬限制dd if/dev/zero of/home/myquota/quota-test.img bs1M count510 statusprogress xfs_quota -x -c report -pbh /home达到 500 MiB 后应出现No space left on device或配额超限提示。5.3 临时禁用、恢复和彻底关闭# 暂停强制限制但继续统计 xfs_quota -x -c disable -up /home xfs_quota -x -c state /home # 恢复强制限制 xfs_quota -x -c enable -up /home # 完全关闭后必须重新挂载才能再次启用 xfs_quota -x -c off -up /home umount /home mount -a日常维护优先使用disable/enableoff/remove会影响现有配额元数据不应在未备份时执行。6. 验证结果6.1 EXT4 检查命令findmnt -no SOURCE,FSTYPE,OPTIONS /mnt/mountpoint quotaon -p /mnt/mountpoint repquota -ugv /mnt/mountpoint quota -uvs student ls -lh /mnt/mountpoint/aquota.* journalctl -k --no-pager | grep -i quota | tail -n 306.2 XFS 检查命令findmnt -no SOURCE,FSTYPE,OPTIONS /home xfs_quota -x -c state /home xfs_quota -x -c report -ugpibh /home判断配置成功需要同时满足挂载参数包含对应 quota 选项、统计状态为Accounting: ON、强制状态为Enforcement: ON、报告中出现目标用户或 Project并且测试用户写入到硬限制时被拒绝。7. 常见问题与回退7.1 quotacheck 提示设备忙先停止使用挂载点的程序再使用-m允许在已挂载文件系统上检查生产环境建议安排维护窗口后卸载检查。fuser -vm /mnt/mountpoint quotacheck -cugm /mnt/mountpoint7.2 配额参数未生效grep -v ^# /etc/fstab mount -o remount /mnt/mountpoint findmnt -no OPTIONS /mnt/mountpoint若仍无usrquota或grpquota检查设备、挂载点和文件系统类型是否写错。7.3 回退 EXT4 实验quotaoff -vug /mnt/mountpoint rm -f /mnt/mountpoint/student/quota-test.img umount /mnt/mountpoint # 恢复 /etc/fstab 备份后执行 mount -a不要直接删除aquota.user和aquota.group先执行quotaoff确认无需保留限制数据后再处理。