共同进步
分类: 系统运维
2015-12-21 12:35:39
Quota 使用的方向很广啦,不过,他一般的用途大概有这些:
l 限制某一群组所能使用的最大磁盘配额 (使用群组限制) :
l 限制某一使用者的最大磁盘配额 (使用使用者限制) :
在限制了群组之后,您也可以再继续针对个人来进行限制,使得同一群组之下还可以有更公平的分配!
l 以 Link 的方式,来使邮件可以作为限制的配额 (更改 /var/spool/mail 这个路径):
如果是分为付费与免付费会员的『邮件主机系统』,是否需要重新再规划一个硬盘呢? 也不需要啦!直接使用 Link 的方式指向 /home (或者其它已经做好的 quota 磁盘)就可以啦! 这通常是用在原本规划不好,但是却又不想要更动原有主机架构的情况中啊
quota的使用限制:
1、只能针对整个partition
2、核心必须支持quota
3、只针对普通使用者有效
quota使用参数:
soft:
这是最低限制容量的意思,使用者在宽限期间之内,他的容量可以超过 soft ,但必需要宽限时间之内将磁盘容量降低到 soft 的容量限制之下!
?
hard:
这是『绝对不能超过』的容量!跟 soft 相比的意思为何呢?通常 hard limit 会比 soft limit为高,例如网络磁盘空间为 30 MB ,那么 hard limit 就设定为 30MB ,但是为了让使用者有一定的警戒心,所以当使用空间超过 25 MB 时,例如使用者使用了 27 MB 的空间时,那么系统就会警告使用者, 让使用者可以在『宽限时间内』将他的档案量降低至 25 MB ( 亦即是 soft limit )之内!
?
宽限时间:
那么宽限时间就可以很清楚的知道含意是什么了!也就是当您的使用者使用的空间超过了 softlimit ,却还没有到达 hard limit 时,那么在这个『宽限时间』之内, 就必需要请使用者将使用的磁盘容量降低到 soft limit 之下!而当使用者将磁盘容量使用情况超过 soft limit 时,『宽限时间』就会自动被启动,而在使用者将容量降低到 soft limit 之下,那么宽限时间就会自动的取消啰!
前提条件:查看内核是否支持quota
[root@linux-node2 boot]# cat /boot/config-2.6.18-238.el5|grep -i quota
CONFIG_NETFILTER_XT_MATCH_QUOTA=m
CONFIG_XFS_QUOTA=y
CONFIG_QUOTA=y
CONFIG_QUOTACTL=y
[root@linux-node2 boot]#
Quota配置步骤:
1. 设定 partition 的 filesystem 支持 quota 参数:
由于 quota 必须要让 partition 上面的 filesystem 支持才行,一般来说, 支持度最好的是ext2/ext3 ,编辑 /etc/fstab ,使得准备要开放的 quota 磁盘可以支持 quota 啰;
[root@server ~]# cat /etc/fstab
/dev/VolGroup00/lv02 / ext3 defaults 1 1
LABEL=/boot /boot ext3 defaults 1 2
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
/dev/VolGroup00/lv01 swap swap defaults 0 0
/dev/VolGroup00/mylv03 /home ext3 defaults,usrquota,grpquota 0 0
2. 利用 quotacheck建立 quota 记录文件:
[root@server ~]# quotacheck -avug
quotacheck: Scanning /dev/mapper/VolGroup00-mylv03 [/test] done
quotacheck: Checked 3 directories and 4 files
[root@server ~]#
将在/test目录下生成quota文件:
drwx------ 2 root root 12288 07-15 23:18 lost+found
-rw------- 1 root root 6144 07-15 23:35 aquota.user
-rw------- 1 root root 6144 07-15 23:35 aquota.group
[root@server ~]#
? quotacheck命令使用
[root@linux ~]# quotacheck [-avug] [/mount_point]
参数:
-a :扫瞄所有在 /etc/mtab 内,含有 quota 支持的 filesystem,加上此参数后,
/mount_point 可不必写,因为扫瞄所有的 filesystem 了嘛!
-u :针对使用者扫瞄档案与目录的使用情况,会建立 aquota.user
-g :针对群组扫瞄档案与目录的使用情况,会建立 aquota.group
-v :显示扫瞄过程的信息;
-M :『强制』进行 quotacheck 的扫瞄。
3、启动quota的限额
查看quota是否开启
[root@linux-node2 ~]# quotaon -pa
group quota on /oracle (/dev/mapper/myvg01-lv01) is off
user quota on /oracle (/dev/mapper/myvg01-lv01) is on
[root@linux-node2 ~]#
[root@server ~]# quotaon -avug
/dev/mapper/VolGroup00-mylv03 [/test]: group quotas turned on
/dev/mapper/VolGroup00-mylv03 [/test]: user quotas turned on
[root@server ~]#
结果必须显示为turned on
4. 使用 edquota编辑 quota 限制值数据:
[root@server ~]# edquota -u fanhs ##针对用户设定限额
Disk quotas for user fanhs (uid 500):
Filesystem blocks soft hard inodes soft hard
/dev/mapper/VolGroup00-mylv03 0 10000 20000 0 0 0
单位为KB
[root@server ~]# edquota -g fanhs
Disk quotas for group fanhs (gid 500):
Filesystem blocks soft hard inodes soft hard
/dev/mapper/VolGroup00-mylv03 0 15000 30000 0 0 0
[root@linux ~]# edquota -p fanhs -u tom 把fanhs的限额配置复制给tom
[root@linux ~]# edquota [-u username] [-g groupname]
[root@linux ~]# edquota -p username_demo -u username
参数:
-u :后面接账号名称。设定 username 的限制值;
-g :后面接群组名称。设定 groupname 的限制值;
-t :可以修改恕限时间 (就是超过 quota 的 soft limit 值后,还能使用硬盘的宽限期限)
-p :复制范本。那个 username_demo 为已经存在并且已设定好 quota 的使用者,
意义为『将 username_demo 这个人的 quota 限制值复制给 username 』!
[root@server ~]# edquota –t 修改宽限时间
Grace period before enforcing soft limits for users:
Time units may be: days, hours, minutes, or seconds
Filesystem Block grace period Inode grace period
/dev/mapper/VolGroup00-mylv03 7days 7days
edquota –T user1单独对某个用户设置宽限时间
5.使用quota命令查看所有的配置
[root@server ~]# quota -vu fanhs tom
Disk quotas for user fanhs (uid 500):
Filesystem blocks quota limit grace files quota limit grace
/dev/mapper/VolGroup00-mylv03
0 10000 20000 0 0 0
Disk quotas for user tom (uid 501):
Filesystem blocks quota limit grace files quota limit grace
/dev/mapper/VolGroup00-mylv03
0 10000 20000 0 0 0
[root@server ~]#
[root@linux ~]# quota [-uvsl] [username]
[root@linux ~]# quota [-gvsl] [groupname]
参数:
-u :后面可以接 username ,表示显示出该使用者的 quota 限制值。若不接 username,表示显示出执行者的 quota 限制值。
-g :后面可接 groupname ,表示显示出该群组的 quota 限制值。
-v :显示每个 filesystem 的 quota 值;
-s :可选择以 inode 或磁盘容量的限制值来显示;
-l :仅显示出目前本机上面的 filesystem 的 quota 值。
6. 重新扫瞄与启动 quota :
设定好 quota 之后,建议可以再进行一次 quotacheck ,然后再以 quotaon 来启动吧!
7、用repquota查看quota更完整的报告
[root@server ~]# repquota –avug -v参数能列出系统相关信息
*** Report for user quotas on device /dev/mapper/VolGroup00-mylv03
Block grace time: 00:01; Inode grace time: 7days
Block limits File limits
User used soft hard grace used soft hard grace
----------------------------------------------------------------------
root -- 10288 0 0 4 0 0
fanhs -- 0 10000 20000 0 0 0
tom -- 0 10000 20000 0 0 0
Statistics:
Total blocks: 7
Data blocks: 1
Entries: 3
Used average: 3.000000
*** Report for group quotas on device /dev/mapper/VolGroup00-mylv03
Block grace time: 7days; Inode grace time: 7days
Block limits File limits
Group used soft hard grace used soft hard grace
----------------------------------------------------------------------
root -- 10288 0 0 4 0 0
fanhs -- 0 15000 30000 0 0 0
Statistics:
Total blocks: 7
Data blocks: 1
Entries: 2
Used average: 2.000000
[root@server ~]#