文件系统之磁盘配额

Posted hjnzs

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文件系统之磁盘配额相关的知识,希望对你有一定的参考价值。

一、磁盘配额

1、磁盘配额概念

配置用户对磁盘进行指定大小或者文件数量的使用权限。
1)用户配额和组配额
2)磁盘容量限制和文件个数限制
3)软限制和硬限制
4)宽限时间 如果用户的空间占用数处于软限制和硬限制之间,统会在用户登陆时警告用户磁盘将满,这个时间就是宽限时间,默认是 7 天。如果达到了宽限时间,用户的磁盘占用量还超过软限制,那么软限制就会升级为硬限制。

2、磁盘配额条件

1)查看系统内核必须支持磁盘配额

[root@centos ~]# grep CONFIG_QUOTA /boot/config-2.6.32-642.el6.x86_64 
CONFIG_QUOTA=y
CONFIG_QUOTA_NETLINK_INTERFACE=y
# CONFIG_QUOTA_DEBUG is not set
CONFIG_QUOTA_TREE=y
CONFIG_QUOTACTL=y

2)系统中必须安装了 quota 工具

[root@centos ~]# rpm -qa | grep quota
quota-3.17-23.el6.x86_64
3、磁盘配额实验

1)创建测试用户和测试组

[root@centos ~]# useradd love1
[root@centos ~]# passwd love1
[root@centos ~]# useradd love2
[root@centos ~]# passwd love2
[root@centos ~]# groupadd test
[root@centos ~]# gpasswd -a love1 test
Adding user love1 to group test
[root@centos ~]# gpasswd -a love2 test
Adding user love2 to group test

2) 开启磁盘配额

[root@centos ~]# mount -o remount,usrquota,grpquota / # 重新挂载 /,并加入用户和用户组的磁盘配额功能.
#如果我们要想永久生效,则需要修改/etc/fstab 文件,
[root@centos ~]# vim /etc/fstab 
/dev/mapper/vg_centos-lv_root  /     ext4    defaults,usrquota,grpquota        1 1

3)建立磁盘配额的配置文件

quotacheck [选项] [分区名]
选项:  
-a:扫描/etc/mtab 文件中所有启用磁盘配额功能的分区。如果加入此参数,命令后面就不需要加入分区名了  
-c:不管原有的配置文件,重新扫描并建立新的配置文件  
-u:建立用户配额的配置文件,也就是生成 aquota.user 文件  
-g:建立组配额的配置文件,会生成 aquota.group 文件  
-v:显示扫描过程  
-m:强制以读写的方式扫描文件系统,和-M 类似。一般扫描根分区时使用。  
-f:强制扫描文件系统,并写入新的配置文件。一般扫描新添加的硬盘分区时使用

quotacheck -avugm 
#如果我们自动扫描/分区建立配额配置文件时,因为/分区已经挂载成读写系统,而 quotacheck 需要把分区先挂载成只读分区,然后建立配置文件,
最后再挂载回来,所以不能直接在/分区建立配 置文件。这时就需要使用-m 强制以读写方式扫描文件系统了。

4) 建立配额文件

[root@centos ~]# ll /
total 122
-rw-------    1 root root  8192 Dec  5 19:49 aquota.group
-rw-------    1 root root  7168 Dec  5 19:49 aquota.user

5)、设置用户和组的配额限制

[root@centos ~]# edquota [选项] [用户名或组名] 
选项:  
-u 用户名: 设定用户配额  
-g 组名: 设定组配额  
-t:  设定宽限时间  
-p:  复制配额限制。如果已经设定好某个用户的配额限制,其他用户的配额限制如果和这个用户相同,那么可以直接复制配额限制,而不用都手工指定。

#我们给 love1 用户设定的配额限制是:磁盘空间软限制是 20MB,硬限制是 30MB;文件个数的软限制是 8 个,硬限制是 10 个

[root@centos ~]# edquota -u love1
Disk quotas for user love1 (uid 500):
Filesystem                           blocks       soft             hard        inodes     soft     hard
/dev/mapper/vg_centos-lv_root         16          20000          30000          5        8        10

再给 love2 用户配置限额,love2 用户要求是空间软限制 250MB,硬限制 250MB,文件个数不做限制
[root@centos ~]# edquota -u love2
Disk quotas for user love2 (uid 501):
  Filesystem                   blocks       soft       hard     inodes     soft     hard
  /dev/mapper/vg_centos-lv_root         16          250000          300000          5        0        0

接下来给 test 组配置限额,test 组要求是空间软限制是 450MB,硬限制 500MB,文件个数不做限制
Disk quotas for group test (gid 502):
  Filesystem                   blocks       soft       hard     inodes     soft     hard
  /dev/mapper/vg_centos-lv_root          0          450000          500000          0        0        0

6)、启动和关闭配额

启动配额
[root@centos ~]# quotaon [选项] [分区名] 
选项:  
-a:依据/etc/mtab 文件启动所有的配额分区。如果不加-a,后面就一定要指定分区名  
-u:启动用户配额  
-g:启动组配额  
-v:显示启动过程的信息 

[root@centos ~]# quotaon -ugv /
/dev/mapper/vg_centos-lv_root [/]: group quotas turned on
/dev/mapper/vg_centos-lv_root [/]: user quotas turned on

[root@localhost ~]# quotaoff [选项] [分区名] 
选项  
-a:依据/etc/mtab 文件关闭所有的配额分区。如果不加-a,后面就一定要指定分区名  
-u:关闭用户配额  
-g:关闭组配额 
-v:显示启动过程的信息 

关闭配额
[root@centos ~]# quotaoff -ugv /
/dev/mapper/vg_centos-lv_root [/]: group quotas turned off
/dev/mapper/vg_centos-lv_root [/]: user quotas turned off

7)磁盘配额查询

[root@centos ~]# repquota [选项] [分区名] 
选项:  
-a: 依据/etc/mtab 文件查询配额。如果不加-a 选项,就一定要加分区名  
-u: 查询用户配额  
-g: 查询组配额  
-v: 显示详细信息  
-s: 以习惯单位显示容量大小 

repquota –augvs

8)测试

[love1@centos ~]$ dd if=/dev/zero of=/home/love1/test/test bs=1M count=60
dm-0: warning, user block quota exceeded.
dm-0: write failed, user block limit reached.
dd: writing `/home/love1/test/test': Disk quota exceeded
30+0 records in
29+0 records out
30699520 bytes (31 MB) copied, 0.633288 s, 48.5 MB/s

9)交互式命令设置

[root@centos  ~]# setquota -u 用户名 容量软限制 容量硬限制 个数软限制  个数硬限制 分区名 
[root@centos  ~]# useradd love3
[root@localhost ~]# passwd love3 # 建立用户 
[root@localhost ~]# setquota -u love3 10000 20000 5 8 / 
# 设定用户在 / 分区的容量软限制为 10MB ,硬限制 20MB 。文件个数软限制 5 个,硬限制 #8 个 。 

以上是关于文件系统之磁盘配额的主要内容,如果未能解决你的问题,请参考以下文章

高级文件系统管理之mdadm与lvm的创建

linux之磁盘管理,查看识别设备,磁盘的挂载卸载分区配额管理,文件系统

LVM与磁盘配额

磁盘管理之磁盘配额

linux-磁盘管理与文件系统-磁盘配额

磁盘配额