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  “子命令”  挂载目录