20、xfs文件系统的磁盘配额设置
作者:码农 | 发布时间:
xfs文件系统: xfs_quota命令
ext4文件系统: quota命令
1.磁盘配额实验
【实验准备】首先添加一块硬盘,创建的“/dev/sdb1”分区,大小为1G,文件系统为xfs
[root@linux ~]# lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
sda
├─sda1 xfs 036025e7-9f79-4675-a38a-ec98562eb57d /boot
└─sda2 LVM2_mem 61zv0d-m1Rn-Vvpv-yjs4-rbip-Sz4v-84tyVz
├─centos-root
xfs 7df66b77-1ad5-456b-91c0-b43b5bdc0cf5 /
└─centos-swap
swap 4d4907b3-c7fb-4169-b76c-35c7f1add59c [SWAP]
sdb
└─sdb1 xfs b3f21e00-c94f-4498-a9f6-52286989ade0
sr0 iso9660 CentOS 7 x86_64
2019-09-11-18-50-31-00 /run/media
【实验任务】针对用户zhang3限制磁盘软限制为100MB、磁盘硬限制为120MB、文件数软限制为3个、文件数硬限制为6个。
步骤1:检查系统中是否安装xfs_quota命令对应的软件包(RHEL7中默认已安装)。
[root@linux ~]# rpm -qf `which xfs_quota` //查看xfs_quota文件所属的软件包,其中“`“
//符号不是引号,而是【Esc】键下面的键
xfsprogs-4.5.0-8.el7.x86_64.rpm
步骤2:创建被限额使用磁盘空间大小的用户及密码→创建用户存放文件的目录,并将该目录的所有权赋给该用户,以此保证用户能读写目录中的文件。
[root@linux ~]# useradd zhang3
[root@linux ~]# passwd zhang3
[root@linux ~]# mkdir /data/
[root@linux ~]# chown zhang3 /data/ //将目录所有权赋给zhang3用户
[root@linux ~]# ls -ld /data/ //查看文件的权限
drwxr-xr-x. 2 zhang3 root 6 12月 5 05:20 /data/
步骤3:设置在系统启动时以支持磁盘配额的方式挂载磁盘分区到指定的目录。
[root@linux ~]# vim /etc/fstab
…… //省略若干行
//在文件末尾添加下一行内容
/dev/sdb1 /data xfs defaults,usrquota,grpquota 0 0
[root@linux ~]# mount -a //使文件/etc/fstab中设置的所有挂载设备立即生效
[root@linux ~]# mount | grep sdb1
/dev/sdb5 on /data type xfs (rw,relatime,seclabel,attr2,inode64,usrquota,grpquota)
xfs_quota命令的常用格式为:
xfs_quota -x -c “子命令” 挂载目录
其中的参数说明如下:
-x——使用专家模式,只有此模式才能设置配额。
-c "子命令"——以交换式或参数的形式设置要执行的命令,其中,常用的子命令如下:
limit——设置配额。
report——显示配额信息。
disable|enable——暂时关闭或启用磁盘配额限制。
off——完全关闭磁盘配额限制,此时,无法用enable重启配额限制,只能通过卸载后再重新挂载才可恢复配额限制功能。
管理命令limit后的常用参数有:
-u:对用户限制
-g:对组限制
bsoft:磁盘容量软限制
bhard:磁盘容量硬限制
isoft:文件数量软限制
ihard:文件数量硬限制
步骤4:为zhang3用户和/data目录设置磁盘配额→查看设置的配额信息。
[root@linux ~]# xfs_quota -x -c 'limit bsoft=100M bhard=130M isoft=3 ihard=6 -u zhang3' /data
[root@linux ~]# xfs_quota -x -c 'report -ubih' /data
User quota on /data (/dev/sdb5)
Blocks Inodes
User ID Used Soft Hard Warn/Grace Used Soft Hard Warn/Grace
---------- --------------------------------- ---------------------------------------------------------------
root 0 0 0 00 [------] 3 0 0 00 [------]
zhang3 0 100M 120M 00 [------] 0 3 6 00 [------]
步骤5:切换到zhang3用户,验证磁盘配额限制是否生效。
[root@linux ~]#su zhang3 //切换用户
//下面的dd命令是向文件/data/test中写入90M数据,以便验证磁盘配额的情况
[zhang3@linux root]$ dd if=/dev/zero of=/data/test bs=1M count=90
记录了90+0 的读入
记录了90+0 的写出 //在软限制范围内时成功写入文件
94371840字节(94 MB)已复制,0.188569 秒,500 MB/秒
//向文件/data/test中写入110M数据
[zhang3@linux root]$ dd if=/dev/zero of=/data/test bs=1M count=110
记录了110+0 的读入
记录了110+0 的写出 //超出软限制但未超出硬限制时仍能成功写入
115343360字节(115 MB)已复制,0.206453 秒,559 MB/秒
//向文件/data/test中写入130M数据
[zhang3@linux root]$ dd if=/dev/zero of=/data/test bs=1M count=140
dd: 写入"/data/test" 出错: 超出磁盘限额
记录了131+0 的读入
记录了130+0 的写出 //在写入过程中超出硬限制时被中断,只写入部分
135829120字节(136 MB)已复制,0.126692 秒,993 MB/秒
步骤6:在root用户与zhang3用户之间切换,关闭或启用磁盘配额限制。
[zhang3@linux root]$ su
密码:
[root@linux ~]# xfs_quota -x -c "disable" /data //临时关闭磁盘配额限制
[root@linux ~]# su zhang3
[zhang3@linux root]$ dd if=/dev/zero of=/data/test bs=1M count=140
记录了130+0 的读入
记录了130+0 的写出
136314880字节(136 MB)已复制,0.120835 秒,1.1 GB/秒 //在配额关闭时超额存储成功
[zhang3@linux root]$ su
密码:
[root@linux ~]# xfs_quota -x -c "enable" /data //重启磁盘配额限制
[root@linux ~]# su zhang3
[zhang3@linux root]$ dd if=/dev/zero of=/data/test bs=1M count=140
dd: 写入"/data/test" 出错: 超出磁盘限额
记录了131+0 的读入
记录了130+0 的写出
0字节(0 B)已复制,0.00140668 秒,0.0 kB/秒
[zhang3@linux root]$ su
密码:
[root@linux ~]# xfs_quota -x -c "off" /data //完全关闭磁盘配额的功能
[root@linux ~]# xfs_quota -x -c "enable" /data
XFS_QUOTAON: 无效的参数 //完全关闭配额后无法用enable重启配额
[root@linux ~]# mount -a //完全关闭配额后只有卸载后重新挂载方能恢复配额
2.实验总结
步骤1:检查系统中是否安装了xfs_quota命令对应的软件包
步骤2:创建测试用户,目录,以及赋予权限
步骤3:以支持配额的方式自动挂载磁盘分区到用户目录
步骤4:使用xfs_quota命令为用户设置磁盘配额
步骤5:验证磁盘配额是否生效
步骤6:关闭或者启动磁盘配额限制
xfs_quota -x -c “子命令” 挂载目录