3.3. XFS 配额管理
XFS 配额子系统管理磁盘空间(块)和文件(inode)使用情况的限制。XFS 配额控制或报告在用户、组、目录或项目级别使用这些项目的使用情况。此外,请注意,尽管用户、组、目录或项目配额是独立启用的,但组和项目配额是互斥的。
在按目录或按项目管理时,XFS 管理与特定项目关联的目录层次结构的磁盘使用情况。为此,XFS 可以识别项目之间的跨组织的"组"边界。这提供了比管理用户或组配额更广泛的控制级别。
XFS 配额在挂载时通过特定的挂载选项启用。每个挂载选项也可以指定为 noenforce; 这允许在不强制实施任何限制的情况下报告使用情况。有效的配额挂载选项有:
- uquota/uqnoenforce: 用户配额
- gquota/gqnoenforce: 组配额
- pquota/pqnoenforce: 项目配额
启用配额后,xfs_quota 工具可用于设置限制并报告磁盘使用情况。默认情况下,xfs_quota 以交互方式运行,并以 基本模式。基本模式子命令只是报告使用情况,适用于所有用户。基本 xfs_quota 子命令包括:
- quota username/userID
- 显示给定 username 或数字 userID的使用情况和限制
- df
- 显示块和 inode 的空闲和已使用数。
相反,xfs_quota 也具有 专家模式。此模式的子命令允许实际限制的配置,并且仅可提供给具有升级特权的用户使用。要以交互方式使用专家模式子命令,请使用以下命令:
#
xfs_quota -x
专家模式子命令包括:
- report /path
- 报告特定文件系统的配额信息。
- limit
- 修改配额限制。
如需基本或专家模式的子命令的完整列表,请使用子命令 help。
所有子命令也可以使用 -c 选项直接从命令行运行,而 -x 用于专家子命令。
例 3.2. 显示示例配额报告
例如,要显示
/home
的配额报告示例(在 /dev/blockdevice
上),请使用命令 xfs_quota -x -c 'report -h' /home。此时会显示类似如下的输出:
User quota on /home (/dev/blockdevice) Blocks User ID Used Soft Hard Warn/Grace ---------- --------------------------------- root 0 0 0 00 [------] testuser 103.4G 0 0 00 [------] ...
要为用户
john
设置软和硬内节点计数限制为 500 和 700,其主目录为 /home/john
,请使用以下命令:
#
xfs_quota -x -c 'limit isoft=500 ihard=700 john' /home/
在这种情况下,传递 mount_point,这是挂载的 xfs 文件系统。
默认情况下,limit 子命令将目标识别为用户。在为组配置限制时,请使用 -g 选项(如上例中所示)。同样,将 -p 用于项目。
也可以使用 bsoft 或 bhard 而不是 isoft 或 ihard 来配置软和硬块限制。
例 3.3. 设置 Soft 和 Hard Block Limit
例如,要将软和硬块限制分别设置为 1000m 和 1200m,来对
/target/path
文件系统上的 accounting
进行分组,请使用以下命令:
#
xfs_quota -x -c 'limit -g bsoft=1000m bhard=1200m accounting' /target/path
注意
命令 bsoft 和 bhard 计数为字节。
重要
虽然 man xfs_quota 中描述了实时块(rtbhard/rtbsoft),但在设置配额时,不会启用实时子卷。因此,rtbhard 和 rtbsoft 选项不适用。
设置项目限制
使用 XFS 文件系统,您可以在称为受管树的文件系统中单独目录层次结构上设置配额。每个受管树都通过 项目 ID 和可选项目名称 唯一标识。
- 将项目控制的目录添加到
/etc/projects
。例如,以下命令将唯一 ID 为 11 的/var/log
路径添加到/etc/projects
。您的项目 ID 可以是任何映射到项目的数字值。#
echo 11:/var/log >> /etc/projects - 将项目名称添加到
/etc/projid
,将项目 ID 映射到项目名称。例如,以下命令将名为 logfiles 的项目与上一步中定义的项目 ID 11 关联:#
echo logfiles:11 >> /etc/projid - 初始化项目目录。例如,以下命令初始化项目目录
/var
:#
xfs_quota -x -c 'project -s logfiles' /var - 为使用初始化目录的项目配置配额:
#
xfs_quota -x -c 'limit -p bhard=lg logfiles' /var
通用配额配置工具(例如quota、picquota 和 edquota )也可用于操作 XFS 配额。但是这些工具不能用于 XFS 项目配额。
重要
红帽建议在所有其他可用工具中使用 xfs_quota。
有关设置 XFS 配额的更多信息,请参阅 man xfs_quota、man projid (5) 和 man projects (5)。