本主题总结了在 Windows Server 2008 环境中使用网络文件系统 (NFS) 服务的最佳实践。涉及的领域包括一般最佳实践和在服务器群集中使用 NFS 服务器的技巧。有关 NFS 服务的详细信息,请参阅 Windows Server TechCenter (https://go.microsoft.com/fwlink/?LinkId=92798)(可能为英文网页)。

常规最佳实践

使用正确的实用程序管理 NFS 服务。

不能使用 NFS 服务或命令行实用程序管理较早版本的 NFS 服务。此外,也不能使用较早版本的 NFS 服务或命令行实用程序管理较新版本的 NFS 服务。

如果两台计算机上均运行 Windows Server 2008,则可以使用 NFS 服务来管理远程计算机上的 NFS 服务组件。

打开防火墙端口。

NFS 服务需要多个端口,这些端口必须在 Windows 防火墙和其他防火墙中打开。系统提示时,确保允许 NFS 服务组件。

提供用户级的安全。

使用 NFS 服务器,可以控制用户和组对 NFS 服务资源的访问。必须为 Active Directory 域服务配置和填充用户标识符 (UID) 和组标识符 (GID) 信息,或在网络中的一台计算机上安装用户名映射,以便将 Windows 用户帐户与 UNIX 用户帐户相关联。在某些情况下,您还可能需要安装 NFS 服务器身份验证。

保护文件。

NFS 服务器仅支持为 NTFS 文件系统格式化的存储卷。NTFS 卷通过允许和拒绝特定用户和组的文件访问,使您可以提供文件级的安全。如果希望匿名用户访问文件,请确保目录和文件权限可以为匿名用户提供相应的访问权限。此外,如果共享目录,在创建 NFS 共享资源时使用主机级 NFS 访问控制可以提供附加的安全级别,以保护目录中的文件。

保护新驱动器。

在运行 NFS 服务器的计算机上添加新驱动器时,确保修改保护驱动器根目录的权限,以确保不受信任的用户(包括 Everyone 用户)无法写入该目录。这样,将通过保护驱动器上的共享目录,使不受信任的用户无法危及到 NFS 服务器的安全。

允许用户在停止 NFS 服务器服务之前断开连接。

在停止或卸载 NFS 服务器之前,应通知连接到 NFS 服务共享资源的用户您将停止该服务。然后,在用户有机会关闭打开的文件并与共享目录断开之后,可以停止该服务。

使用命名约定标识使用 EUC 编码的共享。

如果目录使用一种扩展 UNIX 代码 (EUC) 编码(例如 EUC-JP)进行共享,并且配置为使用其他 EUC 编码(例如 EUC-TW)的客户端尝试连接到该共享目录,可能会出现意外的结果。为了避免出现此情况,请设置在使用 EUC 编码共享目录时要使用的命名约定,使客户端计算机的用户可以了解如何编码共享目录。

保护配置文件。

如果创建配置文件(例如字符转换文件或审核日志文件),确保使用随机访问控制列表 (DACL) 保护这些文件,该列表为内置的系统帐户和管理员组授予完全控制权限。DACL 不应包含任何其他项。

在服务器群集中运行 NFS 服务器的最佳实践

在停止服务器群集之前停止 NFS 服务器。

为了确保服务器群集中的 NFS 服务器正常运行,在停止服务器群集时,先停止 NFS 服务器,然后再停止服务器群集。

确保节点出现故障时的共享资源可用性。

若要确保在包含资源的节点出现故障之后,共享目录群集资源将可用,应使群集资源依赖于适合的物理磁盘资源。

使用适合的工具管理 NFS 共享群集资源。

尽管可以使用 Windows 资源管理器查看 NFS 共享群集资源的属性,但是不应使用资源管理器来更改这些属性。只应使用“群集管理器”或 cluster 命令在服务器群集上创建和管理共享 NFS 目录。

避免共享名冲突。

确保服务器群集上的每个共享目录的共享名是唯一的。否则,如果群集中的一个节点故障转移到另一个节点,并且如果两个节点上的共享目录的名称相同,只有一个共享目录将可用。

确保审核日志的可用性。

不要将共享磁盘资源指定为 NFS 服务器审核日志的位置。群集中只有一个节点可以拥有该日志文件。这意味着如果组的所有权转移到另一个节点,原始节点上剩余的共享资源的审核事件将无法记录在该文件中。为了确保 NFS 服务器审核日志的可用性,应将事件记录在事件查看器事件日志中。

在停止 NFS 服务器之前,应移动共享资源或使其脱机。

在承载活动 NFS 共享资源的群集节点上停止 NFS 服务器时,群集服务将像自己管理的一个资源出现故障一样做出响应。因此,群集服务将尝试重新启动该服务,以保持资源的可用性。在尝试停止服务器群集节点上的 NFS 服务器之前,将所有包含 NFS 共享资源的组移至群集上的另一个节点,或使节点上的所有 NFS 共享资源脱机。

在修改之前使资源脱机。

确保在修改属性之前使 NFS 共享目录资源脱机。如果不这样做,可能会出现意外的结果。

只从受信任的域中的计算机管理 NFS 服务器。

若要确保 NFS 服务器的配置更改可以正确复制,在管理群集上运行的 NFS 服务器时,一定要使用属于受信任域的计算机。这是必要的,因为如果在属于群集域不信任的域的计算机上运行 NFS 服务管理或 nfsadmin,NFS 服务器的配置更改将无法正确地在群集节点之间复制。

在群集服务重新启动之后重新启动 NFS 服务器服务。

如果群集中的某个节点必须重新启动群集服务,在该节点上停止再重新启动 NFS 服务器服务。这样可以确保 NFS 服务器的配置更改将正确地在群集节点之间复制。

选择适合的共享模式。

在创建 NFS 共享目录资源时,可以选择共享指定目录的根目录或目录中的所有子目录。在选择此选项之前,先确定是否需要控制对子目录的访问或更改其共享名。如果需要这样做,必须单独共享子目录,因为在创建 NFS 共享目录资源来共享子目录时,不能设置访问权限,不能允许(或拒绝)匿名访问,也不能单独更改子目录的共享名。

如果选择共享目录中的所有子目录,确保保护该目录的权限不允许不受信任的用户创建子目录。否则,恶意用户可以通过创建大量的子目录来自动作为群集资源共享,从而使群集服务应接不暇。

在创建或修改 NFS 共享群集资源时正确使用命令行。

如果使用 cluster 命令创建和修改 NFS 共享群集资源,应注意以下事项:

  • 在使用群集 command 创建群集资源时,可以设置一些非专用属性,但不是全部这样设置。

  • 在使用 cluster 命令设置属性时,不要依赖默认值,因为默认值对 NFS 共享群集资源可能无效。一定要显式设置属性值。

  • 若要设置或查看对 NFS 共享群集资源的权限,请使用“群集管理器”。也可以使用 nfsshare 命令来查看权限,但是不能设置权限。

使用硬装载。

在装入服务器群集上共享的 NFS 目录时,应指示客户端计算机的用户使用硬装载。这样可以确保如果共享目录的节点出现故障,客户端计算机不会在向另一个节点的故障转移完成之前超时。

使用正确的虚拟服务器名称。

应指示客户端计算机的用户使用共享目录所处的相同组的虚拟服务器名称,来装入服务器群集上共享的 NFS 目录。如果使用其他组的虚拟服务器名称(或使用节点名称),将允许客户端计算机装入该目录,但是在进行故障转移时,装入可能会丢失。

其他参考