目录 一、概述一、实现磁盘限额的条件二、Linux磁盘限额的特点三、EXT4和XFS的区别四、实验步骤 二、ext4相关代码

一、概述 一、实现磁盘限额的条件

1、需要Linux内核支持
2、安装xfsprogs(XFS 文件系统)-与quota(EXT3/4 文件系统)软件包

二、Linux磁盘限额的特点

1、作用范围:xfs_quota 设置的磁盘配额功能,只在指定的文件系统(分区)内有效,用户使用其他 未设置配额的文件系统时,将不会受到限制
2、限制对象:xfs_quota 主要针对系统中指定的用户账号、组账号进行限制,没有被设置限额的用户或组将不受影响。
对组账号设置配额后,组内所有用户使用的磁盘容量、文件数量的总和不能超过限制。
3、限制类型:
磁盘容量:限制用户能够使用的磁盘数据块(Block)大小,也就是限制磁盘空间大小,默认单位为 KB。
文件数量:限制用户能够拥有的文件个数。在 Linux 操作系统中,每一个文件都有一个对应的数字标记,称为 i 结点(Inode)编号,这个编号在同一个文件系统内是唯一的,因此 xfs_quota 通过限制 i 结点的数量来实现对文件数量的限制。
4、限制方法:
软限制:指定一个软性的配额数值(如 480MB 磁盘空间、180 个文件),在固定 的宽限期(默认为七天)内允许暂时超过这个限制,但系统会给出警告信息。
硬限制:指定一个硬性的配额数值(如 500MB 磁盘空间、200 个文件),是绝对 禁止用户超过的限制值,当达到硬限制值时,系统也会给出警告并禁止继续写入数据。硬限制的配额值应大于相应的软限制值,否则软限制将失效。

三、EXT4和XFS的区别 ext4 文件系统xfs 文件系统无法对单一目录可对单一目录quota工具xfs_quota工具quota默认不开启默认开启需要创建配额配置文件不需要创建配额配置文件四、实验步骤

实验步骤(EXT4):
1、关闭selinux
2、修改/etc/fstab,对所选文件系统激活配额选项

[root@localhost ~]# mount -o remount , usrquota, grpquota /dev/sdb1重新挂载vim /etc/fstab进入主配置文件/dev/vg01/lv02 /opt ext4 defaults,usrquota,grpquota 0 0在配置文件中录入保存

3、重新挂载设备
4、用quotacheck命令生成基本配额文件(xfs跳过)
5、启动磁盘配额功能(xfs跳过)
6、用quota或者xfs_quota对具体用户或者目录设置配额
实验步骤(XFS):
一、对用户设置配额
例:设置tom 用户最大容量是80M 最大文件个数8
xfs_quota -x -c ‘limit -u bsoft=50M bhard=80M isoft=6 ihard=8 tom’ /opt/lv03
二、对单一目录设置配额
1、修改lv03,在/etc/fstab设置挂载参数
2、卸载lv03重新挂载
3、创建测试目录
4、设置配额

二、ext4相关代码 quotacheck -cugv /dev/sdb1创建配置文件-c创建磁盘配额的配置文件-v显示扫描过程-u针对扫描用户的情况建立aquota.user-g针对扫描组的情况建立aquota.group quotaon /opt开启磁盘配额,开启之前可以先查看是否已经开启了quotaon -p /optquotaon 选项 分区名主要针对分区-a启动所有分区的磁盘配额-u启动用户的磁盘配额-g启动组的磁盘配额-v显示启动过程信息-p查看是否开启了磁盘配额 quotaoff 选项 分区名-a关闭所有分区的磁盘配额-u关闭用户的磁盘配额-g关闭组的磁盘配额 edquotaedquota -u wuhao限制用户

设置wuhao用户(已经创建好的普通用户)在opt 目录下创建文件的最大容量是10240K 最大文件个数6

参数说明
inode:可以创建文件或者目录的数量
block:可以存储的容量大小
soft(软限制):最低限制容量,可以被超过,但会有警告信息,超过的部分会保存到宽限时期到期。一般是硬限制的80%,单位为KB
hard(硬限制):绝对不能被超过限制。达到hard时,系统会禁止继续增加新的文件
宽限时间(一般为7天)单位为KB
当用户使用的空间超过了软限制但还没达到硬限制,在这个宽限的时间到期前必须将超过的数据降低到软限制以下(默认是7天),当宽限时间到期,系统将自动清除超过的数据。
0表示不限制

edquota 选项 用户名或组名限制用户或组名-u用户名-g组名-t设定宽限时间-p复制磁盘配额规则,不需要每一个用户或者组都手动设置一遍

dd复制if=/dev/zero从zero中拿取容量of=文件路径将的容量写入设置配额磁盘下的文件中bs=N每次写多少容量,默认单位为字节,可带单位K,Mcount=N一共写入几次 quota 选项 用户或组名查询用户或组的配额-u用户名-g组名-v显示详细信息-s以常见单位显示大小 repquota 选项 分区名查询文件系统配额-a查询所有分区的磁盘配额-u查询用户配额-g查询组配额-v显示详情-s以常见单位显示