本节使用以下直接映射示例帮助说明 autofs 如何为客户机选择最近的只读文件。
/usr/local -ro \ /bin ivy:/export/local/sun4\ /share ivy:/export/local/share\ /src ivy:/export/local/src /usr/man -ro oak:/usr/man \ rose:/usr/man \ willow:/usr/man /usr/games -ro peach:/usr/games /usr/spool/news -ro pine:/usr/spool/news \ willow:/var/spool/news
挂载点 /usr/man 和 /usr/spool/news 列出了多个位置,第一个挂载点有三个位置,第二个挂载点有两个位置。任何复制的位置都可以向任何用户提供相同的服务。只有在挂载只读文件系统时此过程才有意义,因为您必须对要写入或修改的文件的位置进行某些控制。您需要避免在某个时候修改某个服务器上的文件,然后在几分钟后又去修改其他服务器上的“同一个”文件。这样做的优点是,将自动使用可用性最佳的服务器,而用户无需执行任何工作。
如果已将文件系统配置为副本(请参见什么是复制的文件系统?),则客户机可以利用故障转移。这样,不仅可以自动确定最佳的服务器,而且在该服务器不可用时,客户机还会自动使用下一个最佳服务器。
将好的文件系统配置为副本的一个示例是手册页。在大型网络中,多台服务器可以导出当前的一组手册页。只要服务器正在运行且正在导出其文件系统,从哪个服务器挂载手册页并不重要。在直接映射示例中,多个挂载位置在映射项中表示为挂载位置的列表。
/usr/man -ro oak:/usr/man rose:/usr/man willow:/usr/man
在本示例中,可以从服务器 oak、rose 或 willow 挂载手册页。哪个服务器最佳取决于很多因素,其中包括:
支持特定 NFS 协议级别的服务器数目
服务器邻近度
加权
排序期间,将对支持各版本 NFS 协议的服务器进行计数。大多数服务器支持的协议版本将成为要使用的缺省协议。此选择为客户机提供最多的可依赖的服务器。
找到使用同一版本协议的服务器的最大子集后,会按邻近度对该服务器列表进行排序。为确定邻近度,将检查 IPv4 地址以确定哪些服务器在每个子网中。本地子网中的服务器优先于远程子网中的服务器。首选最近的服务器可以减少延迟时间和网络通信流量。
Figure 2–5 说明了服务器的邻近度。
图 2-5 服务器邻近度
如果支持同一协议的多台服务器位于本地子网中,则系统将确定连接每台服务器的时间并使用最快的服务器。使用加权也会影响排序。有关加权的更多信息,请参见Autofs 和加权。
例如,如果本地子网上的 NFS 版本 4 服务器比较多,则 NFS 版本 4 将成为使用的缺省协议。但是,当本地子网上的服务器支持不同协议时,排序过程更加复杂。以下是如何进行排序的一些示例:
本地子网中的服务器优先于远程子网中的服务器。因此,如果 NFS 版本 3 服务器在本地子网上,而最近的 NFS 版本 4 服务器在远程子网上,则 NFS 版本 3 服务器优先级更高。同样,如果本地子网包含 NFS 版本 2 服务器,则它们优先于包含 NFS 版本 3 和 NFS 版本 4 服务器的远程子网。
如果本地子网包含数目不同的 NFS 版本 2、NFS 版本 3 和 NFS 版本 4 服务器,则需要进行更多排序。自动挂载程序将优先使用本地子网上的最高版本。在这种情况下,NFS 版本 4 是最高版本。但是,如果本地子网上的 NFS 版本 3 或 NFS 版本 2 服务器比 NFS 版本 4 服务器多,则自动挂载程序将从本地子网上的最高版本“向下移动”一个版本。例如,如果本地子网上有三台 NFS 版本 4 服务器、三台 NFS 版本 3 服务器和十台 NFS 版本 2 服务器,则会选择 NFS 版本 3 服务器。
同样,如果本地子网包含数目不同的 NFS 版本 2 和 NFS 版本 3 服务器,则自动挂载程序将首先查看哪个版本代表本地子网上的最高版本。接下来,自动挂载程序将对运行每个版本的服务器进行计数。如果本地子网中的最高版本同时代表最多的服务器,则选择最高版本。如果较低版本具有更多服务器,则自动挂载程序将从本地子网上的最高版本向下移动一个版本。例如,如果本地子网上的 NFS 版本 2 服务器比 NFS 版本 3 服务器多,则选择 NFS 版本 2 服务器。
选择服务器之后,可以在挂载时使用故障转移检查排序方式。在单个服务器可能无法临时导出其文件系统的环境中,多个位置非常有用。
在具有许多子网的大型网络中,故障转移特别有用。Autofs 将选择适当的服务器,并且能够将 NFS 网络通信流量限制在本地网络段。如果服务器具有多个网络接口,则可以列出与每个网络接口关联的主机名,就像接口是单独的服务器一样。Autofs 将选择离客户机最近的接口。
有关更多信息,请参见 automount(1M) 手册页。