linux磁盘配额quota
父目录:linux基础入门
linux是一个多用户多任务操作系统,可支持多个用户同时在线使用。
虽然文件权限规范了用户对磁盘文件的访问操作,但是所有用户都共用主机上的磁盘空间,
就会产生有的用户占用磁盘空间多,有的用户占用磁盘空间少的情况,造成磁盘容量分配不均的问题。
假设系统中有10个普通用户账号,这些用户的家目录默认都在/home目录下,假设/home所在的分区有10G.
如果没有特殊情况的话,这10个用户每人可以分到1G的磁盘空间使用量。
但是只要其中一个用户占用了超过1G的容量,那么势必会造成其他用户可用磁盘容量的减少。
通过磁盘配额(Quota)工具、磁盘阵列(RAID)及逻辑卷(LVM)等可为每个用户分配不同的磁盘容量,帮助管理员管理与维护用户可用的磁盘容量。1.什么是quota
回到顶部quota的使用分一下几种情况:
针对linux网络服务器的情况: 针对 WWW server,限制每个用户网页空间的磁盘容量;
针对 mail server,限制每个用户邮件空间的磁盘容量;
针对 file server,限制每个用户最大的可用网络硬盘空间。
针对Linux系统主机的情况:
使用群组限制,限制某一用户群组所能使用的最大磁盘配额。可以将主机上的用户分门别类,不同的用户组分配不同的磁盘空间。
使用用户限制,限制某一用户的最大磁盘配额。在限制了用户群组之后,可以继续对某个用户来进行限制,使得同一群组之下还可以有更公平的分配!
限制某一目录 (directory, project) 的最大磁盘配额。传统的EXT家族文件系统的磁盘配额主要是针对整个文件系统来处理,所以大多针对挂载点进行设计。 而XFS文件系统可以使用project模式,能够针对某个的目录,而不是整个文件系统来设计磁盘配额!
比较特别的是,XFS文件系统的quota是整合到文件系统内部的,属于XFS自带的功能。所以xfs_quota要比大部分磁盘管理工具的效率更高, 例如du工具会重新计算目录下的磁盘使用率,但XFS可以通过xfs_quota直接汇报各目录使用率,速度就会快很多!
2.Quota的使用限制
回到顶部EXT文件系统家族仅能针对整个filesystem:
EXT文件系统家族在进行quota限制的时候,仅能针对整个文件系统来进行规划设计,无法针对某个单一的目录来规划磁盘配额。 因此,如果你想要使用不同的文件系统进行quota时,请先搞清楚该文件系统支持的情况喔!因为XFS已经可以使用project模式来设计不同目录的磁盘配额。
linux内核必须支持quota:
Linux核心必须有支持 quota 这个功能才行,在使用之前需要确认内核是否开启了quota功能;
磁盘配额只对普通用户有效:
root作为超级用户,法力无边。是没有什么能够对root进行限制的。所以磁盘配额只针对普通用户。
如果开启了SELinux,并不是所有目录均可设置quota:
新版的CentOS默认开启SELinux,该功能会加强某些细部的权限控制!为了防止管理员错误设置,quota只能针对/home进行设置。 所以如果要对其他目录进行磁盘配额限制,需要先关闭selinux。
xfs文件系统无须额外的quota纪录文件,也能够针对文件系统内的不同目录进行配置! 不同文件系统在quota的处理情况上不太相同,进行quota前,需要先确认磁盘文件系统类型!
3.Quota的规范设定项目
回到顶部分别针对用户、群组或个别目录(user, group & project):XFS文件系统的quota限制中,主要是针对群组、个人或单独的目录进行磁盘使用率的限制!
容量限制或文件数量限制(block 或 inode):我们前面讲过文件系统里主要有存放属性的inode与实际文件数据的block区块,Quota也可以对inode和block进行限制:
限制inode用量:可以管理使用者可以建立的文件数量;
限制block用量:管理用户磁盘容量的限制,较常见为这种方式。
4.Quota的硬限制和软限制
回到顶部hard:表示使用者的用量绝对不会超过这个限制值,以上面的设定为例, 用户所能使用的磁盘容量绝对不会 超过 500Mbytes ,若超过这个值则系统会锁住该用户的磁盘使用权;
soft:表示使用者在低于 soft 限值时 (此例中为 400Mbytes),可以正常使用磁盘,但若超过 soft 且低于 hard 的限值 (介于 400~500Mbytes 之间时),每次用户登入系统时,系统会主动发出磁盘即将爆满的警告讯息, 且会给予一个宽限时间 (grace time)。 不过,若使用者在宽限时间倒数期间就将容量再次降低于 soft 限值之下,则宽限时间会停止。
会倒数计时的宽限时间 (grace time):刚刚上面就谈到宽限时间了!这个宽限时间只有在用户的磁盘用量介于 soft 到 hard 之间时,才 会出现且会倒数的一个咚咚! 由于达到 hard 限值时,用户的磁盘使用权可能会被锁住。为了担 心用户没有注意到这个磁盘配额的问题, 因此设计了 soft 。当你的磁盘用量即将到达 hard 且超 过 soft 时,系统会给予警告,但也会给一段时间让用户自行管理磁盘。 一般预设的宽限时间为 七天,如果七天内你都不进行任何磁盘管理,那么 soft 限制值会即刻取代 hard 限值来作为 quota 的限制。
以上面设定的例子来说,假设你的容量高达 450MBytes 了,那七天的宽限时间就会开始倒数, 若 七天内你都不进行任何删除文件的动作来替你的磁盘用量减肥, 那么七天后你的磁盘最大用量将 变成 400MBytes (那个 soft 的限制值),此时你的磁盘使用权就会被锁住而无法新增文件了。
一个 XFS 文件系统的 Quota 实作范例
回到顶部账号的磁盘容量限制值:我想让这五个用户都能够取得 300MBytes 的磁盘使用量(hard),文件数量则不予 限制。 此外,只要容量使用率超过 250MBytes ,就予以警告 (soft)。
群组的限额 (option 1):由于我的系统里面还有其他用户存在,因此我仅承认 myquotagrp 这个群组最多仅 能使用 1GBytes 的容量。 这也就是说,如果 myquota1, myquota2, myquota3 都用了 280MBytes 的容量了, 那么其他两人最多只能使用 (1000MB - 280x3 = 160MB) 的磁盘容量啰!这就是使用者与群组同时设定时会 产生的后果。
共享目录限额 (option 2):另一种设定方式,每个用户还是具有自己独立的容量限止,但是这五个人的专题 共享目录在 /home/myquota 这里,该目录请设定为其他人没有任何权限的共享目录空间,仅有 myquotagrp群组拥有全部的权限。 且无论如何,该目录最多仅能够接受 500MBytes 的容量。请注意,群组 (group) 的 限制与目录 (directory/project) 无法同时并存喔! 所以底下的流程中,我们会先以群组来设计,然后再以目 录限制来进一步说明!
宽限时间的限制:最后,我希望每个使用者在超过 soft 限制值之后,都还能够有 14 天的宽限时间。 好了,那你怎么规范账号以及相关的 Quota 设定呢?首先,在这个小节我们先来将账号相关的属性、 参数及其他环境搞定再说吧!
由于有五个账号,使用 script 来制作账号环境!
[root@initroot ~]# vim addaccount.sh #!/bin/bash # 使用 script 来建立实验 quota 所需的环境 groupadd myquotagrp for username in myquota1 myquota2 myquota3 myquota4 myquota5 do useradd -g myquotagrp $username echo "password" | passwd --stdin $username done mkdir /home/myquota chgrp myquotagrp /home/myquota chmod 2770 /home/myquota
[root@initroot ~]# sh addaccount.sh接下来,就让我们来实作 Quota 的练习吧!
Quota操作流程-1:文件系统的支持与观察
回到顶部[root@initroot ~]# df -hT /home Filesystem Type /dev/mapper/centos-home xfs Size 5.0G Used Avail Use% Mounted on 67M 5.0G 2% /home从上面的数据来看,这部主机的 /home 确实是独立的 filesystem,而且确实是使用了 xfs 文件系统! 此外,由于 VFAT 文件系统并不支持 Linux Quota 功能,所 以我们得要使用 mount 查询一下 /home 的文件系统为何才行啊!在过去的版本中,管理员似乎可以透过 mount -o remount 的机制来重新挂载启动 quota 的功能,不 过 XFS 文件系统的 quota 似乎是在挂载之初就宣告了, 因此无法使用 remount 来重新启动 quota 功能,一定得要写入 /etc/fstab 当中,或者是在初始挂载过程中加入这个项目, 否则不会生效喔! 那就来瞧瞧改了 fstab 成为怎样吧!
[root@initroot ~]# vim /etc/fstab /dev/mapper/centos-home /home xfs defaults,usrquota,grpquota 0 0其他项目并没有列出来!重点在于第四字段!于 default 后面加上两个参数!
[root@initroot ~]# umount /home [root@initroot ~]# mount -a [root@initroot ~]# mount | grep home /dev/mapper/centos-home on /home type xfs (rw,relatime,seclabel,attr2,inode64,usrquota,grpquota)基本上,针对 quota 限制的项目主要有三项,如下所示:
uquota/usrquota/quota:针对使用者账号的设定还是要再次的强调,修改完 /etc/fstab 后,务必要测试一下!若有发生错误得要赶紧处理! 因为这 个文件如果修改错误,是会造成无法开机完全的情况啊!切记切记!最好使用 vim 来修改啦! 因为 会有语法的检验,就不会让你写错字了!此外,由于一般用户的家目录在 /home 里面,因此针对这 个项目的卸除时, 一定要将所有一般账号的身份注销,否则肯定无法卸除喔!留意留意!
gquota/grpquota:针对群组的设定
pquota/prjquota:针对单一目录的设定,但是不可与 grpquota 同时存在!
Quota操作流程-2:观察 Quota 报告资料
回到顶部[root@initroot ~]# xfs_quota -x -c "指令" [挂载点]选项与参数:
-x :专家模式,后续才能够加入 -c 的指令参数喔!列出目前系统的各的文件系统,以及文件系统的 quota 挂载参数支持
-c :后面加的就是指令,这个小节我们先来谈谈数据回报的指令
指令:
print :单纯的列出目前主机内的文件系统参数等资料
df :与原本的 df 一样的功能,可以加上 -b (block) -i (inode) -h (加上单位) 等
report:列出目前的 quota 项目,有 -ugr (user/group/project) 及 -bi 等资料
state :说明目前支持 quota 的文件系统的信息,有没有起动相关项目等
[root@initroot ~]# xfs_quota -x -c "print" Filesystem Pathname / /dev/mapper/centos-root /srv/myproject /dev/vda4 /boot /dev/vda2 /home /dev/mapper/centos-home (uquota, gquota) # 所以这里就有显示支持啰列出目前 /home 这个支持 quota 的载点文件系统使用情况
[root@initroot ~]# xfs_quota -x -c "df -h" /home Filesystem Size Used Avail Use% Pathname /dev/mapper/centos-home 5.0G 67.0M 4.9G 1% /home# 如上所示,其实跟原本的 df 差不多啦!只是会更正确就是了。
列出目前 /home 的所有用户的 quota 限制值
[root@initroot ~]# xfs_quota -x -c "report -ubih" /home User quota on /home (/dev/mapper/centos-home) Blocks User ID Used Soft Inodes Hard Warn/Grace Used Soft Hard Warn/Grace ---------- --------------------------------- --------------------------------- root peter 4K 0 0 00 [------] 4 0 0 00 [------] 34.0M 0 0 00 [------] 432 0 0 00 [------] .....(中间省略)..... myquota1 12K 0 0 00 [------] 7 0 0 00 [------] myquota2 12K 0 0 00 [------] 7 0 0 00 [------] myquota3 12K 0 0 00 [------] 7 0 0 00 [------] myquota4 12K 0 0 00 [------] 7 0 0 00 [------] myquota5 12K 0 0 00 [------] 7 0 0 00 [------]# 所以列出了所有用户的目前的文件使用情况,并且列出设定值。注意,最上面的 Block
# 代表这个是 block 容量限制,而 inode 则是文件数量限制喔。另外,soft/hard 若为 0,代表没限制
列出目前支持的 quota 文件系统是否有起动了 quota 功能?
[root@initroot ~]# xfs_quota -x -c "state" User quota state on /home (/dev/mapper/centos-home) Accounting: ON # 有启用计算功能 Enforcement: ON # 有实际 quota 管制的功能 Inode: #1568 (4 blocks, 4 extents) # 上面四行说明的是有激活 user 的限制能力 Group quota state on /home (/dev/mapper/centos-home) Accounting: ON Enforcement: ON Inode: #1569 (5 blocks, 5 extents) # 上面四行说明的是有激活 group 的限制能力 Project quota state on /home (/dev/mapper/centos-home) Accounting: OFF Enforcement: OFFInode: #1569 (5 blocks, 5 extents) Blocks grace time: [7 days 00:00:30] # 上面四行说明的是 project 并未支持 # 底下则是 grace time 的项目 Inodes grace time: [7 days 00:00:30] Realtime Blocks grace time: [7 days 00:00:30]在默认的情况下, xfs_quota 的 report 指令会将支持的 user/group/prject 相关数据列出来,如果只 是想要某个特定的项目, 例如我们上面要求仅列出用户的数据时,就在 report 后面加上 -u 即可喔! 这样就能够观察目前的相关设定信息了。
要注意,限制的项目有 block/inode 同时可以针对每个项目来设定 soft/hard 喔!接下来实际的设定看看吧!
Quota操作流程-3:限制值设定方式
回到顶部[root@initroot ~]# xfs_quota -x -c "limit [-ug] b[soft|hard]=N i[soft|hard]=N name" [root@initroot ~]# xfs_quota -x -c "timer [-ug] [-bir] Ndays"选项与参数:
limit :实际限制的项目,可以针对 user/group 来限制,限制的项目有设定好用户们的 block 限制值 (题目中没有要限制 inode 啦!)
bsoft/bhard : block 的 soft/hard 限制值,可以加单位
isoft/ihard : inode 的 soft/hard 限制值
name: 就是用户/群组的名称啊!
timer :用来设定 grace time 的项目喔,也是可以针对 user/group 以及 block/inode 设定
[root@initroot ~]# xfs_quota -x -c "limit -u bsoft=250M bhard=300M myquota1" /home [root@initroot ~]# xfs_quota -x -c "limit -u bsoft=250M bhard=300M myquota2" /home [root@initroot ~]# xfs_quota -x -c "limit -u bsoft=250M bhard=300M myquota3" /home [root@initroot ~]# xfs_quota -x -c "limit -u bsoft=250M bhard=300M myquota4" /home [root@initroot ~]# xfs_quota -x -c "limit -u bsoft=250M bhard=300M myquota5" /home [root@initroot ~]# xfs_quota -x -c "report -ubih" /home User quota on /home (/dev/mapper/centos-home) Blocks User ID Used Soft Inodes Hard Warn/Grace Used Soft Hard Warn/Grace ---------- --------------------------------- --------------------------------- myquota1 12K 250M 300M 00 [------] 7 0 0 00 [------]设定好 myquotagrp 的 block 限制值
[root@initroot ~]# xfs_quota -x -c "limit -g bsoft=950M bhard=1G myquotagrp" /home [root@initroot ~]# xfs_quota -x -c "report -gbih" /home Group quota on /home (/dev/mapper/centos-home) Blocks InodesGroup ID Used Soft Hard Warn/Grace Used Soft Hard Warn/Grace ---------- --------------------------------- --------------------------------- myquotagrp 60K 950M 1G 00 [------] 36 0 0 00 [------]设定一下 grace time 变成 14 天吧!
[root@initroot ~]# xfs_quota -x -c "timer -ug -b 14days" /home [root@initroot ~]# xfs_quota -x -c "state" /home User quota state on /home (/dev/mapper/centos-home) .....(中间省略)..... Blocks grace time: [14 days 00:00:30] Inodes grace time: [7 days 00:00:30] Realtime Blocks grace time: [7 days 00:00:30]以 myquota1 用户测试 quota 是否真的实际运作呢?
[root@initroot ~]# su - myquota1 [myquota1@study ~]$ dd if=/dev/zero of=123.img bs=1M count=310 dd: error writing ‘123.img’: Disk quota exceeded 300+0 records in 299+0 records out 314552320 bytes (315 MB) copied, 0.181088 s, 1.7 GB/s [myquota1@study ~]$ ll -h -rw-r--r--. 1 myquota1 myquotagrp 300M Jul 24 21:38 123.img [myquota1@study ~]$ exit [root@initroot ~]# xfs_quota -x -c "report -ubh" /home User quota on /home (/dev/mapper/centos-home) Blocks User ID Used Soft Hard Warn/Grace ---------- --------------------------------- myquota1 300M 250M 300M 00 [13 days] myquota2 12K 250M 300M 00 [------]# 因为 myquota1 的磁盘用量已经破表,所以当然就会出现那个可怕的 grace time 啰! 这样就直接制做好 quota 啰!看起来也是挺简单啦!
Quota操作流程-4:project 的限制 (针对目录限制) (Optional)
回到顶部修改 /etc/fstab 内的文件系统支持参数
首先,要将 grpquota 的参数取消,然后加入 prjquota ,并且卸除 /home 再重新挂载才行!那就 来测试看看!
# 1. 先修改 /etc/fstab 的参数,并启动文件系统的支持
[root@initroot ~]# vim /etc/fstab /dev/mapper/centos-home /home xfs defaults,usrquota,grpquota,prjquota 0 0 # 记得, grpquota 与 prjquota 不可同时设定喔!所以上面删除 grpquota 加入 prjquota [root@initroot ~]# umount /home [root@initroot ~]# mount -a [root@initroot ~]# xfs_quota -x -c "state" User quota state on /home (/dev/mapper/centos-home) Accounting: ON Enforcement: ON Inode: #1568 (4 blocks, 4 extents) Group quota state on /home (/dev/mapper/centos-home) Accounting: OFF #已经取消啰! Enforcement: OFF Inode: N/A Project quota state on /home (/dev/mapper/centos-home) Accounting: ON #确实启动啰! Enforcement: ON Inode: N/A Blocks grace time: [7 days 00:00:30] Inodes grace time: [7 days 00:00:30] Realtime Blocks grace time: [7 days 00:00:30]规范目录、项目名称(project)与项目 ID
目录的设定比较奇怪,他必须要指定一个所谓的项目名称、项目标识符来规范才行!而且还 需要用到两个配置文件! 这个让觉得比较怪一些就是了。现在,我们要规范的目录是 /home/myquota 目录,这个目录我们给个 myquotaproject 的项目名称, 这个专案名称给个 11 的 标识符,这个都是自己指定的,若不喜欢就自己指定另一个吧!的指定方式如下:
指定项目标识符与目录的对应在 /etc/projects
[root@initroot ~]# echo "11:/home/myquota" >> /etc/projects规范专案名称与标识符的对应在 /etc/projid
[root@initroot ~]# echo "myquotaproject:11" >> /etc/projid# 2.3 初始化专案名称 [root@initroot ~]# xfs_quota -x -c "project -s myquotaproject" Setting up project myquotaproject (path /home/myquota)... Processed 1 (/etc/projects and cmdline) paths for project myquotaproject with recursion depth infinite (-1). # 会闪过这些讯息!是 OK 的!别担心! [root@initroot ~]# xfs_quota -x -c "print " /home Filesystem Pathname /home /dev/mapper/centos-home (uquota, pquota) /home/myquota /dev/mapper/centos-home (project 11, myquotaproject) # 这个 print 功能很不错!可以完整的查看到相对应的各项文件系统与 project 目录对应! [root@initroot ~]# xfs_quota -x -c "report -pbih " /home Project quota on /home (/dev/mapper/centos-home) Blocks Project ID Used Soft Inodes Hard Warn/Grace Used Soft Hard Warn/Grace ---------- --------------------------------- --------------------------------- myquotaproject 0 0 0 00 [------] 1 0 0 00 [------]# 喔耶!确定有抓到这个项目名称啰!接下来准备设定吧!
实际设定规范与测试
依据本章的说明,我们要将 /home/myquota 指定为 500M 的容量限制,那假设到 450M 为 soft的限制好了! 那么设定就会变成这样啰:
先来设定好这个 project 吧!设定的方式同样使用 limit 的 bsoft/bhard 喔!:
[root@initroot ~]# xfs_quota -x -c "limit -p bsoft=450M bhard=500M myquotaproject" /home [root@initroot ~]# xfs_quota -x -c "report -pbih " /home Project quota on /home (/dev/mapper/centos-home) Blocks Project ID Used Soft Inodes Hard Warn/Grace Used Soft Hard Warn/Grace ---------- --------------------------------- --------------------------------- myquotaproject 0 450M 500M 00 [------] 1 0 0 00 [------] [root@initroot ~]# dd if=/dev/zero of=/home/myquota/123.img bs=1M count=510 dd: error writing '/home/myquota/123.img': No space left on device 501+0 records in 500+0 records out 524288000 bytes (524 MB) copied, 0.96296 s, 544 MB/s# 你看!连 root 在该目录底下建立文件时,也会被挡掉耶!这才是完整的针对目录的规范嘛!赞! 这样就设定好了啰!未来如果你还想要针对某些个目录进行限制,那么就修改 /etc/projects, /etc/projid 设定一下规范, 然后直接处理目录的初始化与设定,就完成设定了!好简单!当跟同事分享这个 project 的功能时,强者我同事蔡董大大说,刚刚好!他有些朋友要求在 WWW 的服务中,要针对某些目录进行容量的限制! 但是因为容量之前仅针对用户进行限制,如此一来, 由于 WWW 服务都是一个名为 httpd 的账号管理的,因此所有 WWW 服务所产生的文件数据, 就 全部属于 httpd 这个账号,那就无法针对某些特定的目录进行限制了。有了这个 project 之后,就能 够针对不同的目录做容量限制! 而不用管在里头建立文件的文件拥有者!哇!这真是太棒了!实务 应用给各位了解啰! ^_^
XFS quota 的管理与额外指令对照表
回到顶部disable:暂时取消 quota 的限制,但其实系统还是在计算 quota 中,只是没有管制而已!应该算最有用的 功能啰!
enable:就是回复到正常管制的状态中,与 disable 可以互相取消、启用!
off:完全关闭 quota 的限制,使用了这个状态后,你只有卸除再重新挂载才能够再次的启动 quota 喔!也 就是说, 用了 off 状态后,你无法使用 enable 再次复原 quota 的管制喔!注意不要乱用这个状态!一般 建议用 disable 即可,除非你需要执行 remove 的动作!
remove:必须要在 off 的状态下才能够执行的指令~这个 remove 可以移除quota 的限制设定,例如要 取消 project 的设定, 无须重新设定为 0 喔!只要 remove -p 就可以了!
现在就让我们来测试一下管理的方式吧:
1. 暂时关闭 XFS 文件系统的 quota 限制功能
[root@initroot ~]# xfs_quota -x -c "disable -up" /home [root@initroot ~]# xfs_quota -x -c "state" /home User quota state on /home (/dev/mapper/centos-home) Accounting: ON Enforcement: OFF #意思就是有在计算,但没有强制管制的意思 Inode: #1568 (4 blocks, 4 extents) Group quota state on /home (/dev/mapper/centos-home) Accounting: OFF Enforcement: OFF Inode: N/A Project quota state on /home (/dev/mapper/centos-home) Accounting: ON Enforcement: OFF Inode: N/A Blocks grace time: [7 days 00:00:30] Inodes grace time: [7 days 00:00:30] Realtime Blocks grace time: [7 days 00:00:30] [root@initroot ~]# dd if=/dev/zero of=/home/myquota/123.img bs=1M count=520520+0 records in 520+0 records out # 见鬼!竟然没有任何错误发生了! 545259520 bytes (545 MB) copied, 0.308407 s, 180 MB/s [root@initroot ~]# xfs_quota -x -c "report -pbh" /home Project quota on /home (/dev/mapper/centos-home) Blocks Project ID Used Soft Hard Warn/Grace ---------- --------------------------------- myquotaproject 520M 450M 500M 00 [-none-]# 其实,还真的有超过耶!只是因为 disable 的关系,所以没有强制限制住就是了!
[root@initroot ~]# xfs_quota -x -c "enable -up" /home # 重新启动 quota 限制 [root@initroot ~]# dd if=/dev/zero of=/home/myquota/123.img bs=1M count=520 dd: error writing ‘/home/myquota/123.img’: No space left on device # 又开始有限制!这就是 enable/disable 的相关对应功能喔!暂时关闭/启动用的! # 完全关闭 quota 的限制行为吧!同时取消 project 的功能试看看! [root@initroot ~]# xfs_quota -x -c "off -up" /home [root@initroot ~]# xfs_quota -x -c "enable -up" /home XFS_QUOTAON: Function not implemented # 您瞧瞧!没有办法重新启动!因为已经完全的关闭了 quota 的功能!所以得要 umouont/mount 才行! [root@initroot ~]# umount /home; mount -a # 这个时候使用 report 以及 state 时,管制限制的内容又重新回来了!好!来瞧瞧如何移除 project [root@initroot ~]# xfs_quota -x -c "off -up" /home [root@initroot ~]# xfs_quota -x -c "remove -p" /home [root@initroot ~]# umount /home; mount -a [root@initroot ~]# xfs_quota -x -c "report -phb" /home Project quota on /home (/dev/mapper/centos-home) Blocks Project ID Used Soft Hard Warn/Grace ---------- --------------------------------- myquotaproject 500M 0 0 00 [------]# 嘿嘿!全部归零!就是移除所有限制值的意思!
请注意上表中最后一个练习,那个 remove -p 是移除所有的 project 控制列表的意思!也就是说, 如果你有在 /home 设定多个 project 的限制, 那么 remove 会删的一个也不留喔!如果想要回复设 定值,那...只能一个一个重新设定回去了!没有好办法!
上面就是 XFS 文件系统的简易 quota 处理流程~那如果你是使用 EXT 家族呢?能不能使用 quota 呢?除了参考上一版的文件之外,这里也列出相关的参考指令/配置文件案给你对照参考! 没学过的可以看看流程,有学过的可以对照了解!
^_^设定流程项目 XFS 文件系统 EXT 家族 /etc/fstab 参数设定 usrquota/grpquota/prjquota usrquota/grpquota quota 配置文件 不需要 quotacheck 设定用户/群组限制值 xfs_quota -x -c "limit..." edquota 或 setquota 设定 grace time xfs_quota -x -c "timer..." edquota 设定目录限制值 xfs_quota -x -c "limit..." 无 观察报告 xfs_quota -x -c "report..." repquota 或 quota 启动与关闭 quota 限制 xfs_quota -x -c "[disable|enable]..." quotaoff, quotaon 发送警告信给用户 目前版本尚未支持 warnquota
不更动既有系统的 quota 实例
回到顶部此外,如果你想要让使用者的邮件信箱与家目录的总体磁盘使用量为固定,那又该如何是好? 由于 /home 及 /var/spool/mail 根本不可能是同一个 filesystem (除非是都不分区,使用根目录,才有可能 整合在一起), 所以,该如何进行这样的 quota 限制呢?
其实没有那么难啦!既然 quota 是针对 filesystem 来进行限制,假设你又已经有 /home 这个独立的 分区槽了,那么你只要:
1. 将 /var/spool/mail 这个目录完整的移动到 /home 底下;
2. 利用 ln -s /home/mail /var/spool/mail 来建立链接数据;
3. 将 /home 进行 quota 限额设定
只要这样的一个小步骤,嘿嘿!您家主机的邮件就有一定的限额啰!当然啰!您也可以依据不同的使 用者与群组来设定 quota 然后同样的以上面的方式来进行 link 的动作!嘿嘿嘿!就有不同的限额针 对不同的使用者提出啰!很方便吧!^_^
Tips 朋友们需要注意的是,由于目前新的 distributions 大多有使用 SELinux 的机制, 因此你要进行如同上面的目 录搬移时,在许多情况下可能会有使用上的限制喔!或许你得要先暂时关闭 SELinux 才能测试, 也或许你得要自 行修改 SELinux 的规则才行喔!
initroot编辑整理,转载请注明www.initroot.com
100次点赞
100次阅读