磁盘配额(Quota)是用来限制普通用户或用户组在指定的分区或目录中占用磁盘的容量大小或者文件个数的限制。
要想正常使用磁盘配额之前,有几个前提条件要满足:
1、内核必须支持磁盘配额。
可以看到,内核已经支持磁盘配额功能,现在的版本都是默认支持的,所以一般问题都不大,如果内核不支持磁盘配额的话,就需要重新编译内核,加入quotasupper功能。
2、关闭SELinux,或者手工修改SELinux规则,否则磁盘配额功能是无法正常使用的。
3、要支持磁盘配额的分区必须开启磁盘配额功能。这项功能是需要手工开启,不再是默认开启的。
磁盘配额中的一些常见概念:
1、用户配额和用户组配额:
看名字就知道一个是针对用户,一个是针对用户组的。需要注意的是,针对用户组的时候并不是将一块空间平均分给改组下的成员,而是先到先得。比方说:u1、u2、u3都属于bbs组,给bbs分配了100M的空间,假如u1下载了太多的种子文件,u2和u3就没有空间给他们使用了。
2、目录配额:
目录配额指的是限制目录在分区中所占用的磁盘空间大小的限制,任何用户,包括超级用户,在此目录下写入的数据都计算在磁盘配额限制内。
3、磁盘容量限制和文件个数限制:
不仅可以通过限制用户可用的block数量来控制用户的磁盘容量外,还可以通过限制用户的inode数量来限制用户可以上传或新建的文件个数。
4、软限制和硬限制:
软限制可以理解为警告限制,硬限制就是真正的限制了。比如,规定软限制为80M,硬限制100M。那么,当用户使用的磁盘空间大小为80~100M时,还可以继续上传和新建文件,但每次登陆时都会收到一条警告消息,告诉用户磁盘将满。
5、宽限时间:
如果用户的磁盘占用量处于软限制和硬限制之间,那么系统会在用户登陆时警告用户磁盘将满。但是这个警告不会一直存在,而是有时间限制的,这个时间就是宽限时间,默认是7天。如果达到这个宽限时间,软限制就会升级成硬限制,直接就把你的空间限制在了80M。
实现过程:
建立一个5GB的/dev/sdb1分区,挂载到/disk目录当中
开启分区的磁盘配额功能:
在centos7.x中,磁盘配额功能是在挂载的时候就生效的,不能再通过remount选项来临时开启磁盘配额功能。只能通过先修改/etc/fstab文件开启磁盘配额功能,在卸载分区,再重新挂载分区的方法来开启磁盘配额功能。
解释下/etc/mtab和/etc/fstab这两个文件的区别:【mstab】文件中记录的是操作系统已经挂载的文件系统(分区),包括操作系统建立的虚拟文件系统;而在【fstab】文件中记录的是操作系统准备挂载的文件系统,也就是在下次启动后系统会挂载的文件系统。
设置磁盘配额:
xfs_quota命令还是挺复杂的,,,,
搭配了limit命令和下面的选项成功实现了用户和用户组配额的功能。
查看磁盘配额:
如果要查看用户组的话只需把【-u】替换成【-g】选项即可。
设置宽限时间:
宽限时间默认是七天,一般是不需要修改的。
关闭或删除配额:
如果只是需要暂时关闭,可以直接使用disable命令来关闭,也可使用enable命令来重新开启。
如果想要彻底删除磁盘配额功能,就需要先使用【off】命令来彻底关闭,再使用remove命令删除配额限制。
目录配额:
首先需要开启分区的目录配额项。
给目录设置项目名称和项目ID:
如果需要做目录配额,就需要给目录起一个项目名称和项目ID,而且需要写入/etc/projects和/etc/projid这两个文件中,这两个文件默认是不存在的,需要自行建立。
而且既然是限制目录,就不能直接限制/disk目录了(/disk是一个独立的分区)。
初始化项目名称:
设置目录配额:
本次的内容到这里就结束了,bye
文章转自:https://zhuanlan.zhihu.com/p/349385811
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!