2.5.5. 使用 GFS2 设定 NFS
由于 GFS2 锁定子系统额外的复杂性及其集群本质,使用 GFS2 设置 NFS 需要注意很多方面,并要格外小心。本小节论述了您在使用 GFS2 文件系统配置 NFS 时应该注意的问题。
警告
如果使用 GFS2 导出 NFS,且该 NFS 客户端程序使用 POSIX 锁,那么就必须使用
localflocks
选项挂载该文件系统。预期的效果是这样可以强制 POSIX 锁从每台服务器转到本地:即非集群,且各自独立。(如果 GFS2 尝试从 NFS 跨集群中的节点使用 POSIX 锁,目前还有很多问题需要解决。)对于在 NFS 客户端中运行的程序,本地的 POSIX 锁意味着如果是从两台服务器中挂载两个客户端,则它们可以同时持有同一锁。如果所有客户端都使用一台服务器挂载 NFS,那么就不存在不同服务器单独提供同一锁定的问题。如果您不确定是否要使用 localflocks
选项挂载您的文件系统,则不要使用该选项。在集群的环境中使用锁总是会更安全一些。
除锁定注意事项外,您还应在使用 GFS2 文件系统配置 NFS 服务时注意以下问题:
- Red Hat 只支持使用有以下特征并附带 active/passive 配置的 NFSv3 系统配置 Red Hat High Availability Add-On:
- 后端文件系统是一个在 2 到 16 个节点集群中运行的 GFS2 文件系统。
- 将 NFSv3 服务器被定义为一次从独立集群节点中导出整个 GFS2 文件系统的服务。
- NFS 服务器可以在从一个集群节点到另一个节点(active/passive 配置)间进行故障切换。
- 除非通过 NFS 服务器,否则不允许任何对 GFS2 文件系统的访问。这包括本地 GFS2 文件系统访问以及所有通过 Samba 或者集群的 Samba 的访问。
- 该系统中没有 NFS 额度支持。
这个配置为该文件系统提供 HA,并减少系统停机时间,因为当 NFS 服务器从一个节点到另一个节点失败时,失败的节点不需要执行fsck
命令。 - GFS2 的 NFS 导出中
fsid=
NFS 选项是强制的。 - 如果您的集群出现问题(例如:该集群变得额度不足且 fencing 无法工作),则会停止集群的逻辑卷以及 GFS2 文件系统,且在该集群有足够额度前不可能有任何访问。您在决定是否使用简单的故障切换解决方案(比如:在这个步骤中规定的方法是否最适合您的系统)时考虑这个可能性。