Linux 系统的磁盘配额详解

华宰 发布于 2011/06/19 15:08
阅读 810
收藏 4

磁盘配额这个东东还好理解吧!就是针对系统上的用户或组做配额,就像我们日常使用的免费邮箱,容量都是有上限的;或者像本站所在的虚拟空间,给我的 空间是300M,这也是针对我的个人账号做的配额。换个角度讲,因为Linux是多用户操作系统,如果每个人在使用自己的账户的时候,都喜欢在自己的宿主 目录里面存储一些音乐、电影和软件之类的东西,万一某个用户占用了整个文件的空间,那其他的用户岂不是没法写入自己的文件了!以上例子说明,在一个多用户 系统上,尤其是用户数量庞大的系统,针对每个用户做磁盘配额是很有必要的!

对于Linux的磁盘配额的配置,主要分三步走:

  1. 开启文件系统的磁盘配额功能
    因为quota是针对独立的文件系统的,可以理解为某个分区。要想打开文件系统的配额功能,需要手动开启文件系统对quota的支持,可以即时重新挂载或 者编辑/etc/fstab文件使系统开机支持。以/home分区为例,当然这个分区要是单独的文件系统,对/分区做配额是绝对不推荐的。如果只是为了实 验,并不要求系统开机支持磁盘配额,可以采用重新挂载的方法,运行命令
    #mount -o remount,usrquota,grpquota /home //重新挂载分区使其支持磁盘配额功能
    #mount | grep home //检查home分区是否支持了配额功能
    /dev/sda3 on /home type ext4 (rw,usrquota,grpquota)
    看到上面一行的内容则表示/home分区已对配额支持,其中usrquota表示对本地账户开启quota,而grpquota表示对对本地用户组开启 quota。但是这些只是写在缓存的,系统重启后就失效了,若是想要系统重启后仍然有效,修改/etc/fstab即可,如下所示:
    /dev/sda3 /home ext4 defaults,usrquota,grpquota 0 2
    当然,编辑完fstab文件可以先卸载/home分区再重新挂载测试一下,一面修改错误以至于开机出现问题。
  2. 创建quota配置文件
    以上修改只是保证/home分区支持了quota,但并不表示可以设置磁盘配额了。此时需要在该分区创建磁盘配额配置文件,这些配置文件记录的就是这个文 件系统内各个账户和用户组拥有的文件总量和文件大小,以下对配额的设置也是写在这些配置文件里面的。此时就需要运行命令quotacheck命令扫描文件 系统并创建quota配置文件,一般情况下命令的格式如下所示:
    #quotacheck [-avug] [/mount_point]
    -a:表示扫描所有当前系统所挂载的支持quota的文件系统,当然,有了这个选项后后面就不许要写挂载点/mount_point了,如若只想扫描单个分区就不要用着个选项了,后面要跟上明确的挂载点。
    -v:这个选项就是显示命令执行过程的信息,很多命令里面这个选项基本上就是这个目的,没有也可。
    -u:针对用户扫描文件与目录等的使用情况,会在该分区新建aquota.user文件。
    -g:与-u类似,只是针对的用户组而已,会新建aquota.group文件。
    默认情况下直接执行#quotacheck -avug即可,除非只想针对个别分区进行扫描。此时若在该分区生成aquota.user和aquota.group文件,表示已经可以在这个分区针对用户和用户组设置配额了。
  3. 设置用户或组的配额第一列表示文件系统喽,第二列的blocks则表示user在此分区所拥有的文件与目录所占空间,我们不可更改它。soft和 hard分别表示软限制和硬限制,写入时若文件大小超过软限制系统会报警告,但仍可写入,而超过硬限制则会报错,停止写入,文件总量大小不可超过硬限制。 indoes则表示文件的个数,我们一般不用管它。对于blocks的设置,单位是kb,上下两行一次对应即可,不用对齐,而后面inodes的单位是个 数,保持默认即可。
    当然,生成了配置文件就可以对用户和用户组设置配额了。配额的开启与关闭与其他的服务不同。开启和关闭的命令分别如下所示:
    #quotaon [-avug] [/mount_point]
    #quotaoff [-avug] [/mount_point]
    各选项的意义和quotacheck命令的选项意义相同,且这两条指令运行后立即生效,不会受系统重启的影响。设置用户和用户组的方式如下所示:
    #edquota [-u username] [-g groupname]
    不用我说,-u和-g的意思不言而喻。加入针对用户user设置磁盘配额:#edquota -u user,此时会看到一个vi编辑的界面:
    Filesystem blocks soft hard inodes soft hard
    /dev/sda3  20   0  0   8  0  0
    第一列表示文件系统喽,第二列的blocks则表示user在此分区所拥有的文件与目录所占空间,我们不可更改它。soft和hard分别表示软限制和硬 限制,写入时若文件大小超过软限制系统会报警告,但仍可写入,而超过硬限制则会报错,停止写入,文件总量大小不可超过硬限制。indoes则表示文件的个 数,我们一般不用管它。对于blocks的设置,单位是kb,上下两行一次对应即可,不用对齐,而后面inodes的单位是个数,保持默认即可。保存退出 即可,此时针对用户的quota会立即生效。

以上是设置磁盘配额的简单步骤,当然还有一些稍微复杂的功能,我就不再深入写下去了。后面需要做的就是验证了,可以转换到账户进行测试,复制大文件或者用dd命令生成大文件均可。

文章来源:I See Linux

加载中
0
无创洪
无创洪
红帽企业版6.0 磁盘配额设置完成, 重启后,又得手动运行 quotaon  -avug 命令才能开启配额,怎么解决这个问题啊
返回顶部
顶部