在 Oracle® Solaris 11.2 中管理网络文件系统

退出打印视图

更新时间: 2014 年 7 月
 
 

客户端故障转移

故障转移是从支持复制的文件系统的服务器列表中选择服务器的过程。通常,使用已排序列表中的下一台服务器,除非该服务器无法做出响应。通过使用客户端故障转移,在多台服务器使相同数据可用时,NFS 客户机可以检测到,而在当前服务器不可用时,可以切换到备用服务器。这种切换称为重映射。在正常使用中,客户机在远程文件系统上存储每个活动文件的路径名。在重映射期间,系统将评估这些路径名以在新的服务器上找到这些文件。

如果发生以下情况之一,则文件系统就会变得不可用:

  • 文件系统连接到的服务器崩溃

  • 服务器过载

  • 出现网络故障

在上述情况下执行的故障转移通常对用户是透明的。故障转移可以随时进行,而不会中断客户机上正在运行的进程。

要进行故障转移,必须以只读方式挂载文件系统。文件系统必须相同,故障转移才能成功进行。有关相同文件系统的信息,请参见什么是复制的文件系统?。静态文件系统或不常更改的文件系统是故障转移的最佳候选系统。

您不能对同一 NFS 挂载同时使用 CacheFS 和客户端故障转移。系统针对每个 CacheFS 文件系统存储了额外信息。故障转移期间不能更新此信息,因此挂载文件系统时只能使用这两个功能之一。

必须为每个文件系统建立的副本数目取决于许多因素。理想的情况是,至少具有两台服务器。每台服务器都支持多个子网。此设置比每个子网中具有唯一一台服务器更好。该过程要求检查列出的每台服务器。因此,列出的服务器越多,每个挂载的速度就越慢。

什么是复制的文件系统?

为了实现客户端故障转移,当某个文件系统的大小及其文件大小或文件类型与原始文件系统相同时,可将其称为副本。不考虑权限、创建日期和其他文件属性。如果文件大小或文件类型不同,则重映射将失败,且该过程将挂起,直到旧的服务器可用为止。在 NFS 版本 4 中,行为有所不同。有关客户端故障转移的更多信息,请参见NFS 版本 4 中的客户端故障转移

    可以使用 rsynccpio 或其他文件传输机制来维护复制的文件系统。由于更新复制的文件系统会导致不一致,因此为实现最佳效果,应考虑以下预防措施:

  • 在安装新版本的文件之前,先重命名旧版本的文件。

  • 在夜间运行更新,此时客户机使用率较低。

  • 使更新保持较小。

  • 最大程度地减少文件副本数目。

故障转移和 NFS 锁定

某些软件包需要对文件进行读取锁定。为防止这些产品被破坏,允许对只读文件系统进行读取锁定,但是只有客户端可查看读取锁定。这些锁定在重映射后不会发生变化,因为服务器无法检测到这些锁定。由于文件不会发生更改,因此您不需要在服务器端锁定文件。

NFS 版本 4 中的客户端故障转移

在 NFS 版本 4 中,如果由于文件大小不同或文件类型不同而无法建立副本,将发生以下情况:

  1. 文件被标记为停用。

  2. 显示一条警告。

  3. 使用复制的挂载上的文件的应用程序将收到系统调用故障信息。


注 -  如果重新启动应用程序并再次尝试访问该文件,则应该会成功。

在 NFS 版本 4 中,您不会再收到因目录大小不同而导致的复制错误。在以前的 NFS 版本中,这种情况被视为错误且会阻碍重映射过程。

此外,在 NFS 版本 4 中,如果目录读取操作未成功,则将由列出的下一台服务器执行该操作。在以前的 NFS 版本中,未成功的读取操作将导致重映射失败且挂起该过程,直到原始服务器可用为止。