Linux下XFS文件系统使用 Quota 进行合理划分实例

时间: 2023-08-22 admin IT培训

Linux下XFS文件系统使用 Quota 进行合理划分实例

Linux下XFS文件系统使用 Quota 进行合理划分实例

什么是quota?

quota 中文名是:定额、额度 的意思。
在Linux下通常使用 quota 来实现合理的磁盘划分。

比如作为mail服务器,每个用户的邮件可以占据我这个服务器有多少空间我可以划分。

quota定额标准

  • 限制组群和用户
  • 限制共享目录的大小
    • 限制绝对大小hard
    • 限制预警大小soft
    • 限制弹性时间(超过弹性时间,预警大小会变成绝对大小)
  • 限制组群的大小

实例(来自鸟叔的Linux私房菜)

.php

  • 目的与帐号:现在我想要让我的专题生五个为一组,这五个人的帐号分别是 myquota1, myquota2, myquota3, myquota4, myquota5,这五个用户的密码都是 password ,且这五个用户所属的初始群组都是 myquotagrp 。 其他的账号属性则使用默认值。
  • 帐号的磁盘容量限制值:我想让这五个用户都能够取得 300MBytes 的磁盘使用量(hard),档案数量则不予限制。 此外,只要容量使用率超过 250MBytes ,就予以警告 (soft)。
  • 群组的限额 (option 1):由于我的系统里面还有其他用户存在,因此我仅承认 myquotagrp 这个群组最多仅能使用 1GBytes 的容量。 这也就是说,如果 myquota1, myquota2, myquota3 都用了 280MBytes 的容量了,那么其他两人最多只能使用 (1000MB - 280x3 = 160MB) 的磁盘容量啰! 这就是用户与群组同时设定时会产生的后果。
  • 共享目录限额 (option 2):另一种设定方式,每个用户还是具有自己独立的容量限止,但是这五个人的专题共享目录在 /home/myquota 这里,该目录请设定为其他人没有任何权限的共享目录空间,仅有 myquotagrp 群组拥有全部的权限。 且无论如何,该目录最多仅能够接受 500MBytes 的容量。 请注意,组 ( group) 的限制和目录 ( directory/project) 无法同时并保存 ! 所以底下的流程中,我们会先以群组来设计,然后再以目录限制来进一步说明!
  • 宽限时间的限制:最后,我希望每个用户在超过 soft 限制值之后,都还能够有 14 天的宽限时间

第一步,创建组群、账户、共享目录

groupadd myquotagrp #创建组群myquotagrp
之后再循环创建密码为password的账户五个、并把他们的组群都设置成myquotagrp。

创建共享目录 myquota
改变目录组群和权限为2770

运行

查看一下共享目录

检查档案系统是否支持

df -hT 以高刻度性查看文件系统类型并打印

🆗,xfs。

修改fastb文件

打开 vim /etc/fstab,修改home文件如图所示

针对 quota 限制的项目主要有三项,如下所示:

  • uquota/usrquota/quota:针对用户账号的设定
  • gquota/grpquota:针对群组的设定
  • pquota/prjquota:针对单一目录的设定,但是不可与 grpquota 同时存在!

测试一下(建议直接重启):

观察一下报告资料

xfs_quota -x -c “指令”
-x :专家模式:只有加了-x后面才能加c
-c:后面加的就是指令,这个小节我们先来谈谈数据回报的指令
指令:
print:单纯的列出目前主机内的档案系统参数等数据
df:与原本的df一样的功能,可以加上-b(block)-i(inode)-h(加上单位)等
report:列出目前的quota项目,有-ugr(user/group/project)及-bi等数据
state:说明目前支持quota的档案系统的信息,有没有起动相关项目等

观察所有xfs的档案参数

查看是否启用了quota系统

限制值设定方式

我们需要每个用户 250M(soft)/300M(hard) 的容量限制,群组共 950M/1G 的容量限制,同时 grace time 设定为 14 天

先设定容量 使用命令:

 xfs_quota -x -c "limit -u bsoft=250M bhard=300M  xxxxx" /home


使用

xfs_quota -x -c "report -ubih" /home

查看home分区的所有用户的quota限制值

设定预警时间并查看

xfs_quota -x -c "timer -ug -b 14days" /home
xfs_quota -x -c "state" /home