第 1 章 规划 GFS2 文件系统部署

Red Hat Global File System 2 (GFS2) 是一个 64 位对称集群文件系统,它提供了一个共享名称空间,并管理共享一个常见块设备的多个节点间的一致性。GFS2 文件系统旨在提供尽量与本地文件系统类似的功能,同时在节点间强制实施完整集群一致性。为达到此目的,节点在文件系统资源中使用集群范围的锁定方案。这个锁定方案使用 TCP/IP 等通讯协议来交换锁定信息。

在某些情况下,Linux 文件系统 API 不允许具有集群特性的 GFS2 完全透明。例如,在 GFS2 中使用 POSIX 锁定的程序应该避免使用 GETLK 功能,因为在集群的环境中,该进程 ID 可能用于集群中的不同节点。然而,多数情况下 GFS2 文件系统的功能和本地文件系统的功能是一样的。

Red Hat Enterprise Linux (RHEL) Resilient Storage Add-On提供 GFS2,它依赖于 RHEL High Availability 附加组件来提供 GFS2 所需的集群管理功能。

gfs2.ko 内核模块实现 GFS2 文件系统,并加载在 GFS2 集群节点上。

要获得最佳 GFS2 性能,请务必考虑基础设计中给出的性能注意事项。和本地文件系统一样,GFS2 依赖于页面缓存以便通过本地缓存来提高经常使用数据的性能。为了在集群中的节点间保持一致性,缓存控制由 glock 状态机器提供。

重要

请确定您部署的 Red Hat High Availability Add-On红 满足您的需要并可支持。部署前请咨询权威红帽代表确认您的配置。

1.1. GFS2 文件系统格式版本 1802

从 Red Hat Enterprise Linux 9 开始,使用格式 1802 创建 GFS2 文件系统。

格式版本 1802 启用以下功能:

  • trusted 命名空间的扩展属性 ("trusted.* xattrs") 可被 gfs2gfs2-utils 识别。
  • rgrplvb 选项默认为活动状态。这允许 allowgfs2 将更新的资源组数据附加到 DLM 锁定请求,因此获取锁定的节点不需要从磁盘更新资源组信息。这在某些情况下提高了性能。

使用新格式版本创建的文件系统将无法安装在较早的 RHEL 版本下,并且较旧版本的 fsck.gfs2 实用程序将无法检查它们。

用户可以运行带有 -o format=1801 选项的 mkfs.gfs2 命令,创建采用较旧版本的文件系统。

用户可以在卸载的文件系统中通过运行 tunegfs2 -r 1802 device 来升级旧文件系统的格式版本。不支持降级格式版本。