系统管理指南:网络服务

NFS 服务的功能

本节介绍了 NFS 服务中包括的重要功能。

NFS 版本 2 协议

版本 2 曾经是广泛使用的 NFS 协议的第一个版本。版本 2 现在仍可用在多种平台上。所有的 Solaris 发行版都支持 NFS 协议版本 2,但 Solaris 2.5 之前的 Solaris 发行版仅支持版本 2。

NFS 版本 3 协议

NFS 版本 3 协议的实现是 Solaris 2.5 发行版的一个新增功能。为了提高互操作性和性能,已进行了几处更改。为了获得最佳效能,版本 3 协议必须同时在 NFS 服务器和客户机上运行。

与 NFS 版本 2 协议不同,NFS 版本 3 协议可以处理大于 2 GB 的文件。以前的限制已被取消。请参见NFS 大文件支持

使用 NFS 版本 3 协议,可在服务器上安全异步写入,该功能通过允许服务器在内存中高速缓存客户机写入请求,从而提高性能。客户机无需等待服务器将更改提交到磁盘,因此响应时间更快。另外,服务器还可以对请求进行批处理,这样就改进了服务器上的响应时间。

许多 Solaris NFS 版本 3 操作都会返回文件属性,这些属性存储在本地高速缓存中。由于高速缓存更新越来越频繁,因此需要进行单独操作来更新此数据的情况也越来越少。因此,对服务器的 RPC 调用的数量也会减少,从而提高了性能。

验证文件访问权限的过程也得到了改进。 如果用户尝试在没有适当权限时复制远程文件,版本 2 即会生成“写入错误”消息或“读取错误”消息。在版本 3 中,权限在打开文件之前进行检查,因此报告的错误为“打开错误”。

NFS 版本 3 协议取消了 8 KB 传输大小限制。客户机和服务器可以协商它们所支持的任意传输大小,而不用遵循版本 2 强制规定的 8 KB 限制。请注意,在 Solaris 2.5 实现中,协议的传输大小缺省为 32 KB。从 Solaris 10 发行版开始,对线路传输大小的限制更加宽松了。传输大小取决于基础传输的能力。

NFS 版本 4 协议

NFS 版本 4 具有以前版本中所未提供的功能:

NFS 版本 4 协议将用户 ID 和组 ID 表示为字符串。客户机和服务器使用 nfsmapid 来执行以下操作:

有关更多信息,请参阅nfsmapid 守护进程

请注意,在 NFS 版本 4 中,ID 映射器 nfsmapid 用于将服务器上的 ACL 项中的用户 ID 或组 ID 映射为客户机上的 ACL 项中的用户 ID 或组 ID。反之也能实现。有关更多信息,请参见NFS 版本 4 中的 ACL 和 nfsmapid

使用 NFS 版本 4 取消共享文件系统时,将破坏该文件系统中任何打开文件或文件锁定的所有状态。在 NFS 版本 3 中,服务器会保留客户机在取消共享文件系统之前获取的任何锁定。有关更多信息,请参阅在 NFS 版本 4 中取消共享和重新共享文件系统

NFS 版本 4 服务器使用伪文件系统为客户机提供访问服务器上导出对象的权限。在 NFS 版本 4 之前,伪文件系统不存在。有关更多信息,请参阅NFS 版本 4 中的文件系统名称空间

在 NFS 版本 2 和版本 3 中,服务器返回持久性文件句柄。NFS 版本 4 支持可变文件句柄。有关更多信息,请参阅NFS 版本 4 中的可变文件句柄

委托是服务器用于将文件委托给客户机进行管理的一项技术,客户机和服务器上均支持该技术。例如,服务器可以授予客户机读取委托或写入委托。有关更多信息,请参阅NFS 版本 4 的委托

从 Solaris 10 发行版开始,NFS 版本 4 不支持 LIPKEY/SPKM 安全特性。

另外,NFS 版本 4 也不会使用以下守护进程:

有关 NFS 版本 4 的完整功能列表,请参阅NFS 版本 4 的功能

有关与使用 NFS 版本 4 相关的过程信息,请参阅设置 NFS 服务

控制 NFS 版本

/etc/default/nfs 文件使用关键字来控制客户机和服务器都使用的 NFS 协议。例如,可以使用关键字来管理版本协商。有关更多信息,请参阅/etc/default/nfs 文件的关键字nfs(4) 手册页。

NFS ACL 支持

Solaris 2.5 发行版中已添加了访问控制列表 (Access Control List, ACL) 支持。ACL 提供了一种用于设置文件访问权限的机制,该机制比可用于标准 UNIX 文件权限的机制划分更细。NFS ACL 支持提供了一种从 Solaris NFS 客户机到 Solaris NFS 服务器进行更改和查看 ACL 项的方法。有关 ACL 的更多信息,请参见《系统管理指南:安全性服务》中的“使用访问控制列表保护文件”

有关 NFS 版本 4 中的 ACL 支持的信息,请参见NFS 版本 4 中的 ACL 和 nfsmapid

NFS Over TCP

在 Solaris 2.5 发行版中,NFS 协议的缺省传输协议已更改为传输控制协议 (Transport Control Protocol, TCP)。TCP 有助于提高慢速网络和广域网的性能。TCP 还提供拥塞控制和错误恢复功能。NFS over TCP 可用于版本 2、版本 3 和版本 4。在 Solaris 2.5 发行版之前,缺省的 NFS 协议为用户数据报协议 (User Datagram Protocol, UDP)。


注 –

从 Solaris 10 发行版开始,如果 InfiniBand 的 RDMA 可用,则 RDMA 为 NFS 的缺省传输协议。有关更多信息,请参见NFS Over RDMA。但是,请注意,如果使用 proto=tcp 挂载选项,则系统将强制 NFS 挂载仅使用 TCP。


NFS Over UDP

从 Solaris 10 发行版开始,NFS 客户机不再使用过多的 UDP 端口。以前,NFS 通过 UDP 进行传送,针对每个未解决的请求使用单独的 UDP 端口。现在,缺省情况下,NFS 客户机仅使用一个 UDP 保留端口。但是,此支持是可配置的。如果同时使用多个端口会通过增强的可伸缩性来提高系统性能,则可以将系统配置为使用多个端口。此功能还可以对 NFS over TCP 支持建立镜像,这种配置能力是与生俱来的。有关更多信息,请参阅《Solaris 可调参数参考手册》。


注 –

NFS 版本 4 不使用 UDP。如果使用 proto=udp 选项挂载文件系统,则会使用 NFS 版本 3 而不是版本 4。


NFS Over RDMA 概述

从 Solaris 10 发行版开始,NFS 的缺省传输协议为远程直接内存访问 (Remote Direct Memory Access, RDMA) 协议,这是一种通过高速网络实现内存到内存数据传输的技术。具体来说,RDMA 可提供不受 CPU 干预直接进出内存的远程数据传输。为提供此功能,RDMA 将 InfiniBand-on-SPARC 平台的互连 I/O 技术与 Solaris 操作系统相结合。有关更多信息,请参阅NFS Over RDMA

网络锁定管理器和 NFS

Solaris 2.5 发行版还包括改进的网络锁定管理器版本。网络锁定管理器为 NFS 文件提供了 UNIX 记录锁定和 PC 文件共享功能。现在,用于 NFS 文件的锁定机制更为可靠,因此使用锁定的命令挂起的可能性也越来越小。


注 –

网络锁定管理器仅用于 NFS 版本 2 和版本 3 挂载。文件锁定内置于 NFS 版本 4 协议。


NFS 大文件支持

Solaris 2.6 对 NFS 版本 3 协议的实现已经过更改,可以正确处理大于 2 GB 的文件。NFS 版本 2 协议和 Solaris 2.5 对版本 3 协议的实现不能处理大于 2 GB 的文件。

NFS 客户机故障转移

Solaris 2.6 发行版中添加了只读文件系统的动态故障转移。故障转移可为已复制的只读资源(如手册页、其他文档和共享的二进制文件)提供高级别的可用性。挂载文件系统后,随时可能发生故障转移。现在,手动挂载可以列出多个副本,这与以前发行版中的自动挂载程序非常相似。除了无需等到重新挂载文件系统后再进行故障转移的情况外,自动挂载程序不会发生更改。有关更多信息,请参见如何使用客户端故障转移客户端故障转移

对 NFS 服务的 Kerberos 支持

Solaris 2.0 发行版中包括对 Kerberos V4 客户机的支持。在 2.6 发行版中,mountshare 命令已更改,以支持使用 Kerberos V5 验证的 NFS 版本 3 挂载。另外,还更改了 share 命令,以针对不同的客户机启用多种验证特性。有关涉及安全特性的更改的更多信息,请参见RPCSEC_GSS 安全特性。有关 Kerberos V5 验证的信息,请参见《系统管理指南:安全性服务》中的“配置 Kerberos NFS 服务器”

WebNFS 支持

Solaris 2.6 发行版还包括可通过防火墙访问 Internet 中文件系统的功能。此功能是通过使用 NFS 协议的扩展提供的。使用 WebNFSTM 协议进行 Internet 访问的优点之一是该协议的可靠性。该服务作为 NFS 版本 3 和版本 2 协议的扩展而构建。此外,WebNFS 实现还提供了共享这些文件的能力,而不会产生匿名 ftp 站点的管理开销。有关与 WebNFS 服务相关的更多更改的说明,请参见WebNFS 服务的安全协商。有关更多任务信息,请参见WebNFS 管理任务


注 –

NFS 版本 4 协议优于 WebNFS 服务。NFS 版本 4 可将已添加到 MOUNT 协议和 WebNFS 服务的所有安全协商完全集成。


RPCSEC_GSS 安全特性

Solaris 7 发行版支持一种名为 RPCSEC_GSS 的安全特性。此特性使用标准的 GSS-API 接口来提供验证、完整性和保密性,以及对多种安全机制的启用支持。有关 Kerberos V5 验证支持的更多信息,请参见对 NFS 服务的 Kerberos 支持。有关 GSS-API 的更多信息,请参见《Solaris 开发者安全性指南》

Solaris 7 对 NFS 挂载的扩展

Solaris 7 发行版包括对 mount 命令和 automountd 命令的扩展。通过扩展,挂载请求可以使用公共文件句柄而不是 MOUNT 协议。MOUNT 协议是 WebNFS 服务使用的同一种访问方法。通过避免使用 MOUNT 协议,可通过防火墙进行挂载。此外,由于服务器与客户机之间需要发生的事务更少,因此挂载速度应该会更快。

通过这些扩展,还可以使用 NFS URL 而不是标准路径名。另外,也可以使用带有 public 选项的 mount 命令以及自动挂载程序映射来强制使用公共文件句柄。有关 WebNFS 服务更改的更多信息,请参见WebNFS 支持

WebNFS 服务的安全协商

Solaris 8 发行版中添加了一种新的协议,用于使 WebNFS 客户机可与 NFS 服务器协商安全机制。此协议可提供在使用 WebNFS 服务时使用安全事务的能力。有关更多信息,请参见WebNFS 安全协商如何工作

NFS 服务器日志记录

在 Solaris 8 发行版中,通过 NFS 服务器日志记录,NFS 服务器可以提供已对其文件系统执行的文件操作记录。该记录包括有关访问哪个文件、何时访问文件以及谁访问文件的信息。可以通过一组配置选项来指定包含此信息的日志的位置,也可以使用这些选项来选择应该记录的操作。对于使匿名 FTP 归档文件可用于 NFS 和 WebNFS 客户机的站点而言,此功能特别有用。有关更多信息,请参见如何启用 NFS 服务器日志记录


注 –

NFS 版本 4 不支持服务器日志记录。


Autofs 功能

Autofs 用于本地名称空间中指定的文件系统。此信息可以在 NIS、NIS+ 或本地文件中进行维护。

Solaris 2.6 发行版中包括 automountd 的完全多线程版本。此增强功能使 autofs 更可靠,并且可以启用多个挂载的并发服务,这可防止服务在服务器不可用时挂起。

新的 automountd 还提供了更好的即时挂载功能。如果文件系统具有分层结构关系,则以前的发行版将挂载一组完整的文件系统。现在,仅会挂载顶层文件系统。如果需要,可以挂载与此挂载点相关的其他文件系统。

autofs 服务支持间接映射的浏览功能。用户可通过此支持查看可以挂载的目录,而不必实际挂载每个文件系统。-nobrowse 选项已添加到 autofs 映射中,因此不能自动浏览大文件系统,如 /net/home。另外,还可以使用带有 -n 选项的automount 来关闭每台客户机上的 autofs 浏览功能。有关更多信息,请参见禁用 Autofs 浏览功能