Menu Close

2.4. 使用 GFS2 设置 NFS

由于 GFS2 锁定子系统及其集群性质增加了复杂性,因此通过 GFS2 设置 NFS 需要花费很多问题。

警告

如果导入了 GFS2 文件系统,则必须使用 localflocks 选项挂载文件系统。因为使用 localflocks 选项可防止您从多个位置安全地访问 GFS2 文件系统,因此无法同时从多个节点导出 GFS2。在使用此配置时,在同一时间只在一个节点上挂载 GFS2 文件系统是被支持的条件。这样做预期的效果是将每个服务器的 POSIX 锁定强制为本地:非集群,相互独立。这是因为 GFS2 试图在集群节点间从 NFS 部署 POSIX 锁定会有很多问题。对于在 NFS 客户端中运行的应用程序,如果两个客户端从不同的服务器挂载,本地化 POSIX 锁定意味着两个客户端可同时拥有相同的锁定,从而导致数据崩溃。如果所有客户端都从一个服务器中挂载 NFS,那么不同服务器单独赋予同一锁定的问题就不存在。如果您不确定是否使用 localflocks 选项挂载文件系统,则不应使用这个选项。立即联系红帽支持,讨论适当的配置以避免数据丢失。我们不推荐通过 NFS 导出 GFS2,但在某些情况下并不支持。

对于所有其他(非 NFS)GFS2 应用程序,不要使用 localflocks 挂载文件系统,因此 GFS2 将管理集群中的所有节点之间的 POSIX 锁定和 flocks。如果您指定了 localflocks 且不使用 NFS,集群中的其它节点将不知道其他节点的 POSIX 锁定和 flock,因此它们在一个集群的环境中不安全

除锁定注意事项外,您应该在通过 GFS2 文件系统配置 NFS 时考虑以下问题。

  • 红帽只支持使用带主动/被动锁定的 NFSv3 进行红帽高可用性附加组件配置,并具有以下特征。此配置为文件系统提供高可用性(HA),并减少系统停机,因为故障的节点在 NFS 服务器故障到另一个节点时不需要执行 fsck 命令。

    • 后端文件系统是在 2 到 16 个节点集群中运行的 GFS2 文件系统。
    • NFSv3 服务器的定义是一次从单一集群节点中导出整个 GFS2 文件系统的服务。
    • NFS 服务器可以从一个集群节点故障切换到另外一个节点(主动/被动配置)。
    • 不允许访问 GFS2 文件系统, 除非 通过 NFS 服务器。这包括本地 GFS2 文件系统访问以及通过 Samba 或者集群的 Samba 访问。通过挂载该文件系统的集群节点在本地访问文件系统可能会导致数据崩溃。
    • 在该系统中不支持 NFS 配额。
  • 对于 GFS2 的 NFS 导出,需要 fsid= NFS 选项。
  • 如果您的集群出现问题(例如,群集变得不连续且隔离不成功),则集群逻辑卷和 GFS2 文件系统将变得冻结,且在集群被仲裁前可能无法访问。在确定一个简单的故障切换解决方案时,您应该考虑这一点,比如选择在这个过程中定义的最适合您的系统的解决方案。