磁盘配额的概述及管理
为什么创建磁盘配额
在Linux根分区的磁盘空间耗尽时,Linux将无法再创建新的文件(包括程序运行的临时文件),从而导致服务程序崩溃,系统无法启动等故障现象。
为了避免出现类似问题,可以设置启用磁盘配额功能,对用户在指定文件系统(分区)中使用磁盘空间、文件数量进行限制,以防止个别用户恶意或无意间占用大量磁盘空间,从而保证系统存储空间的稳定性和持续可用性。
使用磁盘配额的前提条件
设置磁盘配额,需要安装 quota 软件包,用于配置和管理磁盘配额,在RHEL 6中,系统默认安装了 quota 软件包。
磁盘配额的作用范围
quota软件设置的磁盘配额功能,只在指定的文件系统(分区)内有效,用户使用其他未设置配额的文件系统时,将不受限制。
磁盘配额的限制对象
quota 主要针对系统中的指定用户账号、组账号进行限制,没有被设置限额的用户或组将不受影响。对组账号设置配额后,组内所有成员使用的磁盘容量、文件数量的总和不能超过限制。
磁盘配额的限制类型
# 磁盘容量:限制用户能够使用的磁盘空间的大小,默认单位为KB
# 文件数量:限制用户能够使用的文件个数
磁盘配额的限制方法
# 软限制:指定一个软性的配额数值(如100MB的磁盘空间、80个文件),在固定的宽限期限(默认为七天)内允许超过这个限制,但系统会给出警告信息
# 硬限制:指定一个硬性的配额数值(如120MB的磁盘空间、100个文件),是绝对禁止用户超过限制值,当达到硬限制值时,系统会给出警告信息并禁止继续写入数据。硬限制的配额值应该大于软限制值,否则软限制将失效
实验:
下面将上篇创建的 yang 逻辑卷 /dev/ysf/yang 挂载到 /mailbox 目录下 ,然后在该文件中配置实现磁盘配额功能。
1.以支持磁盘配额功能的方式挂载文件系统
将usrquota, grpquota挂载参数写入到“/etc/fstab”文件中。
# chmod 777 /mailbox //为后续测试方便,允许任何用户写入数据
# vim /etc/fstab //修改 yang 逻辑卷的挂载配置
/dev/ysf/yang /mailbox ext4 defaules,usrquota,grpquota 0 0
2.检测磁盘配额并生成配额文件
使用 quotacheck 命令可以对指定的文件系统进行磁盘配额检测,也可以用来建立配额文件,以便保存用户、组在该分区的配额设置
例如:执行以下操作将扫描系统中的所有文件系统,并在支持配额的文件系统中建立配额文件
# quotacheck -augcv
-a 表示扫描所有分区,如果不使用,将必须指定一个分区或挂载点目录作为命令参数
-u 表示检测用户配额信息
-g 表示检测组配额信息
-c 表示创建新的配额文件
-v 表示显示命令执行过程中的细节信息
# ls -l /mailbox/aquota.*
可以看到新建立的配置文件,包括“aquota.user”、“aquota.group”,分别用于保存用户、组的配额设置,配置文件保存在该文件系统根下,默认权限为600
3.编辑用户和组账号的配额设置
使用 edquota 命令结合 -u、-g 选项可用于编辑用户和组的配额设置,(默认调用 vi 作为编辑程序),可设置磁盘容量、文件大小的软、硬限制数值。
例如:执行以下操作可以对用户 zhangsan 的配额进行编辑
# edquota -u zhangsan
Filesystem blocks soft hard inodes soft hard