Linux操作系统针对用户级别磁盘配额

Linux作为多用户的操作系统,多人使用同一块磁盘的情况是不可避免的问题,为保证磁盘的有效利用及数据安全性,限制各用户对共有磁盘访问及读写是不错的解决方法。针对此,Linux系统的磁盘配额显得尤为重要。

本文以CentOS Linux release 7.6.1810为基础,通过新扩展磁盘的方式演示磁盘配额,完成Linux操作系统中针对用户完成磁盘配额的使用方式。

磁盘配额简介

磁盘配额,顾名思义即为磁盘分配额度,而‘quota’也具有‘额度’之意。在Linux操作系统中,磁盘配额就是限制用户对磁盘空间的使用量,以此保证磁盘空间的有效利用及对磁盘的有效分配。在Centos7以后的版本中默认已经支持quota功能,具体以各版本的说明。

磁盘配额的限制类型

磁盘配额常见存在两种配额类型,分别为磁盘容量、文件数量。具体如下:

(1)磁盘容量:限制用户、用户组可以使用的磁盘数据库大小,默认单位为KB;

(2)文件数量:限制用户、用户组可以创建(拥有)的文件个数。

磁盘配额方式

磁盘配额常见存在两种配额方法,分别为软限制、硬限制。具体如下:

(1)软限制(soft):用户可以超过磁盘配额软限制,在超过软限制时系统会出现提示信息,不影响用户使用超出配额软限制的磁盘,但是不能超过硬限制磁盘配额;

(2)硬限制(hard):用户不允许超过磁盘配额硬限制,在超过硬限制时系统会出现提示信息,同时也会拒绝用户使用超出配额硬限制的磁盘。

磁盘配额宽限期

当用户磁盘使用量超过软限制但未达到硬限制时,系统会出现磁盘配额宽限期(grace time)。在磁盘配额宽限期之间,系统会给予警告,但不影响用户继续使用磁盘。在磁盘配额宽限期(grace time)之间,用户可以管理系统分配的磁盘空间。若超出宽限期,用户认为管理磁盘空间,则软限制将会取代硬限制作为磁盘配额的最终限制,并禁止用户对磁盘写入数据。

注:

(1)超过磁盘硬限制后可能导致数据写入不完整;

(2)一般情况下,软限制应小于或等于硬限制。若软限制大于硬限制,则软限制不起任何作用。

扩展磁盘

在虚拟机系统内添加磁盘。具体如下图所示:

Linux操作系统针对用户级别磁盘配额

磁盘分区

执行命令,新增磁盘分区。具体如下图所示:

Linux操作系统针对用户级别磁盘配额

分区结束后使用‘w’命令保存。具体如下图所示:

Linux操作系统针对用户级别磁盘配额

查看当前系统文件系统类型

执行命令,查看当前系统内文件系统类型。具体如下图所示:

[root@freeops ~]# df -T /home
Linux操作系统针对用户级别磁盘配额

磁盘格式化

执行命令,格式化磁盘。具体如下图所示:

[root@freeops ~]# mkfs.xfs /dev/sdb1
Linux操作系统针对用户级别磁盘配额

创建挂载点

执行命令,创建磁盘挂载点。具体如下图所示:

[root@freeops ~]# mkdir /quotest
Linux操作系统针对用户级别磁盘配额

挂载磁盘

执行命令,挂载磁盘。具体如下图所示:

[root@freeops ~]# mount -o uquota,gquota /dev/sdb1 /quotest
Linux操作系统针对用户级别磁盘配额

注:此处挂载不能使用mount命令直接挂载,需要添加‘-o uquota,gquota’参数。

查看是否支持磁盘配额

执行命令,查看当前磁盘是否支持磁盘配额。具体如下图所示:

[root@freeops ~]# mount | grep quotest
Linux操作系统针对用户级别磁盘配额

注:

(1)执行上述命令,若系统返回数据中包含usrquota、grpquota,则证明该磁盘支持磁盘配额;

(2)执行上述命令,若系统返回数据中包含noquota,则证明该磁盘不支持磁盘配额。若需要使用磁盘配额功能需要卸载该磁盘后重新使用‘-o uquota,gquota’参数挂载磁盘。

设置开机自动挂载

编辑‘/etc/fstab’文件,添加如下信息设置开机自动挂载磁盘。具体如下图所示:

Linux操作系统针对用户级别磁盘配额

查看系统环境

磁盘配额需要使用xfs_quota功能,执行命令,查看系统是否已安装该命令环境。具体如下图所示:

[root@freeops ~]# rpm -qa | grep xfsprogs
xfsprogs-4.5.0-18.el7.x86_64
Linux操作系统针对用户级别磁盘配额

添加用户

执行以下命令,创建用户及用户组。具体如下图所示:

Linux操作系统针对用户级别磁盘配额

设置磁盘读写权限

执行以下命令,设置磁盘读写权限。具体如下图所示:

Linux操作系统针对用户级别磁盘配额

设置磁盘配额

执行命令,设置磁盘配额。具体如下图所示:

[root@freeops ~]# xfs_quota -x -c 'limit bsoft=800M bhard=1G -u test001' /quotest/
Linux操作系统针对用户级别磁盘配额

查看磁盘配额情况

执行命令,查看当前磁盘的配额情况。具体如下图所示:

[root@freeops ~]# xfs_quota -x -c 'report' /quotest/
Linux操作系统针对用户级别磁盘配额

测试磁盘配额功能

执行命令,测试磁盘配额功能。具体如下图所示:

[test001@freeops ~]$ dd if=/dev/zero of=/quotest/quotest.txt bs=20M count=30
Linux操作系统针对用户级别磁盘配额

注:由上图可知,test001可以正常在/quotest中正常写入600M数据;

执行命令,测试磁盘配额功能。具体如下图所示:

[test001@freeops ~]$ dd if=/dev/zero of=/quotest/quotest.txt bs=20M count=55
Linux操作系统针对用户级别磁盘配额

注:由上图可知,test001可以在/quotest中仅能写入1.0G数据,超过1.0G时会出现提示;

查看宽限时间

执行‘quota’命令,查看磁盘宽限时间。具体如下图所示:

Linux操作系统针对用户级别磁盘配额

注:由上图可知,本例磁盘配额宽限时间为6天。
扩展:
(1)quotaoff -a:关闭所有的磁盘配额;
(2)quotaoff /quotest:关闭指定/quotest分区磁盘配额。
(3)设置磁盘配额开机自启:echo "quotaon -aug" >> /etc/rc.d/rc.local。
Linux操作系统针对用户级别磁盘配额

发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章