Quota配置使用

来源:互联网 发布:阿里云 rds 读写分离 编辑:程序博客网 时间:2024/05/16 14:59


quota 这支程序的限制内容主要分为底下几个部分:

  • soft :这是最低限制容量的意思,使用者在宽限期间之内,他的容量可以超过soft ,但必需要宽限时间之内将磁盘容量降低到 soft 的容量限制之下!
  • hard :这是『绝对不能超过』的容量!跟 soft相比的意思为何呢?通常 hard limit 会比 soft limit 为高,例如网络磁盘空间为30 MB ,那么 hard limit 就设定为 30MB ,但是为了让使用者有一定的警戒心,所以当使用空间超过25 MB 时,例如使用者使用了 27 MB 的空间时,那么系统就会警告使用者,让使用者可以在『宽限时间内』将他的档案量降低至25 MB ( 亦即是 soft limit )之内!也就是说, soft 到 hard 之间的容量其实就是宽限的容量啦!可以达到针对使用者的『警示』作用!
  • 宽限时间:那么宽限时间就可以很清楚的知道含意是什么了!也就是当您的使用者使用的空间超过了soft limit ,却还没有到达 hard limit 时,那么在这个『宽限时间』之内,就必需要请使用者将使用的磁盘容量降低到soft limit 之下!而当使用者将磁盘容量使用情况超过 soft limit 时,『宽限时间』就会自动被启动,而在使用者将容量降低到soft limit 之下,那么宽限时间就会自动的取消啰!

  1. 开启磁盘的 quota 功能:编辑 /etc/fstab ,使得准备要开放的quota 磁盘可以支持 quota 啰;
由于 quota 需要在 ext 的 Linux 延伸格式档案才可以启动,所以你就必须要将准备开启quota 的磁盘启动参数,写进入 quota 的磁盘设定才行 ( /etc/fstab )!

必需要特别留意的是,最好不要以根目录亦即是 / 进行 quota啦!否则容易有些问题呢!另外,不要针对 root 做 quota 喔!

由于档案格式的设定是写在/etc/fstab里头,所以我们以 vi 来编辑他吧!只要在 /etc/fstab 里头增加了usrquota, grpquota 就可以啦!『注:请特别留意,这两个项目请『务必』不要写错了!请再写入/etc/fstab 之前好好的再次检查,因为写错之后,很有可能造成系统无法开机(虽然机率不高,但是有可能!?)』
 
[root @testroot]#vi /etc/fstab
# device       MountPoint      filesystem     parameters      dump    fsck
/dev/hda1      /              ext3           defaults        1      1
/dev/hda2      swap           swap           defaults        0      0
/dev/hdb1      /backup         ext3           defaults        1      1
/dev/hdb2      /home           ext3           defaults        1      1
none           /dev/pts        devpts         mode=0620       0      0
none           /proc           proc           defaults        0      0

上面的黄色字体改成底下的样子!
/dev/hdb2      /home           ext3           defaults,usrquota,grpquota 1 1

 
多了 usrquota,grpquota 注意,由 defaults,usrquota,grpquota 之间都没有空格!
 
这样就算加入了 quota 的磁盘格式了!不过,由于真正的 quota 在读取的时候是读取/etc/mtab 这个档案的,偏偏这一个档案需要重新开机之后才能够以 /etc/fstab的新数据进行改写!所以这个时候你可以选择:
 

    (1)重新开机==>reboot;也可以选择
    (2)重新 remount filesystem 来驱动设定值!
 
我是不太喜欢重新开机的人啦!所以我就这么做:

[root@test/]#umount /dev/hdb2
[root@test/]# mount -a
[root@test/]#more /etc/mtab
/dev/hda1 /ext3 rw 0 0
none /procproc rw 0 0
none /proc/bus/usbusbdevfs rw 0 0
none /dev devfsrw 0 0
none /dev/ptsdevpts rw,mode=0620 0 0
/dev/hdb1 /backupext3 rw 0 0
/dev/hdb2 /homeext3 rw,usrquota,grpquota 0 0

或者以下列的方式重新mount 所有的磁盘:
[root @test/root ]#mount -a -o remount <==这个指令可以重新将 /etc/fstab 的咚咚 mount 下来!

[roo

        2. 预扫瞄磁盘的使用情况:使用 quotacheck 来扫瞄一下我们要使用的磁盘啰;

如果没有相应的quota文件可以通过 quotacheck -ac 创建

       3. 建立使用者的 quota :使用 edquota 来编辑每个使用者或群组的可使用空间啰;


[root @test/]#edquota –u test
Disk quotasfor user test (uid 501):
  Filesystem        blocks       soft      hard     inodes     soft    hard
  /dev/hdb2             32          0         0          8       0        0

将上面的原本设定改为底下的模样:
Disk quotasfor user test (uid 501):
  Filesystem        blocks       soft      hard     inodes     soft    hard
  /dev/hdb2             32    40000      50000         8        0       0

 
要特别留意的是,上面的黑体数值代表的是 KB 呦!转成 MB 是需要乘上 1024倍,这里简单的计算一下就好了!这样就算编辑完毕了!接下来我们就需要将这个设定同时复制给test2 这个家伙!
 [root@test/]# edquota -p test test2 
接下来要来设定宽限时间,还是使用 edquota !
 [root@test/]#edquota -t
Grace periodbefore enforcing soft limits for users:
Time unitsmay be: days, hours, minutes, or seconds
  Filesystem            Block grace period     Inode grace period
  /dev/hdb2                    1days                 1days 
将时间改为 1 天(原本是 7days 改成 1days ),好了!查询一下是否真的有设定进去呢?使用quota -v 来查询
 [root@test/]#quota –vu test test2
Disk quotasfor user test (uid 501):
    Filesystem  blocks   quota   limit  grace   files   quota   limit  grace
     /dev/hdb2      32   40000  50000              8       0      0
Disk quotasfor user test2 (uid 502):
    Filesystem  blocks   quota   limit  grace   files   quota   limit  grace
     /dev/hdb2      28   40000  50000              7       0      0 
特别注意到,由于我们的使用者尚未超过 40 MB,所以 grace ( 宽限时间 )就不会出现啦!这样很够清楚了吧?!


编辑群组使用空间, 其实也差不多,还是使用 edquota:

     [root@test/]#edquota -g test 
    Disk quotasfor group test (gid 501):
      Filesystem        blocks       soft      hard     inodes     soft    hard
      /dev/hdb2             60          0         0         15       0        0

    修改成底下这样:
    Disk quotasfor group test (gid 501):
      Filesystem        blocks       soft      hard     inodes     soft    hard
      /dev/hdb2             60     80000     90000        15        0       0

    [root@test /]#quota-vg test
    Disk quotasfor group test (gid 501):
        Filesystem  blocks   quota   limit  grace   files   quota   limit  grace
         /dev/hdb2      60   80000  90000             15       0      0


       4. 启动 quota :使用 quotaon 吧!

[root@test/]# quotaon -av
/dev/hdb2 [/home]:group quotas turned on
/dev/hdb2 [/home]:user quotas turned on 
注意:要看到上面有个 turned on 的出现,才是真的成功了!

设定开机时启动:

开机的时候自动启动的设定在哪里还记得吗?没错!就是在 /etc/rc.d/rc.local底下:所以你可以使用 vi 在这个档案的最后面加上一行:

    [root @test/root ]# vi /etc/rc.d/rc.local 
    /sbin/quotaon-aug