高级文件系统管理--系统配额

一、配置配额系统:

综述:

磁盘配额的作用范围:

    quota软件设置的磁盘配额功能,只在指定的文件系统分区中有效,用户使用其他未设置配额的文件系统时,将不会受到限制;

磁盘配额的限制对象:

    quota主要针对系统中指定的用户账号、组账号进行限制,没有被设置限额的用户或组将不受影响。对组账号设置配额后,组内所有用户使用的磁盘容量、文件数量的总和不能超过限制。

磁盘配额的限制类型:

硬盘容量:限制用户能够使用的磁盘数据块(block)大小,也就是限制磁盘空间大小,默认单位为KB。

文件数量:限制用户能够拥有的文件个数。quota通过限制i节点的数量来实现对文件数量的限制。

磁盘配额的限制方法:

软限制:制定一个软性的配额数值(如 480MB、180个文件),在固定的宽限期内(默认为七天)允许用户暂时超过这个限制,但系统会给出警告信息。

扫描二维码关注公众号,回复: 2696871 查看本文章

硬限制:指定一个硬性的配额数值(如 500MB、200个文件),时绝对禁止用户超过这个限制值得,当达到硬限制值时,系统也会给出警告并禁止继续写入数据。硬限制的配额值应大于相应的软限制的值,否则软限制将失效。

1、以支持磁盘配额功能的方式挂载文件系统:

除了内核和quota软件支持外,实施磁盘配额功能还有一个前提条件,即指定的分区必须已经挂载且支持磁盘配额功能。

让分区支持磁盘配额选项:

     usrquota选项:支持对用户的磁盘配额;

     grpquota选项:支持对组的磁盘配额;

示例:

在配置磁盘配额过程中,可以使用带”-o usrquota grpquota” 选项的mount命令重新挂载指定的分区以便增加对用户、组配额功能。

     mount  -o usrquot,grpquota  /dev/sdb1 

若需要在每次系统开机后自动以支持磁盘配额的功能方式挂载该分区,可以将usrquot和grpquota选项参数写到/etc/fstab配置文件中。   

[root@centos7 ~]# vim /etc/fstab

/dev/sdb1   /home    ext4    defaults,usrquota,grpquota  0  0

[root@centos7 ~]#mount  -a

2、检测磁盘配额并生成配额文件:

         quotacheck命令:

               -a:表示扫描所有分区,查看是否有较早版本的配额文件;

               -c:常与u,g选项配合使用,创建用户、组的配额文件;

示例:          

[root@centos7 ~]# quotacheck -cug /home

查看在/home目录下生成的用户配额文件和组配额文件:           

[root@centos7 ~]# file aquota.*

aquota.group: data

aquota.user:  data

开启或者取消磁盘配额功能:

              quotaon :开启磁盘配额

              quotaon  -p 查看是否开启磁盘配额;

              quotaoff :关闭磁盘配额

示例:

查看是否开启磁盘配额:           

[root@centos7 ~]# quotaon -p /home

group quota on /home (/dev/sdb1) is off

user quota on /home (/dev/sdb1) is off

开启磁盘配额:            

[root@centos7 ~]# quotaon /home

关闭磁盘配额:           

 [root@centos7 ~]# quotaoff /home

     3、编辑用户和组的账号的配额设置:

               edquota命令:结合-u和-g选项可用于编辑用户或组的配额设置;

(1)edquota  -u  username

(2)直接在shell命令行编写(适合编写shell脚本使用)

                setquota  username  500000  600000   1500 2000  /filesystem

示例:            

 root@centos7 ~]# setquota   zhangsan  500000 600000  1500 2000 /home

(3)定义标准的用户 (相当于copy  user1的磁盘配额给user2)

                edquota  -p  user1  user2

示例:

[root@centos7 ~]# edquota -p zhangsan fan

示例:

为用户zhangsan编辑磁盘配额:             

[root@centos7~]# edquota -u zhangsan

Disk quotas for user zhang (uid 1000):

Filesystem      blocks    soft  hard        inodes     soft     hard

/dev/sdb1       0    500000   600000       0       1500     2000

在edquota的编辑界面中,各字段分别代表的含义如下:

           Filesystem:表示本行配置记录对应的文件系统,即配额的作用范围;

           blocks:表示用户已经使用的磁盘容量,单位为KB,该值由edquota自动计算;

           soft:第3列的soft对应为磁盘容量的软限制数值;

           hard:第4列的hard对应为磁盘容量的硬限制数值;

           inodes:表示用户当前已经拥有的文件数量,(i节点数)有edquota自动计算;

           soft:第6列的soft对应为文件数量的软限制数值;

           hard:第7列的hard对应为文件数量的硬限制数值;

测试磁盘配额:

综上可知我们为用户zhangsan设置的磁盘硬限制是600MB,这是我们dd一个650MB的文件,这时我们已经看到拒绝写入数据了。       

[zhangsan@centos7 ~]$ dd if=/dev/zero of=/home/zhangsan/bb  bs=1M count=650

           sdb1: warning, user block quota exceeded.

           sdb1: write failed, user block limit reached.  (写入失败,磁盘配额空间已满)

           dd: error writing ‘/home/zhangsan/bb’: Disk quota exceeded

           586+0 records in

           585+0 records out

           614371328 bytes (614 MB) copied, 0.800515 s, 767 MB/s

           [zhangsan@centos7 ~]$ du -sh /home/zhangsan/bb

           586M /home/zhangsan/bb

           [zhangsan@centos7 ~]$

使用quota命令查看用户zhangsan的磁盘使用情况:    

 [root@centos7 ~]# quota zhangsan

Disk quotas for user zhangsan (uid 1000):

Filesystem  blocks   quota   limit   grace   files   quota   limit   grace

/dev/sdb1  600000* 500000  600000   7days      15    1500    2000        

[root@centos7 ~]#

使用repquota命令查看/home文件系统的配额使用情况报告:     

 [root@centos7 ~]# repquota /home

  Report for user quotas on device /dev/sdb1

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

                         Block limits                File limits

 User            used    soft    hard  grace    used  soft  hard  grace

 root      —      14       0       0              7     0     0       

 zhangsan     +-  600000  500000  600000  6days      15  1500  2000       

  fan      —      14  500000  600000              7  1500  2000       

  root     —      14  500000  600000              7  1500  2000       

  [root@centos7 home]#

配置磁盘配额使用的命令总结:

          usrquota、grpquota

          quotacheck

          quotaon  quotaoff

          edquota  setquota

          quota    repquota

          warnquota (磁盘配额报警软件,可以邮件通知)
ext系列文件系统的quota

    1.开启quota(ext、xfs)

[root@centos6 ~]#vim /etc/fstab

在需要开启quota的文件系统的挂载选项的defaults后加usrquota,grpquota如下

/dev/sda5  /backup                   ext4    defaults,usrquota,grpquota        1 0

  2.生成quota数据库 

[root@centos6 ~]#quotacheck -cugm /backup/

  3.开启quota 

[root@centos6 ~]#quotaon    /backup

quota
         -v 显示当前用户自己的quota限额
         -v username 显示指定用户的quota限额 仅限root
     repquota -v /backup 显示所有用户的quota限额(仅限用户在该目录有所属的文件) 仅限root

[root@centos6 ~]#repquota -v /backup/
*** Report for user quotas on device /dev/md126
Block grace time: 7days; Inode grace time: 7days
                        Block limits                File limits
User            used    soft    hard  grace    used  soft  hard  grace
----------------------------------------------------------------------
root      --    1284       0       0              3     0     0       
sunquan   --       0   40960   51200              0     0     0      

Statistics:
Total blocks: 7
Data blocks: 1
Entries: 2
Used average: 2.000000

   4.配置quota
     edquota -u/g username/groupname
         edquota -u liubei
         edquota -g shuguo

    或非交互式

 [root@centos6 ~]# setquota -u[default] |-g  username|groupname 10M 20M 5 20 /backup
 [root@centos6 ~]#setquota -u liubei 0 0 0 0 /backup
 [root@centos6 ~]# setquota -g shuguo 10M 20M 50 100 /backup
 [root@centos6 ~]#edquota -p liubei zhangfei  将liubei的quota设置复制给zhangfei

注意:对group设置quota时,应该对附加组设置,同时,目录要设置sgid权限才有意义

xfs文件系统的quota
     1.开启quota(ext、xfs)
     vim /etc/fstab
     在需要开启quota的文件系统的挂载选项的defaults后加usrquota,grpquota如下
     /dev/sda5  /app                    ext4    defaults,usrquota,grpquota        1 0

    一定要卸载再挂载才生效
     2.配置
     xfs_quota -x -c "print" 查看当前系统中所有的xfs文件系统哪些开启了quota

[root@localhost ~]# xfs_quota -x -c "print" 
 Filesystem          Pathname
 /                   /dev/mapper/centos-root
 /backup             /dev/md0 (uquota, gquota)
 /app                /dev/mapper/centos-app
 /boot               /dev/sda1

  xfs_quota -x -c "report -ugibh"  /backup查看quota设置

[root@localhost ~]# xfs_quota -x -c "report -ugibh" /backup/
 User quota on /backup (/dev/md0)
                         Blocks                            Inodes              
 User ID      Used   Soft   Hard Warn/Grace     Used   Soft   Hard Warn/Grace  
 ---------- --------------------------------- --------------------------------- 
 root            0      0      0  00 [0 days]      3      0      0  00 [------]
 sunquan         0    40M    50M  00 [------]      0      0      0  00 [------]

Group quota on /backup (/dev/md0)
                         Blocks                            Inodes              
 Group ID     Used   Soft   Hard Warn/Grace     Used   Soft   Hard Warn/Grace  
 ---------- --------------------------------- --------------------------------- 
 root            0      0      0  00 [------]      3      0      0  00 [------]

        -u 查看用户的
         -g 查看组的
         -i 查看inode
         -b 查看block (默认)
         -h human-readable
         默认是-ug
         ***-uibh
     xfs_quota -x -c "state" /backup 查看qutoa状态,显示grace time时间

[root@localhost ~]# xfs_quota -x -c "state" /backup/
 User quota state on /backup (/dev/md0)
   Accounting: ON
   Enforcement: ON
   Inode: #67 (2 blocks, 2 extents)
 Group quota state on /backup (/dev/md0)
   Accounting: ON
   Enforcement: ON
   Inode: #68 (2 blocks, 2 extents)
 Project quota state on /backup (/dev/md0)
   Accounting: OFF
   Enforcement: OFF
   Inode: #68 (2 blocks, 2 extents)
 Blocks grace time: [14 days]
 Inodes grace time: [7 days]
 Realtime Blocks grace time: [7 days]

     xfs_quota -x -c "limit -u bsoft=30M bhard=40M liubei" /backup
     对用户设置quota
     xfs_quota -x -c "limit -g bsoft=50M bhard=100M shuguo" /backup
     对组设置quota
     xfs_quota -x -c "timer -u -b 14days" /app
     设置quota grace time

    获取帮助
     xfs_quota -x -c "help limit"
     xfs_quota -x -c "help report"

猜你喜欢

转载自www.cnblogs.com/f-h-j-11-7/p/9459884.html