Welcome 微信登录

首页 / 操作系统 / Linux / Linux教程之磁盘配额(Quota)

1.什么是quota简单的说就是限制用户对磁盘空间的使用量。因为Linux是多用户多任务的操作系统,许多人共用磁盘空间,为了合理的分配磁盘空间,于是就有了quota的出现。2.quota的用途
    显示磁盘使用情况和配额3.quota的一般作用对象
    (1)针对WWW server
    (2)针对mail server
    (3)针对file server
4.quota的限制
    (1)仅能针对整个文件系统
    (2)需要kernel的支持
    (3)只对一般用户有效5.quota的使用测试环境   RHEL6.6(默认kernel已经支持quota功能)/dev/sdb1 供测试的文件系统用户组 myquota用户 quota1,quota2具体操作如下(1)重新挂/dev/sdb1文件系统,并添加usrquota,grpquota参数[root@localhost ~]# mount -o remount,usrquota,grpquota /dev/sdb1重新挂载后,/dev/sdb1这个分区就支持quota功能了[root@localhost ~]# mount | grep /dev/sdb1
/dev/sdb1 on /mnt/test type ext4 (rw,usrquota,grpquota)(2)添加用户组和用户[root@localhost ~]# groupadd myquota
[root@localhost ~]# useradd -g myquota quota1
[root@localhost ~]# useradd -g myquota quota2
(3)生成quota配置文件[root@localhost ~]# cd /mnt/test/[root@localhost test]# quotacheck -ug .  [root@localhost test]# ls
aquota.group  aquota.user  lost+found  生成quota配置文件
(4)启动quota功能[root@localhost test]# quotaon /dev/sdb1
若要关闭 使用quotaoff命令(5)修改quota配置文件配置文件内容如下
  Filesystem                 blocks     soft     hard   inodes   soft   hard
  /dev/sdb1                       0              0          0            0         0          0需要修改的是soft/hard的值,单位是KB,soft为警告值,hard为最大值,当磁盘使用量在soft-hard之间,就会发出警告(默认倒计时7天),若超过警告时间,磁盘使用量依然在soft-hard 之间,则会禁止使用磁盘空间。若修改blocks的soft/hard表示规定用户可以使用的磁盘空间大小(一般都是规定磁盘使用量)若修改的是inodes的 soft/hard值,表示规定用户可以创建的文件个数. [root@localhost test]# edquota -u quota1    -->修改针对quota1用户的配置 Disk quotas for user quota1 (uid 500):
  Filesystem                 blocks          soft            hard       inodes      soft   hard
  /dev/sdb1                       0          100000     200000         0            0          0[root@localhost test]# edquota -u quota2    -->修改针对quota2用户的配置Disk quotas for user quota2 (uid 501):
  Filesystem                 blocks     soft             hard        inodes   soft   hard
  /dev/sdb1                   0           100000        200000          0           0        0
[root@localhost test]# edquota -g myquota  -->修改针对myquota组的配置Disk quotas for group myquota (gid 500):
  Filesystem                 blocks     soft     hard   inodes   soft   hard
  /dev/sdb1                    251200   100000   300000          3        0        0    这样配置表示quota1,quota2用户最多使用200M的磁盘空间,超过100M就发出警告并进入倒计时,而myquota组最多使用300M的磁盘空间。 也就是说,虽然quota1,quota2都有200M的最大磁盘空间能使用权限,但他们都属于myquota组,他们的总量不得超过300M 修改权限[root@localhost test]# chmod 777 .
[root@localhost test]# ll -d
drwxrwxrwx. 3 root root 4096 8月  23 09:36 .
切换quota1用户,进行测试[root@localhost test]# su quota1
[quota1@localhost test]$ dd if=/dev/zero of=bigfile1 bs=1M count=150
sdb1: warning, user block quota exceeded. -->警告
记录了150+0 的读入
记录了150+0 的写出
157286400字节(157 MB)已复制,1.02545 秒,153 MB/秒再写入一个大文件[quota1@localhost test]$ dd if=/dev/zero of=bigfile2 bs=1M count=150
sdb1: write failed, user block limit reached.
dd: 正在写入"bigfile2": 超出磁盘限额 -->超过200M的部分就无法写入了
记录了46+0 的读入
记录了45+0 的写出
47513600字节(48 MB)已复制,0.381467 秒,125 MB/秒切换quota2用户[root@localhost test]# su quota2
[quota2@localhost test]$ ls
aquota.group  aquota.user  bigfile1  bigfile2  lost+found
[quota2@localhost test]$ dd if=/dev/zero of=bigfile3 bs=1M count 50记录了50+0 的读入
记录了50+0 的写出
52428800字节(52 MB)已复制,0.410838 秒,128 MB/秒修改警告时间[root@localhost test]$ edquota -tGrace period before enforcing soft limits for users:
Time units may be: days, hours, minutes, or seconds
   Filesystem           Block grace period   Inode grace period
   /dev/sdb1                   7days                          7days 查看quota1的quota信息[quota1@localhost test]$ quota -u quota1
Disk quotas for user quota1 (uid 500):
    Filesystem  blocks quota limit grace files quota limit grace
     /dev/sdb1  200000* 100000  200000 6days     2     0     0          -->已经进入警告的倒计时了
查询quota2的quota信息[root@localhost test]# quota -u quota2
Disk quotas for user quota2 (uid 501):
     Filesystem  blocks quota limit grace files quota limit grace
      /dev/sdb1 51200  100000  200000             1     0     0       查询myquota组的quota信息
[root@localhost test]# quota -g myquota
Disk quotas for group myquota (gid 500):
    Filesystem  blocks quota limit grace files quota limit grace
    /dev/sdb1  251200* 100000  300000 6days     3     0     0总结:quotacheck [ -gubcfinvdMmR ] [ -F quota-format ] -a | filesystem -a 检查所有/etc/mtab中挂在的文件系统 -u 只检查用户的quota -g 只检查用户组的quotaquota 不使用任何参数,查询当前用户的quota信息 -u  username 查询某用户的quota信息 -g  groupname 查询某用户组的quota信息edquota -u username 编辑某用户的quota配置 -g groupname 编辑某用户组的quota配置 -t 编辑警告时间的配置 还有一个综合查询命令是repquota -a 报告所有支持quota的文件系统 -u 报告针对user的quota信息 -g 包裹针对group的quota信息一般三个参数一起使用[root@localhost test]# repquota -aug
*** 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      --      20     0     0              2   0   0     
quota1    +-  200000  100000  200000  6days     2   0   0     
quota2    -- 51200     0     0              1   0   0     
*** Report for group quotas on device /dev/sdb1
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     
myquota +-  251200  100000  300000  7days     3   0   0 本文永久更新链接地址