感谢支持
我们一直在努力

Linux磁盘限额(quota)

一、准备


Linux发行版:SUSE Linux Enterprise Server 10 (X86_64);Kernel 2.6.16-0.21;新添加了2块SCSI硬盘(sdb和sdc);一块IDE硬盘(hda)。


Linux磁盘限额(quota)


quota软件。


通过rpm –qa | grep quota可以查看是否安装了quota软件,一般默认都是安装的。


Linux磁盘限额(quota)


二、对添加的硬盘进行分区(以sdb为例,把它做成一个分区)并添加磁盘配额参数


键入命令fdisk /dev/sdb,键入n新建一个分区,键入p选择新建主分区。这里我填1,接下来选择扇区的起始,我从1开始,选择扇区的结束,默认的全部。在键入w将这些信息写入磁盘分区表。在调用mkfs.ext3 /dev/sdb1格式化分区为ext3文件系统格式。同一步骤对sdc,hda进行分区。


Linux磁盘限额(quota)


分区结果如图:可以看出,其中sdb1和sdc1是刚分区的两个SCSI磁盘,hda1是IDE硬盘。


Linux磁盘限额(quota)


下来,我们要把sdb1挂载在/disk1目录下,把sdc1挂载在/disk2目录下,将hda1挂载在/disk3目录下,在启动操作系统的时候自动挂载这几个磁盘,并且加上磁盘配额的相关参数以确保可以在这几个磁盘上实现磁盘配额功能。先在根目录下建立disk1,disk2,disk3这三个文件夹。再编辑/etc/fstab文件,添加下面相关3,4,5行内容,其中usrquota和grpquota就是磁盘的磁盘配额参数:


Linux磁盘限额(quota)


保存退出重启操作系统。进入操作系统执行df –l可以看到磁盘已经正确挂载到对应目录下。由于quota实际运行的时候读取的是/etc/mtab文件,所以我们重启下操作系统,让/etc/mtab文件从/etc/fstab文件进行更新,可以查看/etc/mtab内容看磁盘配额参数是否已经更新:


Linux磁盘限额(quota)

三、执行quotacheck -avug扫描磁盘分析使用者使用情况,生成aquota.group 与 aquota.user文件,每个有磁盘配额参数的磁盘分区下都生成这两个文件。


Linux磁盘限额(quota)


四、启动quota,编辑使用者的使用空间。


Linux磁盘限额(quota)


这样,就在三个磁盘分区上启动了磁盘配额功能。


新建用户组,用户。


Linux磁盘限额(quota)


为用户分配磁盘配额容量edquota –u user1:


Linux磁盘限额(quota)

说明:Filesystem对应的分区,blocks是指用户在这个分区上所消耗的容量,也就是已经使用的空间大小单位是Kbytes,这个是quota自动算出来的,所以不要去修改它,soft和hard是用户在这个分区上的限制值,soft最低限制容量,在宽限时间内,使用者使用的空间容量可以超过soft的值,但是在宽限时间结束前必须要将使用的容量降低到soft容量值以下,hard是严格限制的容量,就是说使用者绝对不能超过的使用容量。通常会设置hard的数值比soft的数值高,这样在使用者使用容量超过soft数值时可以对使用者进行警告,inodes是目前使用掉的inode状态,比较难控制,所以不用管,也是由quota自己计算的。


设置宽限时间:edquota -t将默认的7天时间修改为1天。保存退出。


Linux磁盘限额(quota)


查看用户的磁盘配额信息:quota –vu user1。这里注意,由于用户使用的空间没有超过soft的数值,所以grace(宽限时间)没有启动,当使用空间超过soft没有超过hard的数值时,grace会自动启动。当使用空间降低到soft以下时,grace又会自动关闭。


Linux磁盘限额(quota)


下来切换到user1用户,复制文件到/disk1下看看包括29个文件和一个文件夹使用容量没有超过soft数值。


Linux磁盘限额(quota)


继续复制,当使用容量超过soft数值时,会出现一个警告用户使用的容量已经超过了限制,磁盘配额的宽限时间会自动启动,刚才设置的是一天,所以这里是24小时。


Linux磁盘限额(quota)


继续复制,当超过hard的数值时,会提示写出错,用户使用的容量已经达到了严格限制的容量。


Linux磁盘限额(quota)


查看用户的磁盘配额信息,会发现grace的值没有了,这是一个奇怪的问题,大概程序这块有点问题,没有考虑到使用的空间容量等于hard的数值时该怎么办:


Linux磁盘限额(quota)


最后复制的那个文件有一部分写到了磁盘上,有一部分没有写到磁盘上,所以这是个损坏的文件。可以看看这个文件的大小:


Linux磁盘限额(quota)


可以看到最后一个文件的大小和其他正常的不一样大。


五、收尾


1、群组的磁盘配额和用户的设置方法类似,只是把-u 变成-g就行了。群组的磁盘配额是群组里的用户共用的容量。


2、当用户和它所在的组都设置了磁盘配额时,quota会取小的,就是最先达到限制数值的起作用。


3、复制用户的磁盘配额信息给别的用户:edquota –p user1 user2


4、开机自启动:在/etc/rc.d/rc.local文件里面加上/sbin/quotaon -aug

赞(0) 打赏
转载请注明出处:服务器评测 » Linux磁盘限额(quota)
分享到: 更多 (0)

听说打赏我的人,都进福布斯排行榜啦!

支付宝扫一扫打赏

微信扫一扫打赏