需启用内核级磁盘配额功能,通过修改fstab挂载选项、初始化配额数据库、设置用户/组软硬限制、lvm统一配置及组配额继承等五步实现ext4/xfs文件系统精准管控。

如果您在麒麟OS系统中需要对用户或用户组的磁盘使用进行精确管控,防止个别用户占满文件系统导致服务异常,则需启用并配置内核级磁盘配额功能。以下是针对ext4/XFS文件系统的多种配额配置方法:
一、启用文件系统配额支持并挂载
配额功能必须在文件系统挂载时显式激活。对于已存在的ext4分区,需修改/etc/fstab使其在重启后自动启用配额选项;XFS则默认支持项目配额,但用户配额仍需确认挂载参数。
1、编辑fstab文件:sudo nano /etc/fstab
2、定位目标分区行(例如根分区 /dev/sda3 或 /dev/mapper/kylin--vg-root),在第四列(挂载选项)中添加usrquota,grpquota(ext4)或uquota,gquota(XFS);若原选项为defaults,改为defaults,usrquota,grpquota
3、重新挂载该分区:sudo mount -o remount /
4、验证配额是否启用:sudo dumpe2fs -h /dev/sda3 | grep -i quota(ext4)或xfs_info / | grep -i quota(XFS)
二、初始化配额数据库文件
首次启用配额前,系统需在对应文件系统根目录下创建aquota.user和aquota.group(ext4)或直接由XFS内建管理。此步骤生成配额跟踪所需的底层数据结构。
1、切换至目标文件系统根目录:cd /
2、对ext4执行初始化:sudo quotacheck -cugm /(-c创建新文件,-u/-g启用用户/组配额,-m忽略挂载检查)
3、对XFS无需单独创建文件,但需确保已启用uquota/gquota挂载选项且运行sudo xfs_quota -x -c 'enable -u -g' /
4、启动配额服务:sudo quotaon -avug(ext4)或确认XFS配额已通过挂载启用
三、为指定用户设置软硬配额限制
通过edquota命令可交互式设定每个用户的块限制(空间)与inode限制(文件数),软配额允许临时超额并触发宽限期警告,硬配额则强制拒绝写入操作。
1、为用户testuser配置配额:sudo edquota -u testuser
2、在打开的vi编辑器中,按列填写:第一列soft blocks(软块限)、第二列hard blocks(硬块限)、第三列soft inodes(软文件数限)、第四列hard inodes(硬文件数限);单位为KB(ext4)或1KB块(XFS)
3、设置宽限期(仅对软限制生效):sudo edquota -t,修改block grace period和inode grace period为所需天数(如7)
4、保存退出后立即生效,无需重启服务
四、基于LVM逻辑卷统一启用配额
当麒麟OS采用LVM管理存储时,可在LV层面集中开启配额,避免逐一分区配置。此方法适用于Kylin V10 SP3及以上版本,要求底层物理卷使用ext4且LV格式化时已预留配额支持。
1、确认LV所在VG状态:sudo vgdisplay kylin--vg
2、卸载目标LV挂载点(如/data):sudo umount /data
3、重新格式化LV启用配额:sudo mkfs.ext4 -O quota /dev/kylin--vg/data
4、更新fstab中/data条目,添加usrquota,grpquota选项,并重新挂载:sudo mount /data
5、运行sudo quotacheck -cugm /data并启用:sudo quotaon /data
五、批量为用户组设置配额并继承应用
通过组配额可统一约束多个用户的总资源消耗,特别适用于开发团队或部门共享目录场景。用户新建文件时自动归属其主组,配额统计按组聚合,简化管理粒度。
1、创建目标组(如devteam):sudo groupadd devteam
2、将用户加入该组:sudo usermod -aG devteam alice bob charlie
3、为组设置配额:sudo edquota -g devteam,填写块与inode的软硬限制值
4、确保用户主目录或共享目录所属组为devteam:sudo chgrp -R devteam /srv/project 并设置setgid位:sudo chmod g+s /srv/project
5、验证组配额生效:sudo repquota -ag 显示所有组当前使用量与限额










