第 4 章 GFS2 配额管理
文件系统配额是用来限制某个用户或者组群使用的文件系统空间。在设置前用户或组群没有配额限制。当使用 quota=on
或 quota=account
选项挂载 GFS2 文件系统时,GFS2 会跟踪每个用户和组群使用的空间,即使没有设定限制也是如此。GFS2 以互动的方式更新配额信息,因此系统崩溃并不需要重建配额使用。为防止性能下降,GFS2 节点只会定期同步配额文件更新。模糊配额核算可让用户或组群稍微超过其设定的限制。为最小化这种情况,GFS2 会在接近硬配额限制时动态缩短同步周期。
GFS2 支持标准 Linux 配额工具。要使用这个功能,您需要安装 quota RPM。这是在 GFS2 中管理配额的首选方法,应该在所有使用配额的 GFS2 新部署中使用。
有关磁盘配额的详情,请查看以下命令的man
页:
-
quotacheck
-
edquota
-
repquota
-
quota
4.1. 配置 GFS2 磁盘配额
要为 GFS2 文件系统实现磁盘配额,请执行三个步骤:
实现磁盘配额的步骤如下:
- 使用强制模式或者计数(accounting)模式设置配额。
- 使用当前块使用信息初始化配额数据库文件。
- 分配配额策略。(在计数模式中不强制这些策略。)
在以下小节中会详细讨论这些步骤的具体内容。
4.1.1. 在强制或者计数模式下设置配额
在 GFS2 文件系统中,默认会禁用配额。要为文件系统启用配额,请使用指定的 quota=on
选项挂载文件系统。
要挂载启用配额的文件系统,在集群中创建 GFS2 文件系统资源时,为 options
参数指定 quota=on
。例如:以下命令指定正在创建的 GFS2 Filesystem
资源将使用启用配额挂载。
# pcs resource create gfs2mount Filesystem options="quota=on" device=BLOCKDEVICE directory=MOUNTPOINT fstype=gfs2 clone
可以跟踪磁盘用量,并在不强制限制和警告值的情况下为每个用户和组群保持配额核算。为此,请使用指定的 quota=account
选项挂载文件系统。
要挂载禁用配额的文件系统,在集群中创建 GFS2 文件系统资源时,为 options
参数指定 quota=off
。
4.1.2. 创建配额数据库文件
挂载每个启用了配额的文件系统后,该系统就可以使用磁盘配额。但是,文件系统本身尚未准备好支持配额。在下一步中运行 quotacheck
命令。
quotacheck
命令检查启用了配额的文件系统,并为每个文件系统构建一个当前磁盘使用情况的表。该表被用于更新磁盘用量的操作系统副本。另外,还会更新文件系统的磁盘配额文件。
要在文件系统上创建配额文件,请使用 quotacheck
命令的 -u
和 -g
选项;必须指定这两个选项以便初始化用户和组配额。例如,如果为 /home
文件系统启用配额,请在 /home
目录中创建文件:
# quotacheck -ug /home
4.1.3. 为每个用户分配配额
最后一步是使用 edquota
命令分配磁盘配额。请注意,如果您以计数模式挂载文件系统(指定了 quota=account
选项),则不强制配额。
要为一个用户配置配额,在 shell 提示符中以 root 用户执行以下命令:
# edquota username
为每个需要配额的用户执行这个步骤。例如,如果为 /home
分区(以下示例中的 /dev/VolGroup00/LogVol02
)启用了配额,并且执行了命令 edquota testuser
,则在编辑中显示为系统默认设置:
Disk quotas for user testuser (uid 501): Filesystem blocks soft hard inodes soft hard /dev/VolGroup00/LogVol02 440436 0 0
edquota
使用由 EDITOR
环境变量定义的文本编辑器。要更改编辑器,请将 ~/.bash_profile
文件中的 EDITOR
环境变量设为您选择的编辑器的完整路径。
第一列是启用了配额的文件系统的名称。第二列显示目前该用户使用的块数。下面的两列是为该用户在文件系统中设定软限制和硬限制。
软块限制定义可以使用的最大磁盘空间量。
硬块限制是用户或者组群可以使用的绝对最大磁盘空间量。达到这个限制后,就无法再使用其他磁盘空间。
GFS2 文件系统并不为内节点维护配额,因此这些列不适用于 GFS2 文件系统,并为空。
如果值为 0,则代表没有设定那个限制。在文本编辑器中更改限制。例如:
Disk quotas for user testuser (uid 501): Filesystem blocks soft hard inodes soft hard /dev/VolGroup00/LogVol02 440436 500000 550000
要验证是否为该用户设定了配额,使用以下命令:
# quota testuser
您也可以使用 setquota
命令从命令行设置配额。有关 setquota
命令的详情,请查看 setquota
(8)手册页。
4.1.4. 为每个组群分配配额
配额可以针对单独组群进行分配。请注意:如果您使用计数模式挂载文件系统(指定 account=on
选项),则不强制配额。
要为 devel
组设置组配额(在设置组群配额前必须存在组配额),请使用以下命令:
# edquota -g devel
这个命令在文本编辑器中显示该组群的现有配额:
Disk quotas for group devel (gid 505): Filesystem blocks soft hard inodes soft hard /dev/VolGroup00/LogVol02 440400 0 0
GFS2 文件系统并不为内节点维护配额,因此这些列不适用于 GFS2 文件系统,并为空。修改限制后保存文件。
要验证是否设定了组群配额,使用以下命令:
$ quota -g devel