关于linux的磁盘配额

2023-07-28 16:05:33 5017

关于linux的磁盘配额

磁盘配额(Quota)是用来限制普通用户或用户组在指定的分区或目录中占用磁盘的容量大小或者文件个数的限制。

前提条件

内核必须支持磁盘配额

grep CONFIG_QUOTA /boot/config-3.10.0-1127.el7.x86_64

centos7.x都是默认支持的,所以一般问题都不大,如果内核不支持磁盘配额的话,就需要重新编译内核,加入quotasupper功能

关闭SELinux

若启用SELinux,并非所有目录都可以设置quota:

   

    所以默认情况下,quota似乎只能针对/home设定而已,因此,在开启SELinux的情况下(如下所示,getenforce命令可以显示SELinux

的状态,Enforcing为开启.)如果想要针对不同目录来设定,请使用SELinux而不是Quota

要支持磁盘配额的分区必须开启磁盘配额功能

磁盘配额中的一些常见概念:

用户配额和用户组配额

看名字就知道一个是针对用户,一个是针对用户组的。需要注意的是,针对用户组的时候并不是将一块空间平均分给改组下的成员,而是先到先得。比方说:u1、u2、u3都属于bbs组,给bbs分配了100M的空间,假如u1下载了太多的种子文件,u2和u3就没有空间给他们使用了。

目录配额

目录配额指的是限制目录在分区中所占用的磁盘空间大小的限制,任何用户,包括超级用户,在此目录下写入的数据都计算在磁盘配额限制内

EXT格式只能对文件系统进行限制,xfs可用对project进行限制

文件个数限制

不仅可以通过限制用户可用的block数量来控制用户的磁盘容量外,还可以通过限制用户的inode数量来限制用户可以上传或新建的文件个数

软限制和硬限制

软限制可以理解为警告限制,硬限制就是真正的限制了。比如,规定软限制为80M,硬限制100M。那么,当用户使用的磁盘空间大小为80~100M时,还可以继续上传和新建文件,但每次登陆时都会收到一条警告消息,告诉用户磁盘将满。

宽限时间

如果用户的磁盘占用量处于软限制和硬限制之间,那么系统会在用户登陆时警告用户磁盘将满。但是这个警告不会一直存在,而是有时间限制的,这个时间就是宽限时间,默认是7天。如果达到这个宽限时间,软限制就会升级成硬限制,直接就把你的空间限制在指定的软限制范围内。

实验:配置用户xiaolv在/dev/sdb1的配额为100M,文件数目最大为3并测试

环境:centos7.9.2009 内核:3.10.0-1160.el7.x86_64

# 1.安装quota
yum
-y install quota

# 2.开启分区的磁盘配额功能
vi /etc/fstab
# 挂载时加入选项
/dev/sdb1 /test ext4 defaults,usrquota,grpquota
0 0

# 由于ext4文件系统,quota功能默认是不开启的,需要创建磁盘配额的配置文件(aquota.user 和 aquota.group),才可以去启动quota功能,使用 quotacheck 命令的 -c 选项
# -v:显示扫描过程
# -u:针对扫描用户的情况建立aquota.user
# -g:针对扫描组的情况建立aquota.group

# 3.ext4文件系统开启quota功能
quotacheck
-cvug /test
# 执行后生成aquota.user 和 aquota.group两个文件

# 4.ext4文件系统开启配额
# 查看配额开启情况
quotaon
-p /test
# 开启配额
quotaon /test

# 5.设置xiaolv用户在/test目录下创建文件的最大容量为100M 文件数量最大为3
edquota
-u xiaolv
Disk quotas
for user xiaolv (uid 1003):
Filesystem                   blocks       soft       hard     inodes     soft     hard
/dev/sdb1                    
102400     102400     102400          1        0        0
 
# 查看配额设置
quota
-uvs xiaolv

# 6.测试
dd
if=/dev/zero of=/test/xiaolv bs=1024K count=100
# 可以
dd
if=/dev/zero of=/test/xiaolv bs=1024K count=150
# 超过100M的部分不行

# 建第四个文件时报错

quotaon 选项 分区名

  • -a 启动所有分区的磁盘配额

  • -u 启动用户的磁盘配额

  • -g 启动组的磁盘配额

  • -v 显示启动过程信息

  • -p 查看是否开启了磁盘配额

quotaoff 选项 分区名

  • -a 关闭所有分区的磁盘配额

  • -u 关闭用户的磁盘配额

  • -g 关闭组的磁盘配额

edquota 选项 用户名或组名

  • -u 用户名

  • -g 组名

  • -t 设定宽限时间

  • -p 复制磁盘配额规则,不需要每一个用户或者组都手动设置一遍

选项说明

filesystem blocks soft   hard inodes soft hard

挂载点       已使用空间 软限制         硬限制   已有文件个数 软限制   硬限制

quota 选项 用户或组名

  • -u 用户名

  • -g 组名

  • -v 显示详细信息

  • -s 以常见单位显示大小

查询文件系统配额 repquota 选项 分区名

  • -a 查询所有分区的磁盘配额

  • -u 查询用户配额

  • -g 查询组配额

  • -v 显示详情

  • -s 以常见单位显示

 


提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: