Linux quota磁盘配额限额操作

目录

1. quota简介
2. ext4文件系统的磁盘配额设置
3. xfs文件系统的磁盘配额设置

一.quota简介

什么是quota?有什么作用?

在 Linux 系统中,由于是多用户多任务的环境,所以会有多人共同使用一个硬盘空间的情况发生, 如果其中有少数几个使用者大量的占掉了硬盘空间的话,那势必压缩其他使用者的使用权力! 因此管理员应该适当的限制硬盘的容量给使用者,以妥善的分配系统资源!
举例来说,我们使用者的默认主文件夹都是在 /home 下面,如果 /home 是个独立的 partition, 假设这个分区有 10G 好了,而 /home 下面共有 30 个帐号,也就是说,每个使用者平均应该会有 333MB 的空间才对。 偏偏有个使用者在他的主文件夹下面塞了好多只影片,占掉了8GB 的空间,想想看,是否造成其他正常使用者的不便呢? 如果想要让磁盘的容量公平的分配,这个时候就得要靠 quota 的帮忙!
总结下来就是:
磁盘配额是用来限制用户和用户组的磁盘使用额度,可以理解为限制该用户、用户组在该分区下使用的文件大小、文件数量。而这个操作就需要quota来实现。

quota 比较常使用的几个情况:

针对 WWW server ,例如:每个人的网页空间的容量限制!
针对 mail server,例如:每个人的邮件空间限制。
针对 file server,例如:每个人最大的可用网络硬盘空间 (教学环境中最常见!)

如果是针对 Linux 系统主机上面的设置那么使用的方向有

  • 限制某一群组所能使用的最大磁盘配额 (使用群组限制): 你可以将你的主机上的使用
    者分门别类,有点像是目前很流行的付费与免付费会员制的情况, 你比较喜好的那一群
    的使用配额就可以给高一些!呵呵! _
  • 限制某一使用者的最大磁盘配额 (使用使用者限制): 在限制了群组之后,你也可以再
    继续针对个人来进行限制,使得同一群组之下还可以有更公平的分配!
  • 限制某一目录 (directory, project) 的最大磁盘配额: 在旧版的 CentOS 当中,使用的
    默认文件系统为 EXT 家族,这种文件系统的磁盘配额主要是针对整个文件系统来处理,
    所以大多针对“挂载点”进行设计。 新的 xfs 可以使用 project 这种模式,就能够针对个别的目录(非文件系统喔) 来设计磁盘配额!

限制的类型

限制 inode 用量:可以管理使用者可以创建的“文件数量”;
 限制 block 用量:管理使用者磁盘容量的限制,较常见为这种方式。

柔性劝导与硬性规定 (soft/hard):
不管是 inode/block ,限制值都有两个,分别是 soft 与hard。 通常 hard 限制值要比 soft 还要高。举例来说,若限制项目为 block ,可以限制 hard为 500MBytes 而 soft 为 400MBytes。这两个限值的意义为:
 hard:表示使用者的用量绝对不会超过这个限制值,以上面的设置为例, 使用者所能使用的磁盘容量绝对不会超过 500MBytes ,若超过这个值则系统会锁住该用户的磁盘使用权;
 soft:表示使用者在低于 soft 限值时 (此例中为 400MBytes),可以正常使用磁盘,但若超过 soft 且低于 hard 的限值 (介于 400~500MBytes 之间时),每次使用者登陆系统时,系统会主动发出磁盘即将爆满的警告讯息, 且会给予一个宽限时间 (grace time)。不过,若使用者在宽限时间倒数期间就将容量再次降低于 soft 限值之下, 则宽限时间会停止。
 会倒数计时的宽限时间 (grace time):
刚刚上面就谈到宽限时间了!这个宽限时间只有在使用者的磁盘用量介于 soft 到 hard 之间时,才会出现且会倒数的一个咚咚! 由于达到 hard 限值时,使用者的磁盘使用权可能会被锁住。为了担心使用者没有注意到这个磁盘配额的问题, 因此设计了 soft 。当你的磁盘用量即将到达 hard 且超过 soft 时,系统会给予警告,但也会给一段时间让使用者自行管理磁盘。
以上面设置的例子来说,假设你的容量高达 450MBytes 了,那七天的宽限时间就会开始倒
数, 若七天内你都不进行任何删除文件的动作来替你的磁盘用量瘦身, 那么七天后你的磁盘最大用量将变成 400MBytes (那个 soft 的限制值),此时你的磁盘使用权就会被锁住而无法新增文件了。如下图:
在这里插入图片描述

EXT文件系统与XFS文件系统的限制区别

在这里插入图片描述
注意:ETX文件系统只有ETX4支持配额限额操作

话不多说,正片开始==============================

二.ext4的磁盘配额设置

测试环境:CentOS7/8
测试目录:/home/utest
测试用户:user03

配置步骤:
1、 关闭selinux

systemctl stop sellinux
systemctl disable sellinux
sestatus -v    //查看selinux状态

在这里插入图片描述

注意:设置完成后需要重启生效

2、 创建一个磁盘分区
以/dev/sdc为例,创建/dev/sdc1分区(如果将现有的磁盘分区进行配额限额操作,跳过此步骤,直接执行4)

[root@localhost ~]# fdisk /dev/sdc

在这里插入图片描述
在这里插入图片描述

3、 格式化磁盘分区(如果将现有的磁盘分区进行配额限额操作,跳过此步骤,直接执行4)

[root@localhost ~]# mkfs.ext4 /dev/sdc1

在这里插入图片描述

4、 修改/etc/fstab文件,对所选文件系统进行激活配额选项

[root@localhost ~]# vim /etc/fstab

进入编辑器后在末尾添加如下所示代码○1,或者在已有的文件系统(如/home)defaults,后面添加usrquota,grpquota.○2
在这里插入图片描述

5、 刷新挂载信息

[root@localhost ~]# mount -av

在这里插入图片描述

6、 查看挂载信息

[root@localhost ~]# mount | grep “目录“

在这里插入图片描述

7、 开启quota功能

由于ext4文件系统,quota功能默认是不开启的,需要创建磁盘配额的配置文件(aquota.user 和 aquota.group),才可以去启动quota功能,使用 quotacheck 命令

-v:显示扫描过程
-u:针对扫描用户的情况建立aquota.user
-g:针对扫描组的情况建立aquota.group
[root@localhost ~]# quotacheck -ug ##u表示创建用户配额 ,g表示创建用户组额

在这里插入图片描述

8、 创建新用户
在这里插入图片描述

9、 给用户配置磁盘配额限额

[root@localhost ~]# edquota -u user03

在这里插入图片描述

10、让用户配额和主配额生效 quotaon 选项分区名

[root@localhost ~]# quotaon  -ug  /home/utest

11、进入测试

[root@localhost ~]# su – user03

在这里插入图片描述

[user03@localhost ~] $ dd if=/dev/zero of=123.img bs=1M count=200

dd命令简介:

•	dd:复制
•	if=/dev/zero:从zero中拿取容量,即将指定文件中写入“0”
•	of=文件路径:将的容量写入设置配额磁盘下的文件中
•	bs=N:每次写多少容量,默认单位为字节,可带单位K,M
•	count=N:一共写入几次

在这里插入图片描述
在这里插入图片描述

12、再次回到root用户模式,edquota -u user 查看目前用量

[root@localhost ~]# edquota -u user

在这里插入图片描述在这里插入图片描述

----配置结束

三.xfs的磁盘配额设置

测试环境:Suse 15 SP3/CentOS7/8虚拟机
测试目录:/home

测试用户:user04

1、 创建用户

[root@localhost ~]# useradd -d /home/user04 -m user04

在这里插入图片描述

2、 确定目标目录(本次/home)文件系统格式(这里对已有的文件系统进行操作,不需要在创建磁盘分区和格式化了,如有需要请参考ETX4磁盘配额限额章节相关操作)
在这里插入图片描述

3、 进入挂载目录,设置自动挂载

[root@localhost ~]# vim /etc/fstab

在这里插入图片描述

4、 刷新挂载

[root@localhost ~]# mount -a

在这里插入图片描述

可以看到/home目录已经支持quota功能

5、 列出目前系统的各的文件系统,以及文件系统的 quota 挂载参数支持

[root@localhost ~]# xfs_quota -x -c "指令" [挂载点]
选项与参数:
-x :专家模式,后续才能够加入 -c 的指令参数喔!
-c :后面加的就是指令,这个小节我们先来谈谈数据回报的指令
指令:
print :单纯的列出目前主机内的文件系统参数等数据
df :与原本的 df 一样的功能,可以加上 -b (block) -i (inode) -h (加上单位) 等
report:列出目前的 quota 项目,有 -ugr (user/group/project) 及 -bi 等数据
state :说明目前支持 quota 的文件系统的信息,有没有起动相关项目等

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

**说明:**
User quota state on /home (/dev/mapper/centos-home)
Accounting: ON # 有启用计算功能
Enforcement: ON # 有实际 quota 管制的功能
Inode: #1568 (4 blocks, 4 extents) # 上面四行说明的是有启动 user 的限制能力
Group quota state on /home (/dev/mapper/centos-home)
Accounting: ON
Enforcement: ON
Inode: #1569 (5 blocks, 5 extents) # 上面四行说明的是有启动 group 的限制能力
Project quota state on /home (/dev/mapper/centos-home)
Accounting: OFF
Enforcement: OFF
Inode: #1569 (5 blocks, 5 extents) # 上面四行说明的是 project 并未支持
Blocks grace time: [7 days 00:00:30] # 下面则是 grace time 的项目
Inodes grace time: [7 days 00:00:30]
Realtime Blocks grace time: [7 days 00:00:30]

6、 设置配额限额

[root@localhost ~]#  xfs_quota -x -c "limit [-ug] b[soft|hard]=N i[soft|hard]=N name"
[root@localhost ~]#  xfs_quota -x -c "timer [-ug] [-bir] Ndays"

在这里插入图片描述

选项与参数:
limit :实际限制的项目,可以针对 user/group 来限制,限制的项目有
bsoft/bhard : block 的 soft/hard 限制值,可以加单位
isoft/ihard : inode 的 soft/hard 限制值
name : 就是用户/群组的名称啊!
timer :用来设置 grace time 的项目喔,也是可以针对 user/group 以及 block/inode 设置

7、 设置grace time

[root@localhost ~]# xfs_quota -x -c "timer -ug -b 14days" /home
[root@localhost ~]# xfs_quota -x -c "state" /home

在这里插入图片描述

8、 进入测试

[root@localhost ~]# su – user04
[user04@localhost ~]#dd if=/dev/zero of=123.img bs=1M count=200

在这里插入图片描述
在这里插入图片描述

超出最大限额报错
9、 返回root查看容量使用情况

[root@localhost ~]# xfs_quota -x -c "report -ubh" /home

在这里插入图片描述

----配置结束

重新增加了截图,更加直观清晰,博主自己的总结希望对您有所帮助~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

保持成长

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值