最新消息:七维网络改版啦,域名www.7dwww.com

Linux如何设置磁盘配额

网络技术 admin 1931浏览 0评论

Linux如何设置磁盘配额

当Linux根分区的磁盘空间耗尽时,Linux系统将无法再建立新的文件(包括程序运行的临时文件),从而出现服务程序崩溃、系统无法启动等故障现象。为了避免在服务器中出现类似的磁盘空间不足的问题,可以设置启用磁盘配额功能,对用户在指定文件系统(分区)中使用的磁盘空间、文件数量进行设置,以防止个别用户恶意或无意间占用大量磁盘空间,从而保持系统存储空间的稳定性和持续可用性。

在RHEL6系统中,内核已经制定了支持Linux文件系统的磁盘配额功能,而且在系统中默认安装了quota软件包,用于配置和管理磁盘配额。

通过以下操作可以确认quota软件包的安装情况,并列表查看quota软件包安装的配额管理程序。

图示:

Linux如何设置磁盘配额

一、磁盘配额概述

实现磁盘限额的条件

  • 需要 Linux 内核支持
  • 安装 quota 软件包

磁盘配额的限制对象

  • 只在指定的文件系统(分区)内有效,用户使用其他未设置配额的文件系统时,将不会受到限制。

磁盘配额的限制对象

  • 主要针对指定的用户帐号、组帐号进行限制,没有被设置限额的用户或组将不受影响。对组账号设置配额后,组内所有用户使用的磁盘容量、文件数量的总和不能超过限制。

磁盘配额的限制类型

  • 磁盘容量:限制磁盘数据块(Block)大小,也就是磁盘空间大小(默认单位为 KB)
  • 文件数量:限制用户能够拥有的文件个数。在Linux系统中,每一个文件都有一个对应的数字标记,称为i节点(Inode)编号,这个编号在同一个文件系统内是唯一的,一次quota通过限制i节点的数量来实现对文件数量的限制

磁盘配额的限制方法

  • 软限制:指定一个软性的配额数值,在固定的宽限期(默认为7天)内允许暂时超过这个限制,但系统会给出警告信息。(通俗的说就是有的商量,不会一下子就不能用了)
  • 硬限制:指定一个硬性的配额数值,是绝对禁止用户超过的限制值,当达到硬限制值时,系统也会给出警告并禁止继续写入数据。硬限制的配额值大于相应的软限制值,否则软限制将失效。(通俗的说就是没得商量,给你规定多少就是多少,达到上限立马咔嚓)

二、基本步骤

下面先通过一个步骤图来了解一下整个思路

Linux如何设置磁盘配额

接下来我们分开详细了解一下各个步骤

1.以支持配额功能的方式挂载文件系统

除了内核和quota软件的支持以外,实施磁盘配额功能还有一个前提条件,即指定的分区必须已经挂载且支持磁盘配额功能

在配置调试过程中,可以使用带”-o usrquota,grpquota”选项的mount命令重新挂载指定的分区,以便增加对用户、组配额功能的支持。对于支持配额功能的文件系统,将在mount信息中显示”usrquota,grpquota”。

图示:添加 usrquota、grpquota 挂载参数,remount参数是重新挂载的意思

Linux如何设置磁盘配额

若需要在每次开机后自动挂载,可以将挂载参数写入到”/etc/fstab”文件中(如下图)。

图示:

Linux如何设置磁盘配额

注:示例中/dev/mail_store/mbox及/mailbox是上个文档中分享时示例中创建的逻辑卷和挂载点,我就顺便拿来做示例,如果有兴趣可以自己随便再创个分区,名字可以随便起的(随机应变)。

2.检测磁盘配额并生成配额文件

使用quotacheck命令可以对指定的文件系统进行磁盘配额检测,也可以用来建立配额文件。

命令格式:(如下图)

Linux如何设置磁盘配额

示例图示:

Linux如何设置磁盘配额

注:出现”Old file not found”之类的提示信息时,是正常的,是由于/mailbox文件系统中并未使用较早版本的配额文件。

如上图看到的一样,当用quotacheck命令建立完配额文件之后,会在分区的挂载点下(该文件系统的跟目录)出现两个文件”aquota.user和aquota.group”,这两个文件就是配额文件,分别用来保存用户、组的配额设置。默认权限为600。

3.编辑用户和组账号的配额设置

编辑配额使用的命令是edquota,结合”-u,-g”分别用于编辑用户和组的配额设置。只需修改相应的soft、hart列下的值,其他的数值或文字不要修改。

命令格式:

Linux如何设置磁盘配额

示例图示:

Linux如何设置磁盘配额
Linux如何设置磁盘配额

注:默认单位是KB,可以输入80M或100M来代替80000和100000。

软限制的宽限期默认为7天,若需要修改期限,可以执行”edquota -t”命令进行调整。宽限期的时间单位可以是天、小时、分或秒。(如下图)

图示:

Linux如何设置磁盘配额

4.启动文件系统的磁盘配额功能

使用的命令是”quotaon(启动)、quotaoff(关闭)”,需要指定设备文件名或文件系统的挂载点目录作为命令参数。quotaon命令使用的quotacheck的选项类似。

图示:

Linux如何设置磁盘配额

5.验证磁盘配额功能

使用受配额限制的用户账号登录

必须切换到设置配额的分区(挂载目录)

创建指定数量的文件:使用 touch 命令,或 cp 命令

创建指定容量的文件:使用 dd 命令,或 cp 命令

图示:

Linux如何设置磁盘配额

关于dd命令,dd命令是一个设备转换和复制命令,分别使用”if=指定的输入设备或文件”,”of=指定的输出设备或文件”,”bs=指定读取数据块的大小”,”count=指定读取数据块的数量”。上图操作的意思可以粗略的理解为:向/mailbox目录下写入一个名为myfile的测试文件,大小为110M(分110次读取,每次读取1M),复制来源为设备文件”/dev/zero”。

6.查看用户或分区的配额使用情况

  • 侧重用户、组帐号角度:使用quota命令

quota -u 用户名

quota -g 组名

  • 侧重文件系统角度:使用repquota

图示:

Linux如何设置磁盘配额

转载请注明:七维网络 » Linux如何设置磁盘配额

头像
发表我的评论
取消评论

Captcha Code

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址