跳过导航链接 | |
退出打印视图 | |
![]() |
在 Oracle Solaris 11.1 中管理网络文件系统 Oracle Solaris 11.1 Information Library (简体中文) |
本节介绍了 NFS 服务中包括的重要功能。
版本 2 曾经是广泛使用的 NFS 协议的第一个版本。版本 2 现在仍可在多种平台上使用。所有 Oracle Solaris 发行版都支持 NFS 版本 2 协议。
与 NFS 版本 2 协议不同,NFS 版本 3 协议可以处理大于 2 GB 的文件。以前的限制已被取消。请参见NFS 大文件支持。
使用 NFS 版本 3 协议,可在服务器上安全地进行异步写入;该功能允许服务器在内存中高速缓存客户机写入请求,从而提高性能。客户机无需等待服务器将更改提交到磁盘,因此响应时间更快。另外,服务器还可以对请求进行批处理,这样就改进了服务器上的响应时间。
许多 Solaris NFS 版本 3 操作都会返回文件属性,这些属性存储在本地高速缓存中。由于高速缓存更新的频率提高了,因此需要进行单独操作来更新此数据的情况就减少了。因此,对服务器的 RPC 调用的数量也会减少,从而提高了性能。
验证文件访问权限的过程也得到了改进。如果用户尝试在没有适当权限时复制远程文件,版本 2 即会生成“写入错误”消息或“读取错误”消息。在版本 3 中,会在打开文件之前检查权限,因此报告的错误为“打开错误”。
NFS 版本 3 协议取消了 8 KB 传输大小限制。客户机和服务器可以协商它们所支持的任意传输大小,而不用遵循版本 2 强制规定的 8 KB 限制。请注意,在早期 Solaris 实现中,协议的传输大小缺省为 32 KB。从 Solaris 10 发行版开始,对线路传输大小的限制更加宽松了。传输大小取决于底层传输的能力。
NFS 版本 4 具有以前版本中未提供的功能。
NFS 版本 4 协议将用户 ID 和组 ID 表示为字符串。客户机和服务器使用 nfsmapid 执行以下操作:
将这些版本 4 ID 字符串映射为本地数字 ID
将本地数字 ID 映射为版本 4 ID 字符串
有关更多信息,请参阅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 中的委托。
NFS 版本 4 不支持 LIPKEY/SPKM 安全性风格。
另外,NFS 版本 4 也不使用以下守护进程:
lockd
nfslogd
statd
有关 NFS 版本 4 的完整功能列表,请参阅NFS 版本 4 的功能。
有关与使用 NFS 版本 4 相关的过程信息,请参阅设置 NFS 服务。
SMF 系统信息库包括了用于控制 NFS 协议的参数,客户机和服务器均可以使用这些参数。例如,可以使用参数来管理版本协商。有关更多信息,请参阅mountd 守护进程了解客户机参数,参阅nfsd 守护进程了解服务器参数,或参阅 nfs(4) 手册页。
Solaris 2.5 发行版中添加了访问控制列表 (access control list, ACL) 支持。访问控制列表 (access control list, ACL) 提供了一种用于设置文件访问权限的机制,该机制比通过标准 UNIX 文件权限提供的机制更加精细。NFS ACL 支持提供了一种将 ACL 项从 Oracle Solaris NFS 客户机更改到 Oracle Solaris NFS 服务器并查看它们的方法。
NFS 版本 2 和版本 3 实现支持旧的 POSIX 草案样式 ACL。UFS 可本地支持 POSIX 草案 ACL。有关 UFS ACL 的更多信息,请参见《Oracle Solaris 11.1 管理:安全服务》中的"使用访问控制列表保护 UFS 文件"。
NFS 版本 4 协议支持新的 NFSv4 样式 ACL。ZFS 可本地支持 NFSv4 ACL。对于功能齐全的 NFSv4 ACL 功能,ZFS 必须用作 NFSv4 服务器上的底层文件系统。NFSv4 ACL 具有一组丰富的继承属性,以及一组除标准读取、写入和执行之外的权限位。有关新 ACL 的概述,请参见《Oracle Solaris 11.1 管理:ZFS 文件系统》中的第 7 章 "使用 ACL 和属性保护 Oracle Solaris ZFS 文件"。有关 NFS 版本 4 中 ACL 支持的信息,请参见NFS 版本 4 中的 ACL 和 nfsmapid。
在 Solaris 2.5 发行版中,NFS 协议的缺省传输协议已更改为传输控制协议 (Transport Control Protocol, TCP)。TCP 有助于提高慢速网络和广域网的性能。TCP 还提供拥塞控制和错误恢复功能。NFS over TCP 可用于版本 2、版本 3 和版本 4。在 Solaris 2.5 发行版之前,缺省的 NFS 协议为用户数据报协议 (User Datagram Protocol, UDP)。
注 - 如果系统中有 InfiniBand 硬件可用,缺省传输将从 TCP 更改为远程直接内存访问 (Remote Direct Memory Access, RDMA) 协议。有关更多信息,请参见NFS Over RDMA。但是请注意,如果使用了 proto=tcp 挂载选项,则会强制 NFS 挂载仅使用 TCP。
从 Solaris 10 发行版开始,NFS 客户机不再使用过多的 UDP 端口。以前,通过 UDP 进行的 NFS 传送为每个未解决的请求使用单独的 UDP 端口。现在,缺省情况下,NFS 客户机仅使用一个 UDP 保留端口。但是,此支持是可配置的。如果同时使用多个端口会通过增强可伸缩性来提高系统性能,则可将系统配置为使用多个端口。此功能也反映在 NFS over TCP 支持中,这种可配置性是 NFS over TCP 一开始就有的。有关更多信息,请参阅《Oracle Solaris 11.1 可调参数参考手册》。
注 - NFS 版本 4 不使用 UDP。如果使用 proto=udp 选项挂载文件系统,则会使用 NFS 版本 3 而不是版本 4。
如果系统中有 InfiniBand 硬件可用,缺省传输将从 TCP 更改为远程直接内存访问 (Remote Direct Memory Access, RDMA) 协议。RDMA 协议是一种通过高速网络实现内存到内存数据传输的技术。具体来说,RDMA 可提供不受 CPU 干预而直接进出内存的远程数据传输。为提供此功能,RDMA 将 InfiniBand 的互连 I/O 技术与 Oracle Solaris 操作系统相结合。有关更多信息,请参阅NFS Over RDMA。
网络锁定管理器针对在 NFS 上共享的所有文件提供 UNIX 记录锁定。该锁定机制允许客户机相互同步 I/O 请求,确保数据完整性。
注 - 网络锁定管理器仅用于 NFS 版本 2 和版本 3 挂载。文件锁定内置于 NFS 版本 4 协议。
Solaris 2.6 对 NFS 版本 3 协议的实现经过了更改,可以正确处理大于 2 GB 的文件。NFS 版本 2 协议无法处理大于 2 GB 的文件。
Solaris 2.6 发行版中添加了只读文件系统的动态故障转移。故障转移可为已复制的只读资源(如手册页、其他文档和共享的二进制文件)提供高级别的可用性。挂载文件系统后,随时可能发生故障转移。现在,手动挂载可以列出多个副本,这与以前发行版中的自动挂载程序非常相似。除了无需等到重新挂载文件系统后再进行故障转移的情况外,自动挂载程序没有变化。有关更多信息,请参见如何使用客户端故障转移和客户端故障转移。
NFS 服务支持 Kerberos V5 客户机。mount 和 share 命令作了更改,可以支持使用 Kerberos V5 验证的 NFS 版本 3 挂载。另外,还更改了 share 命令,可针对不同的客户机启用多种验证风格。有关涉及安全风格的更改的更多信息,请参见RPCSEC_GSS 安全风格。有关 Kerberos V5 验证的更多信息,请参见《Oracle Solaris 11.1 管理:安全服务》中的"配置 Kerberos NFS 服务器"。
Solaris 2.6 发行版还包括使 Internet 上的文件系统可通过防火墙访问的功能。此功能是通过使用 NFS 协议的扩展实现的。使用 WebNFS 协议进行 Internet 访问的优点之一是该协议的可靠性。该服务是作为 NFS 版本 3 和版本 2 协议的扩展而构建的。此外,WebNFS 实现还提供了在不产生匿名 ftp 站点管理开销的情况下共享这些文件的功能。有关与 WebNFS 服务相关的更多更改的说明,请参见WebNFS 服务的安全协商。有关更多任务信息,请参见WebNFS 管理任务。
注 - NFS 版本 4 协议优先于 WebNFS 服务。NFS 版本 4 完全集成了已添加到 MOUNT 协议和 WebNFS 服务中的所有安全协商。
Solaris 7 发行版支持一种名为 RPCSEC_GSS 的安全风格。此风格使用标准的 GSS-API 接口来提供验证、完整性和保密性,并实现了对多种安全机制的支持。有关 Kerberos V5 验证支持的更多信息,请参见对 NFS 服务的 Kerberos 支持。有关 GSS-API 的更多信息,请参见《Oracle Solaris 11 开发者安全性指南》。
Solaris 7 发行版包括对 mount 命令和 automountd 命令的扩展。通过扩展,挂载请求可以使用公共文件句柄,而不使用 MOUNT 协议。MOUNT 协议是 WebNFS 服务使用的同一种访问方法。通过避免使用 MOUNT 协议,可通过防火墙进行挂载。此外,由于服务器与客户机之间需要发生的事务更少,因此挂载速度应该会更快。
通过这些扩展,还可以使用 NFS URL 而不使用标准路径名。另外,也可以使用带有 public 选项的 mount 命令以及自动挂载程序映射来强制使用公共文件句柄。有关 WebNFS 服务更改的更多信息,请参见WebNFS 支持。
Solaris 8 发行版中添加了一种新的协议,用于使 WebNFS 客户机可与 NFS 服务器协商安全机制。此协议可提供在使用 WebNFS 服务时使用安全事务的功能。有关更多信息,请参见WebNFS 安全协商如何工作。
在 Solaris 8 发行版中,通过 NFS 服务器日志记录,NFS 服务器可以提供已对其文件系统执行的文件操作记录。该记录包括有关访问哪个文件、何时访问文件以及谁访问文件的信息。可以通过一组配置选项来指定包含此信息的日志位置,也可以使用这些选项来选择应该记录的操作。对于使匿名 FTP 归档文件可用于 NFS 和 WebNFS 客户机的站点而言,此功能特别有用。有关更多信息,请参见如何启用 NFS 服务器日志记录。
注 - NFS 版本 4 不支持服务器日志记录。
Autofs 可用于本地名称空间中指定的文件系统。此信息可以在 NIS 或本地文件中进行维护。
包括了 automountd 的完全多线程版本。此增强功能使 autofs 更可靠,并且可以启用多个挂载的并发服务,这可防止服务在服务器不可用时挂起。
automountd 提供了更好的按需挂载功能。如果文件系统具有分层结构关系,则以前的发行版将挂载一组完整的文件系统。现在,仅挂载顶层文件系统。如果需要,可以挂载与此挂载点相关的其他文件系统。
autofs 服务支持间接映射的浏览功能。用户可通过此支持查看可以挂载的目录,而不必实际挂载每个文件系统。-nobrowse 选项已添加到 autofs 映射中,因此不能自动浏览大文件系统,如 /net 和 /home。另外,还可以使用带有 -n 选项的 automount 命令关闭每个客户机上的 autofs 浏览功能。有关更多信息,请参见禁用 Autofs 浏览功能。