6.2 任务2 配置与管理磁盘配额
6.2.1 子任务1 部署磁盘配额环境
Linux是一个多用户的操作系统,为了防止某个用户或组群占用过多的磁盘空间,可以通过磁盘配额(Disk Quota)功能限制用户和组群对磁盘空间的使用。在Linux系统中可以通过索引节点数和磁盘块区数来限制用户和组群对磁盘空间的使用。
• 限制用户和组的索引节点数(inode)是指限制用户和组可以创建的文件数量。
• 限制用户和组的磁盘块区数(block)是指限制用户和组可以使用的磁盘容量。
注意:子任务2和子任务3都基于任务1中对磁盘/dev/sdb的各种处理。为了使后续的实训能正常进行,特重申如下几个问题:①/dev/sdb的第2个分区是独立分区;②将/dev/sdb2挂载到/disk2; ③使用/etc/fstab配置文件,完成自动挂载;④重启系统,使计算机自动挂载生效。
6.2.2 子任务2 设置磁盘配额
设置系统的磁盘配额大体可以分为以下4个步骤。
(1)启动系统的磁盘配额(quota)功能。
(2)创建配额文件。
(3)设置用户和组群的磁盘配额。
(4)启动磁盘限额功能。
下面以在/dev/sdb2分区上启用磁盘配额功能为例来讲解磁盘配额的具体配置。
1.启动系统的磁盘配额(quota)功能
(1)保证已经安装了quota软件包,在Red Hat Enterprise Linux 6.4中该软件已默认安装。可以利用下面的命令检测quota软件包的安装情况:
[root@RHEL6~]# rpm -q quota
(2)编辑/etc/fstab文件,启动文件系统的配额功能。为了启用用户的磁盘配额功能,需要在/etc/fstab文件中加入usrquota项。为了启用组的磁盘配额功能,需要在/etc/fstab文件中加入grpquota项,如下所示:
/dev/sdb2 /disk2 ext3 defaults, usrquota, grpquota 0 0
(3)重新启动系统,或者利用下面的命令重新挂载增加了磁盘配额功能的文件系统并使之生效。
[root@RHEL6~]#mount -o remount /disk2
2.创建quota配额文件
运行quotacheck命令生成磁盘配额文件aquota.user(设置用户的磁盘配额)和aquota. group(设置组的磁盘配额)。命令如下所示:
[root@Server~]#quotacheck -cvug /dev/sdb2 quotacheck: Scanning /dev/sdb2 [/disk2] done quotacheck: Checked 6 directories and 4 files
quotacheck命令用于检查磁盘的使用空间和限制,生成磁盘配额文件。-c选项用来生成配额文件;-v选项用于显示详细的执行过程;-u选项用于检查用户的磁盘配额;-g选项用于检查组的磁盘配额。
注意:在已经启用了磁盘配额功能或者已挂载的文件系统中运行quotacheck命令可能会遇到问题,可以使用-f、-m等选项强制执行。
3.设置用户和组群的磁盘配额
对用户和组群的磁盘配额限制分为两种。
(1)软限制(soft limit):指用户和组在文件系统上可以使用的磁盘空间和文件数。当超过软限制之后,在一定期限内用户仍可以继续存储文件,但系统会对用户提出警告,建议用户清理文件,释放空间。超过警告期限后用户就不能再存储文件了。Red Hat Enterprise Linux 6.4中默认的警告期限是7天。soft limit的取值如果为0,表示不受限制。
(2)硬限制(hard limit):指用户和组可以使用的最大磁盘空间或最多的文件数,超过之后用户和组将无法再在相应的文件系统上存储文件。hard limit的取值如果为0,也表示不受限制。
注意:软限制的数值应该小于硬限制的数值。另外磁盘配额功能对于root用户无效。
设置用户和组的磁盘配额可以使用edquota命令。
(1)设置用户的磁盘配额功能的命令是:
edquota -u用户名
(2)设置组的磁盘配额功能的命令是:
edquota -g组名
例如,设置user1用户的磁盘配额功能,可以使用如下命令:
[root@Server~]# edquota -u user1
edquota会自动调用vi编辑器来设置磁盘配额项,如图6-1所示。
图6-1 用户磁盘限额功能的配置界面
图6-1表示user1用户在/dev/sdb2分区上已经使用了70个数据块,拥有2个文件。把该图中的blocks和inodes的soft limit和hard limit改成想要设置的值,然后保存文件并退出。
如果需要对多个用户进行设置,可以重复上面的操作。如果每个用户的设置都相同,可以使用下面的命令把参考用户的设置复制给待设置用户。
[root@Server~]# edquota -p参考用户 待设置用户
例如,要给user2用户设置和user1一样的磁盘配额,可以使用如下命令:
[root@Server~]# edquota -p user1 user2
对组的设置和用户的设置相似,例如设置group1组的磁盘配额,可以使用如下命令:
[root@Server~]# edquota -g group1
要给group2组设置和group1一样的磁盘配额,可以使用如下命令:
[root@Server~]# edquota -gp group1 group2
4.启动与关闭磁盘配额功能
在设置好用户及组群的磁盘配额后,磁盘配额功能还不能产生作用,此时必须使用quotaon命令来启动磁盘配额功能;如果要关闭该功能则使用quotaoff命令。下面是启动及关闭quota配额功能的范例:
[root@RHEL6~]#quotaon -avug /dev/sdb2 [/disk2]: group quotas turned on /dev/sdb2 [/disk2]: user quotas turned on [root@RHEL6~]#quotaoff -avug /dev/sdb2 [/disk2]: group quotas turned off /dev/sdb2 [/disk2]: user quotas turned off
6.2.3 子任务3 检查磁盘配额的使用情况
磁盘配额设置生效之后,如果要查看某个用户的磁盘配额及其使用情况,可以使用quota命令。查看指定用户的磁盘配额使用“quota-u用户名”命令,查看指定组的磁盘配额使用“quota-g组名称”命令。对于普通用户而言,可以直接利用quota命令查看自己的磁盘配额使用情况。利用quota命令的-a选项可以列出系统中所有用户的磁盘配额信息。
另外,系统管理员可以利用repquota命令生成完整的磁盘空间使用报告。例如,如下所示的“repquota/dev/sdb2”命令可以生成磁盘分区/dev/sdb2上的磁盘使用报告。
[root@RHEL6~]# repquota /dev/sdb2 *** Report for user quotas on device /dev/sdb2 Block grace time: 7days; Inode grace time: 7days Block limits File limits User used soft hard grace used soft hard grace -------------------------------------------------- root -- 6353 0 0 11 0 0 jw -- 1 2000 4000 1 2000 3000
其中,用户名“--”分别用于判断该用户是否超出磁盘空间限制及索引节点数目限制。当磁盘空间及索引节点数的软限制超出时,相应的“-”就会变为“+”。最后的grace列通常是空的,如果某个软限制超出,则这一列会显示警告时间的剩余时间。要查看所有启用了磁盘配额的文件系统的磁盘使用情况,可以使用命令“repquota-a”。