rpm -q xfsprogs //确认配额工具已安装
xfsprogs-4.5.0-8.el7.x86_64
umount /abc //卸载之前的挂载
mount -o usrquota,grpquota /dev/GP/data /abc //用户、组以支持磁盘配额方式挂载。
mount //可以查看到挂载点已支持磁盘配额,
/dev/mapper/GP-data on /abc type xfs (rw,relatime,attr2,inode64,usrquota,grpquota) 若要实现开机自动挂载并实现支持磁盘配额功能:
vim /etc/fstab
/dev/GP/data /abc xfs defaults,usrquota,grpquota 0 0 针对张三用户配置磁盘配额限制:
useradd zhangsan
xfs_quota -x -c 'limit -u bsoft=10M bhard=20M isoft=5 ihard=10 zhangsan' /abc
xfs_quota //磁盘配额关键命令 -x //专家模式,表示可以使用所有管理命令 -c //直接调用相关命令进行配置,而不进入交互式界面 limit //单引号内的命令为设置具体的磁盘配额参数 -u //表示为用户设置配额,-g为组 bsoft //磁盘容量软限制 bhard //磁盘容量硬限制 isoft //文件数量软限制 ihard //文件数量硬限制 0表示无限制
查看刚刚定义的磁盘容量配额:
xfs_quota -c 'quota -uv zhangsan' /abc Disk quotas for User zhangsan (1000)
Filesystem Blocks Quota Limit Warn/Time Mounted on /dev/mapper/GP-data 0 10240 20480 00 [--------] /abc 查看文件数量配额的方法为:
xfs_quota -c 'quota -i -uv zhangsan' /abc
Disk quotas for User zhangsan (1000) Filesystem Files Quota Limit Warn/Time Mounted on /dev/mapper/GP-data 0 5 10 00 [--------] /abc
验证磁盘配额限制效果:
chmod 777 /abc //给文件夹授权,方便zhangsan用户写入数据
su zhangsan //切换为zhangsan用户验证
$ cd /abc $ touch 1 2 3 4 5 6 7 8 9 10 11 //连续创建11个文件,第11个失败 touch: 无法创建"11": 超出磁盘限额 $ ls 1 10 2 3 4 5 6 7 8 9 //只有10个 $ rm -rf /abc/*
验证磁盘容量限制:
$ dd if=/dev/zero of=/abc/a.txt bs=1M count=15 //先创建15M,由于限制20M,所以不会报错 $ dd if=/dev/zero of=/abc/b.txt bs=1M count=10 //再创建10M,由于之前已有15M,因此会报错,且只能再写入5M数据 dd: 写入"/abc/b.txt" 出错: 超出磁盘限额 记录了6+0 的读入 记录了5+0 的写出 5242880字节(5.2 MB)已复制,0.00458746 秒,1.1 GB/秒 $ ll //查看文件容量时,也只有20M,并不是25M 总用量 20480 -rw-rw-r-- 1 zhangsan zhangsan 15728640 7月 13 20:56 a.txt -rw-rw-r-- 1 zhangsan zhangsan 5242880 7月 13 20:57 b.txt
xfs_quota -x -c 'report -abi' //查询系统中所有分区的磁盘配额情况,b为容量,i为文件数量