系统管理指南:网络服务

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 列出了多个位置,第一个挂载点有三个位置,第二个挂载点有两个位置。 任何复制的位置都可以向任何用户提供相同的服务。只有在挂载只读文件系统时此过程才有意义,因为您必须对要写入或修改的文件位置进行某些控制。您需要避免在某个时候修改某个服务器上的文件,然后在几分钟后又去修改其他服务器上的“同一个”文件。这样做的优点是,将自动使用可用性最佳的服务器,而无需执行用户所需的任何工作。

如果已将文件系统配置为副本(请参见什么是复制的文件系统?),则客户机可以利用故障转移。这样,不仅可以自动确定最佳的服务器,而且在该服务器不可用时,客户机还会自动使用下一个最佳服务器。故障转移最先在 Solaris 2.6 发行版中得以实现。

将好的文件系统配置为副本的示例是手册页。在大型网络中,多个服务器可以导出当前的一组手册页。如果服务器正在运行且正在导出其文件系统,则从哪个服务器挂载手册页并不重要。在前面示例中,多个挂载位置在映射项中被表示为挂载位置的列表。


/usr/man -ro oak:/usr/man rose:/usr/man willow:/usr/man 

在本示例中,可以从服务器 oakrosewillow 挂载手册页。哪个服务器最好取决于很多因素,其中包括:

排序期间,将对支持各版本的 NFS 协议的服务器进行计数。大多数服务器支持的协议版本将成为要使用的缺省协议。此选择为客户机提供最多可依赖的服务器。

找到包含同一版本协议的最大的服务器子集后,服务器列表将按邻近度进行排序。为确定邻近度,将检查 IPv4 地址。根据 IPv4 地址可显示每个子网中的服务器。本地子网中的服务器优先于远程子网中的服务器。首选最近的服务器可以减少延迟时间和网络通信流量。


注 –

不能确定使用 IPv6 地址的副本的邻近度。


图 6–5 说明了服务器的邻近度。

图 6–5 服务器邻近度

文中对该图形进行了说明。

如果支持同一协议的多个服务器位于本地子网中,则系统将确定连接每个服务器的时间并将使用最快的服务器。使用加权也会影响排序(请参见Autofs 和加权)。

例如,如果版本 4 服务器比较多,则版本 4 将成为要使用的缺省协议。但是,现在排序过程更加复杂了。以下是如何进行排序的一些示例。


注 –

/etc/default/nfs 文件中的关键字值也会影响加权。具体来说,NFS_SERVER_VERSMIN、NFS_CLIENT_VERSMIN、NFS_SERVER_VERSMAX 和 NFS_CLIENT_VERSMAX 的值可以从排序过程中排除某些版本。有关这些关键字的更多信息,请参见/etc/default/nfs 文件的关键字


选择服务器之后,可以在挂载时使用故障转移检查排序方式。在个别服务器可能无法临时导出其文件系统的环境中,多个位置是非常有用的。

在具有许多子网的大型网络中,故障转移特别有用。Autofs 将选择适当的服务器,并且能够将 NFS 网络通信限制在本地网络段。如果服务器具有多个网络接口,则可以列出与每个网络接口关联的主机名,就像接口是单独的服务器一样。Autofs 将选择离客户机最近的接口。


注 –

对于手动挂载,不会执行任何加权和邻近度检查。mount 命令将对从左到右列出的服务器设置优先级。


有关更多信息,请参见 automount(1M) 手册页。