第 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 参数
在安装和配置 GFS2 文件系统前,您应该规划很多关键的 GFS2 参数。
- GFS2 节点
- 决定集群中的哪些节点将挂载 GFS2 文件系统。
- 文件系统的数量
- 决定初始创建多少个 GFS2 文件系统。之后,可以添加更多文件系统。
- 文件系统名称
-
每个 GFS2 文件系统都应该有一个唯一的名称。这个名称通常与 LVM 逻辑卷名称相同,在挂载 GFS2 文件系统时可作为 DLM 锁定表名称使用。例如,本指南在一些示例流程中使用文件系统名
mydata1
和mydata2
。 - Journals(日志)
-
决定 GFS2 文件系统的日志数。GFS2 需要集群中的每个需要挂载文件系统的日志的节点都具有一个日志。例如,如果您有一个 16 个节点的集群,但只需要从两个节点挂载文件系统,则只需要两个日志。GFS2 允许您之后使用
gfs2_jadd
工具在其它服务器挂载文件系统时动态添加日志。 - 存储设备和分区
-
确定用于在文件系统中创建逻辑卷(使用
lvmlockd
)的存储设备和分区。 - 时间协议
请确定 GFS2 节点中的时钟是同步的。推荐使用 Precision Time Protocol (PTP),或在如果需要,使用由您的 Red Hat Enterprise Linux 系统提供的 Network Time Protocol (NTP) 软件。
不同 GFS2 节点间的系统时钟必须保持在几分钟内,以防止不必要的内节点(inode)时间戳更新。不必要的内节点时间戳更新会严重影响集群的性能。
当同时在同一目录中执行多个生成和删除操作时,GFS2 可能会出现性能问题。如果在系统中造成性能问题,您应该尽可能将节点创建和删除的文件本地化到特定于该节点的目录。