XFS 配额挂载选项
XFS 文件系统的其他“配额”挂载选项可用。
以下是在 XFS 文件系统上启用用户配额的挂载选项的完整列表:
- quota|uquota|usrquota :启用用户配额并强制使用限制。
- uqnoenforce :启用用户配额。报告使用情况但不强制执行使用限制。
组配额挂载选项包括以下内容:
- gquota|grpquota :启用组配额并强制使用限制。
- gqnoenforce :启用组配额。报告使用情况但不强制执行使用限制。
项目配额挂载选项包括以下内容:
- pquota|prjquota :启用项目配额并强制执行使用限制。
- pqnoenforce :启用项目配额。报告使用情况但不强制执行使用限制。
XFS 支持按用户、组和项目的磁盘配额。
项目磁盘配额允许我们限制单个目录层次结构上的磁盘空间量。
我们可以对磁盘块数(或者磁盘空间)和 inode 数配置硬限制和软限制,这限制了用户可以创建的文件数。
配额不适用于 root 用户。
在挂载 XFS 文件系统时,我们必须首先使用挂载选项为用户、组和/或者项目启用配额。
启用配额后,使用 xfs_quota 命令设置限制,查看配额信息。
xfs_quota 实用程序
使用 XFS 文件系统挂载选项启用配额后,使用 xfs_quota 命令报告文件系统配额信息,设置块和 inode 限制,启用或者禁用配额强制,修改配额强制超时信息(宽限期),以及执行其他配额管理XFS 文件系统上的操作。
xfs_quota 实用程序提供了许多用户和管理员子命令。
这些子命令可以以交互模式发出或者作为参数包含在 xfs_quota 命令中。
输入不带任何选项或者参数的 xfs_quota 以进入交互模式。
xfs_quota> 提示出现在交互模式中。
输入帮助或者?
查看可用的子命令。
我们还可以输入 help commandname 以显示有关特定子命令的添加信息。
# xfs_quota xfs_quota> help df [-bir] [-hn] [-f file] -- show free and used counts for blocks and inodes help [command] -- help for one or all commands print -- list known mount points and projects quit -- exit the program quota [-bir] [-g|-p|-u] [-hnNv] [-f file] [id|name]... -- show usage and limits Use 'help commandname' for extended help.
从命令行包含 xfs_quota 子命令时,请使用 -c [command] 选项。
从命令行对配额系统进行的任何修改也需要 -x 选项(启用专家模式)。
以下示例使用 limit 子命令为用户 john 在 XFS 文件系统上设置 5 MB 的软限制和 6 MB 的硬限制:
# xfs_quota -x -c 'limit -u bsoft=5m bhard=6m john' /xfs
以下示例为学生组设置了 100 个 inode 的软限制和 150 个 inode 的硬限制:
# xfs_quota -x -c 'limit -g isoft=100 ihard=150 students' /xfs
报告配额状态信息
我们可以使用以下 xfs_quota 命令报告整体配额状态信息:
# xfs_quota -x -c state User quota state on /data (/dev/mapper/vg_test-lv_test) Accounting: ON Enforcement: ON Inode: #67 (1 blocks, 1 extents) Group quota state on /data (/dev/mapper/vg_test-lv_test) Accounting: OFF Enforcement: OFF Inode: #0 (0 blocks, 0 extents) Project quota state on /data (/dev/mapper/vg_test-lv_test) Accounting: OFF Enforcement: OFF Inode: #0 (0 blocks, 0 extents) Blocks grace time: [7 days] Inodes grace time: [7 days] Realtime Blocks grace time: [7 days]
此命令报告是否启用了用户、组和项目磁盘配额记帐以及是否正在实施限制。
还会报告块和 inode 的宽限期。
只要超出软限制,就会启用宽限期的计时器。
如果在宽限期到期后继续超出软限制,则不会分配更多磁盘空间或者 inode。
设置项目配额
XFS 允许我们在单个目录层次结构上设置配额。
我们可以在 /etc/projects 文件中创建一个条目,将 XFS 文件系统目录层次结构与唯一的项目 ID 关联起来。
例如,/etc/projects 中的以下条目将项目 ID 50 与 /data 目录相关联:
50:/data
我们可以选择使用 /etc/projid 文件将项目名称与项目 ID 相关联。
例如,/etc/projid 文件中的以下条目将项目名称 test 与项目 ID 50 相关联:
test:50
在 /etc/projects 定义项目后,使用 xfs_quota 命令初始化其项目目录:
# xfs_quota -x -c 'project -s test' /data
使用 xfs_quota 命令为具有初始化目录的项目设置限制。
以下示例为测试项目设置了 5 MB 的软限制和 6 MB 的硬限制:
# xfs_quota -x -c ‘limit -p bsoft=5m bhard=6m test’ /data
显示配额信息
使用 xfs_quota 命令显示有关磁盘配额的信息。
列出所有带有设备和标识符的路径:
# xfs_quota -x -c print Filesystem Pathname /data /dev/mapper/vg_test-lv_test (uquota)
报告块 (-b) 和 inode (-i) 的文件系统使用情况:
# xfs_quota -x -c 'free -hb' Filesystem Size Used Avail Use% Pathname /dev/mapper/vg_test-lv_test 35.5G 41.1M 35.4G 0% /data
# xfs_quota -x -c 'free -hi' Filesystem Inodes Used Free Use% Pathname /dev/mapper/vg_test-lv_test 18.6m 5 18.6m 0% /data
报告文件系统配额信息:
# xfs_quota -x -c report /data User quota on /data (/dev/mapper/vg_test-lv_test) Blocks User ID Used Soft Hard Warn/Grace ---------- -------------------------------------------------- root 4 0 0 00 [--------]
要在 /data 上以人类可读的形式报告配额信息:
# xfs_quota -x -c 'report -h' /data User quota on /data (/dev/mapper/vg_test-lv_test) Blocks User ID Used Soft Hard Warn/Grace ---------- --------------------------------- root 4K 0 0 00 [------]
启用配额
要为 XFS 文件系统上的用户启用配额,请在文件系统的 /etc/fstab 条目中包含配额选项,或者使用配额选项挂载文件系统:
# mount -o quota /dev/xvdb1 /xfs
要为组启用配额,请在文件系统的 /etc/fstab 条目中包含 gquota 选项,或者使用 gquota 选项挂载文件系统:
# mount -o gquota /dev/xvdb1 /xfs
要为项目启用配额,请在文件系统的 /etc/fstab 条目中包含 prjquota 选项,或者使用 prjquota 选项挂载文件系统:
# mount -o prjquota /dev/xvdb1 /xfs
或者,我们可以在 /etc/fstab 文件中包含配额挂载选项。
以下示例显示了 /etc/fstab 文件中的条目,用于分别为 XFS 文件系统上的用户、组和项目启用配额。
这些示例还使用读/写权限挂载文件系统:
# vim /etc/fstab /dev/xvdb1 /xfs xfs rw,quota 0 0 /dev/xvdb1 /xfs xfs rw,gquota 0 0 /dev/xvdb1 /xfs xfs rw,prjquota 0 0