12、磁盘配额quota

磁盘配额

配额:quota

什么是磁盘配额?   

    限制磁盘资源的使用的。


限制原因就是因为资源不是无限的。

应用场合:

    1、网络存储空间有限 

    2、邮件服务器

    3、公司的文件共享服务器


能限制谁?

    1、限制普通用户

    2、限制用户组

      注意:没有办法限制root的。


能够限制什么?

    inode —— 限制用户创建文件的个数

    block —— 限制用户能够使用的磁盘空间的大小


设置配额的条件?

    需要内核支持quota的功能

    [loring ~]# grep -i quota /boot/config-2.6.32-358.el6.x86_64

        CONFIG_NETFILTER_XT_MATCH_QUOTA=m

        CONFIG_XFS_QUOTA=y

        CONFIG_QUOTA=y    //看到此行表示支持

        CONFIG_QUOTA_NETLINK_INTERFACE=y

        CONFIG_PRINT_QUOTA_WARNING=y

        # CONFIG_QUOTA_DEBUG is not set

        CONFIG_QUOTA_TREE=y

        CONFIG_QUOTACTL=y


如何进行磁盘配额?usrquota,grpquota

    1、首先需要分区开启用户配额和组配额

        创建一个分区并将其格式化

          [loring ~]#  fdisk /dev/sda

          [loring ~]#  partx -a /dev/sda

          [loring ~]#  mkfs.ext4 /dev/sda10     

        将其挂载到系统中的/quota目录

          [loring ~]# mkdir /quota

          [loring ~]# mount -o usrquota,grpquota /dev/sda10 /quota/

        将分区设置为开机自动挂载(可选)

          [loring ~]# vim /etc/fstab

            /dev/sda10      /quota  ext4    defaults,usrquota,grpquota 0 0

  2、创建配额记录文件

        [loring ~]# quotacheck -cugv /quota/

        [loring ~]# ls /quota/          //有如下文件即可

            aquota.group  aquota.user

            -c:--create 创建磁盘配额的配置文件

            -u:--user 针对用户配额的配置文件

            -g:--group 针对组配额的配置文件

            -v:--verbose 详细显示扫描过程中的信息

            -a:--all 检测系统中所有已经挂载的支持quota功能的分区

  3、针对用户和组进行配额

        [loring ~]# useradd quota1

        [loring ~]# useradd quota2

        [loring ~]# useradd -g quota2 quota3   

        [loring ~]# chmod 1777 /quota/      //保证普通用户对/quota目录可写

        例子:限制quota1用户最多使用8M空间或者创建10个文件;当使用空间超过5M或者创建文件超过5个时警告

        [loring ~]# edquota [-u] quota1 [-f /quota]  //编辑方式同vim

            -u:编辑user的quota

-g:编辑group的quota

-t:编辑宽限时间

-p:复制资料到另一个用户上

blocks :现在使用者(quota:uid=5011)在/dev/hda7所使用的空间,单位:KB (不要修改)

soft :soft limit 磁盘空间限定值 单位:KB (需要设定)

hard :hard limit 磁盘空间限定值 单位: KB (需要设定)

inodes :现在使用者使用掉的inodes,由于不容易使用inode控制,所以不要修改他。

soft :soft limit 文档限制数量 (根据需要修改)

hard :hard limit 文档限制数量 (根据需要修改)

soft limit :最低限制容量,在宽限期(grace period)之内,使用容量能够超过soft limit,但必须在宽限期之内将使用容量降低到soft limit以下。

hard limit :最终限制容量,假如使用者在宽限期内继续写入数据,到达hard limit将无法再写入。

宽限时间:使用容量超过soft limit,宽限时间自动启动,使用者将容量降低到soft limit以下,宽限时间自动关闭,假如使用者没有在宽限时间内将容量降低到soft limit,那么他将无法再写入数据,即使使用容量没有到达hard limit

Disk quotas for user quota1 (uid 6668):

  Filesystem                  blocks      soft      hard    inodes    soft    hard

  /dev/sda10                        0      5120      8192          0      5      10

                                                  单位是KB                        单位是个

        (补充:quota -uv quota_name 显示user信息)                           

  4、启动配额  —— 一定要记住这步

        [loring ~]# quotaon /quota/

  5、测试配额

    1)文件个数测试

        [loring ~]# su - quota1

        [quota1@loring ~]$ cd /quota/    //一定要切换到做了配额的目录下再操作

        [quota1@loring quota]$ touch quota1_{1,2,3,4,5,6}  //超过软限制,有警告,但是仍然可以创建quota1_6

            sda10: warning, user file quota exceeded.  //超软限制告警

        [quota1@loring quota]$ ls

            aquota.group  quota1_1  quota1_3  quota1_5

            aquota.user  quota1_2  quota1_4  quota1_6

        [quota1@loring quota]$ touch quota1_{7,8,9,10,11}    //超过硬限制,不能够创建quota1_11文件

            sda10: write failed, user file limit reached.  //超过硬限制的提示信息

            touch: cannot touch `quota1_11': Disk quota exceeded

        [quota1@loring quota]$ ls

            aquota.group  quota1_1  quota1_2  quota1_4  quota1_6  quota1_8

            aquota.user  quota1_10  quota1_3  quota1_5  quota1_7  quota1_9

      2)使用空间测试

        [quota1@loring quota]$ rm -f quota1_*

        [quota1@loring quota]$ dd if=/dev/zero of=quota1_2m bs=2M count=1

        [quota1@loring quota]$ ll

        [quota1@loring quota]$ dd if=/dev/zero of=quota1_4m bs=4M count=1

            sda10: warning, user block quota exceeded.  //超过软限制的警告 

        [quota1@loring quota]$ ll

        [quota1@loring quota]$ dd if=/dev/zero of=quota1_6m bs=6M count=1

            sda10: write failed, user block limit reached.

            dd: writing `quota1_6m': Disk quota exceeded  //超过硬限制

            1+0 records in

            0+0 records out

            2097152 bytes (2.1 MB) copied, 0.0185134 s, 113 MB/s

        [quota1@loring quota]$ ll quo*

            -rw-rw-r-- 1 quota1 quota1 2097152 Aug  8 15:05 quota1_2m

            -rw-rw-r-- 1 quota1 quota1 4194304 Aug  8 15:06 quota1_4m

            -rw-rw-r-- 1 quota1 quota1 2097152 Aug  8 15:07 quota1_6m

              quota1_6m:超过硬限制了,它只会将分配给该用户的剩余空间全部使用,quota1_2m、quota1_4m和quota1_6m三个文件的总空间无法超出8M。

练习:

    设置quota1用户的配额为可以存放3M文件或者6个文件,当到达1M或者创建3个文件时警告

    [loring ~]# edquota quota1   

            Disk quotas for user quota1 (uid 6668):

      Filesystem                  blocks      soft      hard    inodes    soft    hard

      /dev/sda11                    8192      1024      3072          3        3        6

    [loring ~]# su - quota1

    [quota1@loring ~]$ cd /quota/

    [quota1@loring quota]$ rm -f qu*

    [quota1@loring quota]$ ls

        aquota.group  aquota.user

    [quota1@loring quota]$ touch 1 2 3 4

        sda10: warning, user file quota exceeded.

    [quota1@loring quota]$ touch 5 6 7

        sda10: write failed, user file limit reached.

        touch: cannot touch `7': Disk quota exceeded

    [quota1@loring quota]$ ls

        1  2  3  4  5  6  aquota.group  aquota.user


    ---组配额的限制

            edquota -g quota2

关闭配额

    [loring ~]# quotaoff /quota/

查看配额的使用情况(只有root能这么做)

    [loring ~]# repquota -a

        *** Report for user quotas on device /dev/sda10

        Block grace time: 7days; Inode grace time: 7days

                                Block limits                File limits

        User            used    soft    hard  grace    used  soft  hard  grace

        ----------------------------------------------------------------------

        root      --      20      0      0              2    0    0     

        quota1    -+      0    1024    3072              6    3    6  6days

    grace:优雅时间,当超过软限制,优雅时间倒计时为0时,软限制自动提升为硬限制;直到用户将使用空间或文件个数降至软限制以下,才能够继续使用该分区。

        例子:假如硬限制100M,软限制70M,用户当前已使用85M,那么优雅时间开始倒计时,直到优雅时间为0,那么剩余的那15M空间也不能使用了,即软限制自动提升为硬限制。

        grace默认是7天。


        另外:

        [loring ~]# edquota quota2

                    Disk quotas for user quota2 (uid 6669):

          Filesystem                  blocks      soft      hard    inodes    soft    hard

          /dev/sda10                        0          0          0          0        5        8

        [loring ~]# repquota -a  //看不到quota2的信息,是因为他没有创建任何文件

            *** Report for user quotas on device /dev/sda10

            Block grace time: 7days; Inode grace time: 7days

                                    Block limits                File limits

            User            used    soft    hard  grace    used  soft  hard  grace

            ----------------------------------------------------------------------

            root      --      20      0      0              2    0    0     

            quota1    -+      0    1024    3072              5    3    6  5days

        [loring ~]# su - quota2

        [quota2@loring ~]$ cd /quota/

        [quota2@loring quota]$ touch hello

        [quota2@loring quota]$ exit

            logout

        [loring ~]# repquota -a

            *** Report for user quotas on device /dev/sda10

            Block grace time: 7days; Inode grace time: 7days

                                    Block limits                File limits

            User            used    soft    hard  grace    used  soft  hard  grace

            ----------------------------------------------------------------------

            root      --      20      0      0              2    0    0     

            quota1    -+      0    1024    3072              5    3    6  5days

            quota2    --      0      0      0              1    5    8

  查看用户的磁盘配额使用情况

        [loring ~]# repquota -u /quota/

            *** Report for user quotas on device /dev/sda10

            Block grace time: 7days; Inode grace time: 7days

                                    Block limits                File limits

            User            used    soft    hard  grace    used  soft  hard  grace

            ----------------------------------------------------------------------

            root      --      20      0      0              2    0    0     

            quota1    -+      0    1024    3072              5    3    6  5days

            quota2    --      0      0      0              1    5    8 


  查看组的配额使用情况

        [loring ~]# repquota -g /quota/

            *** Report for group quotas on device /dev/sda10

            Block grace time: 7days; Inode grace time: 7days

                                    Block limits                File limits

            Group          used    soft    hard  grace    used  soft  hard  grace

            ----------------------------------------------------------------------

            root      --      20      0      0              2    0    0     

            quota1    --      0      0      0              5    0    0     

            quota2    --      0      0      0              1    0    0 

总结:

    1、挂载分区使其支持用户配额和组配额功能

    2、创建磁盘配额配置文件  quotacheck

    3、配置用户的磁盘配额  edquota

    4、开启配额  quotaon

    5、测试配额情况

概念

    软限制、硬限制

你可能感兴趣的:(12、磁盘配额quota)