在Linux上创建磁盘配额
磁盘配额的概述及管理
为什么创建磁盘配额
在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
/dev/mapper/ysf-yang 0 0 0 0 0 0
Filesystem:表示本行配置记录文件对应的文件系统(分区),即配额的作用范围
blocks:表示用户已使用的磁盘容量,默认单位为KB
inodes:表示用户当前已拥有的文件数量
soft:第3列对应为磁盘容量的软限额数值,单位KB;第6列对应文件数量软限额数值,单位个
hard:第3列对应为磁盘容量的硬限额数值,单位KB;第6列对应文件数量硬限额数值,单位个
例如:若要为 zhangsan 设置配额,磁盘容量软限制为80MB、硬限制为100MB,文件数量软限制40个、硬限制40个,可执行以下操作
# edquota -u zhangsan
Filesystem blocks soft hard inodes soft hard
/dev/mapper/ysf-yang 0 80000 100000 0 40 50
可以设置软限制的宽限期限,默认为7天,可以修改。
例如:可以将宽限期限改为10天。
# edquota -t
Filesystem Block grace period Inode grace period
/dev/mapper/ysf-yang 10days 10days
4.启动文件系统的磁盘配额功能
启动和关闭文件系统的磁盘配额功能分别使用 quotaon、quotaoff 命令执行,需要指定设备文件名或文件系统的挂载点作为参数。quotaon 命令使用的选项与 quotacheck 的选项类似。
例如:执行以下操作可启用“/mailbox”文件系统的用户、组磁盘配额功能,并显示命令执行的过程信息。
# quotaon -ugv /mailbox
5.查看用户或分区的配额使用情况
可使用 quota 命令、repquota命令,其中,quota 命令可以结合 -u、-g 选项分别查看指定用户和组的配额使用情况;而 repquota 命令主要指定文件系统输出配额使用情况报告,结合 -a 选项可查看所有可用分区的配额使用情况报告。
例如:查看用户账号 zhangsan、组账号 users 的配额使用情况
# quota -u zhangsan
# quota -g users
查看 /mailmox 文件系统的配额使用情况
# repquota /mailmox
6.验证磁盘配额功能
可使用 dd 转换工具,dd 命令是设备转换和复制命令
例如:向 /mailmox 目录下写入一个名为 a.txt 的测试文件,大小为10MB(分10次读取,每次1MB),复制来源为设备 /dev/zero
# dd if=/dev/zero of=/mailmox/a.txt bs=1M count=10
if= 指定输入设备(或文件)
of= 指定输出设备(或文件)
bs= 指定读取数据块的大小
count= 指定读取数据块的数量
相关推荐
在网络管理的工作中,由于硬盘的资源是有限的,常常需要为多用户的服务器设定用户的linux磁盘配额。设置用户和组配额的分配量对磁盘配额的限制一般是从一个用户占用磁盘大小和所有文件的数量两个方面来进行的。