【Linux学习笔记十八】quota磁盘配额管理

磁盘配额管理主要是指限制某些用户的可用磁盘空间,如针对提供虚拟主机的Web服务器,需要对网站空间大小进行限制;针对邮件服务器,需要对用户邮箱大小进行限制;针对文件服务器,需要对每个用户可用的网络硬盘空间进行限制等。在Linux系统中,引入了quota磁盘配额功能,目的就是将用户对磁盘容量的使用限制在一个合理的水平,防止存储资源耗尽。
一、quota磁盘配额简介
quota磁盘配额功能只在指定的文件系统(分区)内有效,用户使用其它未设置配额的文件系统时,将不会受到限制。
quota主要针对系统中指定的用户账号、组账号进行限制,没有被设置限额的用户或组将不受影响 。对组账号设置配额后,组内所有用户使用的磁盘容量、文件数量的总和不能超过限制。
通过设置磁盘配额可以对用户或组进行两方面的限制: 磁盘容量 、文件数量
磁盘容量:限制用户能够使用的磁盘数据块(block)大小,也就是限制磁盘空间大小,默认单位为KB。
文件数量:限制用户能够拥有的文件个数。 在Linux系统中,每一个文件都有一个对应的数字标记,称为i节点(inode)编号,这个编号在文件系统内是唯一的,因此quota通过限制i节点的数量来实现对文件数量的限制。
磁盘配额的限制方 法: 软限制、硬限制
软限制:设定一个软性的配额数值(如400MB磁盘空间、150个文件),在固定的宽限期(默认为7天)内允许暂时超过这个限制,但系统会给出警告信息。
硬限制:设定一个硬性的配额数值(如500MB磁盘空间、200个文件),而且绝对禁止用户超过该限值。当达到硬限制值时,系统也会给出警告并禁止继续写入数据。硬限制的配额值应大于相应的软限制值,否则软限制值将失效。
二、配置quota磁盘配额
在RHEL6系统中,内核已经定制了支持Linux文件系统的磁盘配额功能,而且在系统中默认安装了quota软件包,因而只需直接设置启用该功能即可。
1.查看系统中是否安装quota:
# rpm �Cqa quota
2.如果没安装使用命令安装:
在Linux的1号光盘的/RedHat/RPMS目录下,有相应版本的quota软件包
# rpm  -ivh  quota-3.06-9.i386.rpm
3.启用quota磁盘配额功能
将磁盘分区“/dev/sdb1”挂载到“/data”目录,然后在该文件系统中配置实现磁盘配额功能
在RHEL6系统中主要是通过修改配置文件“/etc/fstab”的方式启用quota磁盘配额功能,通过这种方式启用的磁盘配额功能可以永久生效。修改“/etc/fstab”,给需要设置配额的文件系统添加usrquota和grpquota选项。
[root@localhost ~]# vim /etc/fstab
第四字段:装载文件系统的选项。
(1)defaults,默认无配额管理;
(2)加入usrquota关键字,实现基于用户的磁盘配额;  
(3)加入grpqouta关键字,实现基于组的磁盘配额;
(4)如果两者都需要,全部添写,中间可以用逗号分隔
4.更新装载文件系统
修改完“/etc/fstab”文件后需要将文件系统重新挂载,使设置生效。
[root@localhost ~]# mount -o remount /data          ’重新挂载文件系统
5.查看是否启用quota功能
[root@localhost ~]# mount | grep sdb1              ’查看已经挂载的文件系统
/dev/sdb1 on /data type ext4 (rw,usrquota,grpquota)
6.检测磁盘配额并生成配额文件
命令:quotacheck
说明:执行quotacheck指令,扫描挂入系统的分区,并在各分区的文件系统根目录下产生quota.user和quota.group文件,设置用户和群组的磁盘空间限制。
参数:
         -c    创建配额文件
         -a   扫描在/etc/fstab文件里,有加入quota设置的分区。
         -d   详细显示指令执行过程,便于排错或了解程序执行的情形。
         -g   扫描磁盘空间时,计算每个群组识别码所占用的目录和文件数目。
         -R   排除根目录所在的分区。
         -u   扫描磁盘空间时,计算每个用户识别码所占用的目录和文件数目。
         -v   显示指令执行过程。
范例:
          [root@localhost ~]# quotacheck -cuvg /data    
          命令执行成功后,会在“/data”目录中生成两个配额文件:aquota.user、atuota.group,分别用于保存用户和组的配额限制。
          [root@localhost ~]# ls /data
          aquota.group aquota.user lost+found
注意,在采用默认设置的RHEL6系统中执行该命令时将产生“权限不够”的错误提示,如下图所示
这是由于系统中默认启用了SELinux安全机制,将SELinux设为许可模式,再次执行命令,即可成功。
[root@localhost ~]# setenforce 0         ’将SELinux设为许可模式
7.编辑用户和组账号的配额设置
命令:edquota
功能:编辑用户或群组的quota
参数:
          -u   设置用户的quota,这是预设的参数。
          -g   设置群组的quota。
          -p<源用户名称>   将源用户的quota设置套用至其他用户或群组。
          -t   设置宽限期限。
范例:
对用户jerry进行磁盘配额设置
        [root@localhost ~]# edquota -u jerry    
Filesystem:表示本行配置对应的文件系统(分区),即配额的作用范围。
blocks:表示用户当前已经使用的磁盘容量,默认单位为KB,该值由edquota程序自动计算生成。
inodes:表示用户当前已经拥有的文件数量,该数值也是由edquota程序自动计算生成。
soft:第3列中的soft对应为磁盘容量的软限制数值,默认单位为“KB”;第6列中的soft对应为文件数量的软限制数值,默认单位为“个”。
hard:第4列中的hard对应为磁盘容量的硬限制数值,默认单位为“KB”,第7列中的hard对应为文件数量的硬限制数值,默认单位为“个”。
说明:进行配置设置时,只需要修改相应的soft、hard列下的数值即可。另外,由于很少对用户的文件数量进行限制,所以主要是修改第3列和第4列中的软限制容量和硬限制容量。这里将用户jerry的磁盘容量软限额设置为400000(即400MB),硬限额设置为500000(即500MB),设置完成后保存退出。
对caiwu组进行磁盘配额设置,将其硬限额设置为4000000(即4GB)。
   [root@localhost ~]# edquota -g caiwu
说明:需要注意的是,配额设置仅对基本组生效。如用户jerry所属的基本组是“caiwu”,所属的附加组是“xiaoshou”,那么只有针对“caiwu”组设置的配额才对jerry有效,而针对“xiaoshou”组设置的配额则对jerry没有限制。
8.激活磁盘配额
命令:quotaon
功能:开启磁盘空间限制;各分区的文件系统根目录必须有quota.user和quota.group配置文件。
参数:
        -a   开启在/ect/fstab文件里,有加入quota设置的分区的空间限制。
        -g   开启群组的磁盘空间限制。
        -u   开启用户的磁盘空间限制。
        -v   显示指令指令执行过程
说明:
        磁盘配额设置完毕后,还必须用quotaon命令将之激活,在命令中需要指定设备文件名或文件系            统的挂载点目录作为命令参数。
范例:
        [root@localhost ~]# quotaon -ugv /data     ’激活“/data”文件系统的用户、组配额
        /dev/sdb1 [/data]: group quotas turned on
       /dev/sdb1 [/data]: user quotas turned on
9.验证磁盘配额功能
命令:quota
功能:显示磁盘已使用的空间与限制
参数:
         -g   列出群组的磁盘空间限制。
         -q   简明列表,只列出超过限制的部分。
         -u   列出用户的磁盘空间限制。
         -v   显示该用户或群组,在所有挂入系统的存储设备的空间限制。
         -V   显示版本信息。
范例:
[root@localhost ~]# quota -u jerry       ’查看用户jerry的磁盘配额使用情况
[root@localhost ~]# quota -g caiwu       ’查看caiwu组的磁盘配额使用情况
Filesystem:表示本行配置对应的文件系统(分区),即配额的作用范围。
blocks:表示用户当前已经使用的磁盘容量,默认单位为KB,该值由edquota程序自动计算生成。
limit 极限
grace:宽限期
命令:repquota
功能:检查磁盘空间限制的状态
参数:
         -a   列出在/etc/fstab文件里,有加入quota设置的分区的使用状况,包括用户和群组。
         -g   列出所有群组的磁盘空间限制。
         -u   列出所有用户的磁盘空间限制。
         -v   显示该用户或群组的所有空间限制。
范例:
        [root@localhost ~]# repquota /data       ’查看“/data”文件系统的配额使用情况报告
10.关闭磁盘空间限制
命令:quotaoff
参数:
         -a   关闭在/etc/fstab文件里,有加入quota设置的分区的空间限制。
         -g   关闭群组的磁盘空间限制。
          -u   关闭用户的磁盘空间限制。
         -v   显示指令执行过程


你可能感兴趣的:(quota,磁盘配额)