linux针对用户、组的磁盘配额

用户、组磁盘配额概念:
一个分区有两个空间池,赣州娱乐城附近外卖电话:文件内容大小block空间池和元文件索引信息indoe空间池,配额即规定每个用户可以从blcok空间池拿多大的空间,从indoe空间池拿多少元文件空间。磁盘读写一个文件首先去indoe空间里面去找这个文件的索引信息源信息,找到了在去blcok空间读写数据。
元文件可以理解为blcok空间里文件的索引,占用indoe空间,每个元文件信息包含一个重要信息i节点号,为元文件编序,给用户indoe空间的配额可以理解为i节点的配额也就是文件个数的配额。
给用户配额限定的用户能使用磁盘空间的大小和建立文件个数的多少,给组配额限定的是组成员一共能使用磁盘空间的大小,建立文件数的多少,磁盘配额的目的对磁盘进行科学化的管理也可以防止某个用户把磁盘空间撑满。
一、开启分区的配额
1)/etc/fstab配置文件里面开启分区配额选项,centos6时代的ext4文件系统分区开启用户、组配额分别是usrquota,grpquota。centos7以上时代的xfs分区格式用户和组配额是uquota,gquota。

2)mount //检查分区是否开启了quota配额选项


3)对于ext文件系统的分区设备,默认配额功能是关闭的,需要对分区创建配额文件开启配额功能
quotacheck -cvug /dev/mapper/music-lv0 //对lv0这个分区创建用户和组的配额文件,-c //create创造 -v //显示过程 -ug // 对用户和组生效
quotaon -p //检查分区的磁盘配额功能是否开启
quotaon // 开启分区的磁盘配额功能


而对于xfs格式的分区,默认磁盘配额功能是开启的,也不需要建开启配额的文件,注意到有个project配额关闭,这是程序配额,暂且不管。

二、编辑用户、组在分区里的配额
1) edquota -u //对用户进行配额
edquota -g //对组进行配额(注意-g后面跟的组这里是用户的基本组,文件权限里面的组权限是给基本组的权限),给组配额有一个缺点就是组里面每一个人都有可能把空间写满,硬手段就是给用户一个个配置不用组,怕麻烦就给组配

这是jack用户的配额文件,共有七列

软限制:空间,文件数都可以超过软限制,但是超过软限制后,默认给用户使用期限是七天,比如jack软限制空间是10M,他写了11M文件在里面,从他超过软限制那天算起,七天内他可以把空间占用到20M以内的任意空间,但是七天后,他就无法在写文件了,因为超过了软限制的七天规则,除非删除文件到10M以内,以后在超过10M在从七天后在算起重新限制。同理软文件数限制也是一样,七天后无法创建新文件,除非删掉原来的文件,超过软限制系统会有提示,用户这个时候就要整理自己文件了,软限制的作用就是为用户写文件提供了一个缓冲区
硬限制:不允许超过的空间,文件数
现网中:在现实工程中,磁盘配额遵循28原则,软限制一般是对应硬限制的80%。文件数目indoes大概文件大小blocks的100倍,i节点号是很多的,所以现网中分给用户的indoes是很多的。
磁盘分给普通用户的空间是80%,至少留20%的空间给管理员放文件,最低不能低于15%,15%是一条红线。
几个需要理解的点
1、空间和文件数的配额必须同时满足
2、文件数没用完,空间用完,可以编辑文件的内容增加空间,这是符合正常逻辑的
3、空间用完,不能在建文件,这也是符合逻辑的,空间用完了,还建什么文件,你是要干嘛,i节点耗尽吗,在centos7以上版本这个漏洞已更新,可能低版本的centos还能用
4、用户和组的配额冲突遵循最小原则
1、2结论验证

3结论验证

4结论验证
这是jack用户的配额情况

jack在/lv0目录下写个11M文件,发现只能写10M,用户和组冲突遵循最小原则

jack用户配额不变

把jack用户所在的组shichang配额降低


当用户和组配额冲突时候会遵循最小化原则,同理文件数冲突也一样,这个就不一一验证了。