部署网络文件系统

适用范围:Windows Server 2022、Windows Server 2019 和 Windows Server 2016。

网络文件系统 (NFS) 提供一个文件共享解决方案,可用于通过 NFS 协议在运行 Windows Server 和 UNIX 操作系统的计算机之间传输文件。 本文介绍部署 NFS 时应执行的步骤。

网络文件系统中的新增功能

下面是对 Windows Server 中 NFS 的更改:

  • 支持 NFS 版本 4.1:此协议版本包含以下增强功能。

    • 使防火墙导航变得更容易,从而提高了可访问性。
    • 支持 RPCSEC_GSS 协议,提供更强的安全性并允许客户端和服务器协商安全性。
    • 支持 UNIX 和 Windows 文件语义。
    • 利用群集文件服务器部署。
    • 支持 WAN 友好型复合过程。
  • 适用于 Windows PowerShell 的 NFS 模块:内置 NFS cmdlet 的可用性使各种操作更容易实现自动化。 cmdlet 名称与其他 Windows PowerShell cmdlet 一致(使用如“Get”和“Set”这样的动词),使得熟悉 Windows PowerShell 的用户可以更容易了解如何使用新的 cmdlet。

  • NFS 管理改进:新的基于 UI 的集中式管理控制台除了可管理群集文件服务器外,还简化了 SMB 和 NFS 共享、配额、文件屏蔽和分类的配置和管理。

  • 标识映射改进:此改进包括新的 UI 支持以及用于配置标识映射的基于任务的 Windows PowerShell cmdlet。 管理员可以快速配置标识映射源,然后为用户创建单独的映射标识。 改进后,管理员可以轻松设置共享,以便通过 NFS 和 SMB 进行多协议访问。

  • 群集资源模型重构:此改进使 Windows NFS 和 SMB 协议服务器的群集资源模型保持一致,并简化了管理。 对于具有多个共享的 NFS 服务器,故障转移包含大量 NFS 共享的卷所需的资源网络和 WMI 调用数都会减少。

  • 与恢复密钥管理器集成:恢复密钥管理器跟踪文件服务器和文件系统状态。 该工具使 Windows SMB 和 NFS 协议服务器能够进行故障转移,而不会中断将数据存储在文件服务器上的客户端或服务器应用程序。 此改进是运行 Windows Server 的文件服务器的连续可用性功能的关键组成部分。

使用网络文件系统的方案

NFS 支持基于 Windows 的操作系统和基于 UNIX 的操作系统的混合环境。 以下部署方案演示如何使用 NFS 部署连续可用的 Windows Server 文件服务器。

在异类环境中预配文件共享

此方案适用于拥有同时包含 Windows 和其他操作系统(例如 UNIX 或基于 Linux 的客户端计算机)的异类环境的组织。 在此方案中,可通过 SMB 和 NFS 协议提供对同一文件共享的多协议访问。 通常,在此方案中部署 Windows 文件服务器时,你希望促进基于 Windows 的计算机和基于 UNIX 的计算机上的用户之间的协作。 配置文件共享后,将通过 SMB 和 NFS 协议进行共享。 Windows 用户通过 SMB 协议访问文件,而基于 UNIX 的计算机上的用户通常通过 NFS 协议访问文件。

对于此方案,必须具有有效的标识映射源配置。 Windows Server 支持以下标识映射存储:

  • 映射文件
  • Active Directory 域服务 (AD DS)
  • 符合 RFC 2307 的 LDAP 存储,例如 Active Directory 轻型目录服务 (AD LDS)
  • 用户名映射 (UNM) 服务器

在基于 UNIX 的环境中预配文件共享

在此方案中,Windows 文件服务器部署在主要基于 UNIX 的环境中,为基于 UNIX 的客户端计算机提供对 NFS 文件共享的访问。 非映射 UNIX 用户访问 (UUUA) 选项最初是在 Windows Server 2008 R2 中为 NFS 共享实现的。 此选项使 Windows 服务器能够存储 NFS 数据,而无需创建 UNIX 到 Windows 的帐户映射。 UUUA 使管理员能够快速预配和部署 NFS,而无需配置帐户映射。 为 NFS 启用 UUUA 后,UUUA 会创建自定义安全标识符 (SID) 来表示非映射用户。 映射用户帐户使用标准 Windows SID,而非映射用户帐户使用自定义 NFS SID。

系统要求

NFS 服务器可以安装在任何版本的 Windows Server 上。 可在运行 NFS 服务器或 NFS 客户端的基于 UNIX 的计算机中使用 NFS,前提是这些 NFS 服务器和客户端实现符合以下协议规范之一:

  • NFS 版本 4.1 协议规范(如 RFC 5661 所定义)
  • NFS 版本 3 协议规范(如 RFC 1813 所定义)
  • NFS 版本 2 协议规范(如 RFC 1094 所定义)

部署 NFS 基础结构

需要部署以下计算机并将它们连接到局域网 (LAN):

  • 一台或多台运行 Windows Server 的计算机,你将在其上安装两个主要的 NFS 服务组件:NFS 服务器和 NFS 客户端。 可将这些组件安装在同一计算机上,也可安装在不同计算机上。
  • 运行 NFS 服务器和 NFS 客户端软件的一台或多台基于 UNIX 的计算机。 运行 NFS 服务器的基于 UNIX 的计算机承载 NFS 文件共享或导出,该文件共享或导出由作为客户端运行 Windows Server 的计算机使用 NFS 客户端进行访问。 可根据需要在同一台基于 UNIX 的计算机或不同的基于 UNIX 的计算机上安装 NFS 服务器和客户端软件。
  • 在 Windows Server 2008 R2 功能级别运行的域控制器。 该域控制器为 Windows 环境提供用户身份验证信息和映射。
  • 如果未部署域控制器,则可使用网络信息服务 (NIS) 服务器为 UNIX 环境提供用户身份验证信息。 如果需要,也可使用存储在运行用户名映射服务的计算机上的密码和组文件。

使用服务器管理器在服务器上安装网络文件系统

  1. 在“添加角色和功能”向导的“服务器角色”下,展开“文件和存储服务”> 展开“文件和 iSCSI 服务”。

  2. 选择“文件服务器”和“NFS 服务器”,然后选择“下一步”。

  3. 可通过对话框了解所选功能所需的其他工具。

    • 选中所需功能的框,然后选择“添加功能”。
  4. 选择“下一步”,然后选择任何其他首选功能。 准备就绪后,选择“下一步”。

  5. 要在服务器上安装 NFS 组件,请选择“安装”。

使用 Windows PowerShell 在服务器上安装网络文件系统

  1. 启动 Windows PowerShell。 在任务栏上选择并按住(或右键单击)PowerShell 图标,然后选择“以管理员身份运行”。

  2. 运行以下 Windows PowerShell 命令:

Import-Module ServerManager
Add-WindowsFeature FS-NFS-Service
Import-Module NFS

配置 NFS 身份验证

对于 NFS 版本 4.1 和 NFS 版本 3.0 协议,建议使用 Kerberos (RPCSEC_GSS)。 下面三个选项可提高安全保护级别:

  • Krb5:在授予用户对文件共享的访问权限之前,使用 Kerberos 版本 5 协议对用户进行身份验证。

  • Krb5i:使用 Kerberos 版本 5 协议进行有关完整性检查(校验和)的验证,验证数据是否尚未更改。

  • Krb5p:使用 Kerberos 版本 5 协议,对 NFS 通信进行有关隐私加密的验证。 此选项是最安全的 Kerberos 选项。

    注意

    也可选择不使用上述 Kerberos 身份验证方法,而通过 AUTH_SYS 启用未映射用户访问。 强烈建议不要使用此选项,因为它会删除所有身份验证保护,并允许有权访问 NFS 服务器的任何用户访问数据。 使用非映射用户访问时,可以指定允许通过 UID 或 GID 进行未映射用户访问(这是默认设置)。 还可允许匿名访问。

下一部分讨论如何配置 NFS 身份验证。

创建 NFS 文件共享

可使用服务器管理器或 Windows PowerShell NFS cmdlet 创建 NFS 文件共享。

使用服务器管理器创建 NFS 文件共享

  1. 以本地管理员组成员的身份登录服务器。

  2. 服务器管理器自动启动。

    • 如果该工具未自动启动,请选择“启动”。 输入“servermanager.exe”,然后选择“服务器管理器”。
  3. 在左侧,选择“文件和存储服务”,然后选择“共享”。

  4. 在“共享”列下,选择“要创建文件共享,请启动新建共享向导”。

  5. 在“选择配置文件”页上,选择“NFS 共享 - 快速”或“NFS 共享 - 高级”,然后选择“下一步”。

  6. 在“共享位置”页上,选择服务器和卷,然后选择“下一步”。

  7. 在“共享名称”页上,输入新共享的名称,然后选择“下一步”。

  8. 在“身份验证”页上,指定要使用的身份验证方法,然后选择“下一步”。

  9. 在“共享权限”页上,选择“添加”。 “添加权限”对话框随即打开。

    1. 选择要授予的用户权限级别:主机、网络组、客户端组或所有计算机。

    2. 对于所选用户级别,输入要向其授予共享权限的用户名称。

    3. 使用下拉菜单选择首选“语言编码”。

    4. 使用下拉菜单选择首选“共享权限”。

    5. (可选)选中“允许根访问”复选框。 不建议使用此选项。

    6. 选择 添加 。 此时,对话框关闭。 选择“下一步” 。

  10. 在“权限”页上,为所选用户配置访问控制。 准备就绪后,选择“下一步”。

  11. 在“确认”页上,查看配置,然后选择“创建”以创建 NFS 文件共享。

Windows PowerShell 等效命令

以下 Windows PowerShell cmdlet 也可创建 NFS 文件共享(其中 nfs1 是共享的名称,而 C:\\shares\\nfsfolder 是文件路径):

New-NfsShare -Name nfs1 -Path C:\shares\nfsfolder

已知问题

NFS 版本 4.1 允许使用非法字符创建或复制文件名。 如果尝试使用 vi 编辑器打开文件,则会显示文件已损坏。 无法从 vi 保存文件、重命名、移动文件或更改权限。 因此,请避免使用非法字符。