将 NFS 存储与 ESXi 配合使用时,请遵循与 NFS 服务器配置、网络连接、NFS 数据存储等相关的特定准则。

NFS 服务器配置

在将 NFS 服务器配置为与 ESXi 结合使用时,请遵循存储供应商的建议。除了这些一般性建议,还请使用适用于 vSphere 环境中 NFS 的特定指导准则。

准则包括以下项。

  • 确保使用 VMware HCL 中列出的 NAS 服务器。使用正确的服务器固件版本。
  • 确保使用 NFS 通过 TCP 导出 NFS 卷。
  • 确保 NAS 服务器将特定共享导出为 NFS 3 或 NFS 4.1。NAS 服务器不得为同一共享提供两种协议版本。由于 ESXi 不会阻止通过不同 NFS 版本挂载相同的共享,因此 NAS 服务器必须强制执行此策略。
  • NFS 3 和非 Kerberos (AUTH_SYS) NFS 4.1 不支持借助于非 root 凭据启用对 NFS 卷访问权的委派用户功能。如果使用 NFS 3 或非 Kerberos NFS 4.1,请确保每台主机对卷具有根访问权限。不同的存储供应商采用不同的方法启用此功能,但通常 NAS 服务器使用 no_root_squash 选项。如果 NAS 服务器未授予根访问权限,您仍然可以在主机上挂载 NFS 数据存储。但是,无法在数据存储上创建任何虚拟机。
  • 如果底层 NFS 卷是只读的,则应确保该卷由 NFS 服务器导出为只读共享,或在 ESXi 主机上将它挂载为只读数据存储。否则,主机会将该数据存储视为可以读写,并可能无法打开文件。

NFS 网络

ESXi 主机使用 TCP/IP 网络连接来访问远程 NAS 服务器。使用 NFS 存储配置网络时,需遵循一定的准则和最佳实践。

有关详细信息,请参见《vSphere 网络连接》文档。

  • 对于网络连接,请在 ESXi 主机中使用标准网络适配器。
  • ESXi 支持第 2 层和第 3 层网络交换机。如果使用第 3 层交换机,则 ESXi 主机和 NFS 存储阵列必须位于不同的子网上,并且网络交换机必须处理路由信息。
  • 为 NFS 存储配置 VMkernel 端口组。您可以在现有虚拟交换机 (vSwitch) 或在新 vSwitch 上为 IP 存储创建 VMkernel 端口组。vSwitch 可以是 vSphere 标准交换机 (VSS) 或 vSphere Distributed Switch (VDS)。
  • 如果为 NFS 流量使用多个端口,请确保正确配置虚拟交换机和物理交换机。
  • NFS 3 和 NFS 4.1 支持 IPv6。
  • 可以使用 nconnect 选项为 NFS 存储配置多个连接。对于 NFS 4.1,可以为每个会话创建多个连接。对于 NFS 3,可以挂载具有多个连接的数据存储。默认情况下,每个 NFS 数据存储最多可以设置 4 个连接。但是,可以使用高级 NFS 选项将其增加到最多 8 个。确保所有挂载的 NFS 数据存储上的连接总数不超过 256 个。请参见为 NFS 配置多个 TCP 连接
  • 可以将 NFS 流量隔离到特定 VMkernel 适配器。如果未绑定,则 ESXi 用于 NFS 流量的 VMkernel 适配器出现故障时,网络基础架构会将流量重定向到备用路由。因此,NFS 流量可能会意外地流经随机 VMkernel 适配器。通过 NFS 数据存储的 VMkernel 端口绑定,可将 NFS 卷绑定到特定 VMkernel 适配器以连接到 NFS 服务器。请参见为 NFS 数据存储配置 VMkernel 绑定

NFS 文件锁定

使用文件锁定机制,可以将对存储在服务器上的数据的访问限制为每次仅一个用户或一个进程。两个 NFS 版本的锁定机制不兼容。NFS 3 使用专用锁定,NFS 4.1 则使用本机协议指定的锁定。

ESXi上的 NFS 3 锁定不会使用网络锁定管理器 (NLM) 协议。相反,VMware 提供自带的锁定协议。通过在 NFS 服务器上创建锁定文件来实施 NFS 3 锁定。锁定文件的名称为 .lck-file_id.

NFS 4.1 使用共享预留作为锁定机制。

因为 NFS 3 和 NFS 4.1 客户端使用的锁定协议并不相同,因此您无法使用不同的 NFS 版本在多个主机上挂载相同的数据存储。从两个不兼容的客户端访问同一虚拟磁盘可能导致不正确的行为,并导致数据损坏。

NFS 安全

借助 NFS 3 和 NFS 4.1,ESXi 可支持 AUTH_SYS 安全。此外,对于 NFS 4.1,还支持 Kerberos 安全机制。

NFS 3 支持 AUTH_SYS 安全机制。使用该机制时,存储流量将以未加密格式通过 LAN 进行传输。由于此安全性有限,请仅使用可信网络上的 NFS 存储并隔离不同物理交换机上的流量。您还可以使用专用 VLAN。

NFS 4.1 支持 Kerberos 身份验证协议以确保与 NFS 服务器的通信安全。使用 Kerberos 时,非 root 用户可以访问文件。有关详细信息,请参见在 ESXi 中针对 NFS 4.1 使用 Kerberos

除了 Kerberos,NFS 4.1 还支持采用 AUTH_SYS 安全的传统非 Kerberos 挂载。在此情况下,对 NFS 版本 3 使用根访问准则。
注: 不能对多个主机共享的同一个 NFS 4.1 数据存储使用两个安全机制:AUTH_SYS 和 Kerberos。

NFS 多路径

根据协议规范,NFS 4.1 支持多路径。对于 NFS 3,多路径并不适用。

NFS 3 将一个 TCP 连接用于 I/O。因此,ESXi仅支持 NFS 服务器的一个 IP 地址或主机名上的 I/O,且不支持多路径。根据您的网络基础架构和配置,可以使用网络堆栈配置存储目标的多个连接。在此情况下,必须拥有多个数据存储,且每个数据存储在主机与存储之间使用单独的网络连接。

NFS 4.1 为支持会话中继的服务器提供多路径。中继可用时,可以使用多个 IP 地址访问单个 NFS 卷。不支持客户端 ID 中继。

NFS 和硬件加速

默认情况下,在 NFS 数据存储上创建的虚拟磁盘为精简置备的虚拟磁盘。为了能够创建厚置备虚拟磁盘,必须使用支持“预留空间”操作的硬件加速。

NFS 3 和 NFS 4.1 支持硬件加速,从而允许主机与 NAS 设备相集成并使用 NAS 存储提供的多个硬件操作。有关详细信息,请参见NAS 设备上的 vSphere 硬件加速

NFS 数据存储

在创建 NFS 数据存储时,请务必遵循特定的准则。

NFS 数据存储准则和最佳做法包括以下各项。要创建 NFS 数据存储,请参见 在 vSphere 环境中创建 NFS 数据存储
  • 不能使用不同的 NFS 版本在不同主机上挂载同一数据存储。NFS 3 和 NFS 4.1 客户端是不兼容的,并且使用不同的锁定协议。因此,从两个不兼容的客户端访问同一虚拟磁盘可能导致不正确的行为,并导致数据损坏。
  • NFS 3 和 NFS 4.1 数据存储可以在同一主机上共存。
  • ESXi 无法自动将 NFS 版本 3 自动升级至版本 4.1,但您可以使用其他转换方法。有关信息,请参见NFS 升级
  • 当在不同主机上挂载相同 NFS 3 卷时,确保各主机之间的服务器名称和文件夹名称相同。如果名称不匹配,则主机会将同一 NFS 版本 3 卷视为两个不同的数据存储。该错误可能导致诸如 vMotion 之类的功能运行失败。例如,如果在一台主机上输入 filer 作为服务器名称,而在另一台主机上输入 filer.domain.com 作为服务器名称,就出现了这种名称不匹配的情况。此准则不适用于 NFS 版本 4.1。
  • 如果使用非 ASCII 字符命名数据存储和虚拟机,请确保基础 NFS 服务器提供了国际化支持。如果该服务器不支持国际字符,请仅使用 ASCII 字符,否则可能会出现不可预知的故障。

ESXi 中使用第 3 层路由连接访问 NFS 存储

使用第 3 层 (L3) 路由连接访问 NFS 存储时,请考虑某些要求和限制。

确保您的环境满足以下要求:
  • 在 IP 路由器中使用 Cisco 的热备份路由器协议 (HSRP)。如果使用的是非 Cisco 路由器,请使用虚拟路由器冗余协议 (VRRP)。
  • 要区分具有带宽限制的网络上 NFS L3 流量的优先级,或区分拥堵网络上的 NFS L3 流量的优先级,请使用服务质量 (QoS)。有关详细信息,请参见路由器文档。
  • 遵循存储供应商提供的路由 NFS L3 建议。有关详细信息,请联系您的存储供应商。
  • 停用网络 I/O 资源管理 (NetIORM)。
  • 如果计划使用具有机架置顶式交换机或独立于交换机的 I/O 设备分区的系统,请联系您的系统供应商获取兼容性和支持。
在 L3 环境中,以下限制适用:
  • 该环境不支持 VMware Site Recovery Manager。
  • 该环境仅支持 NFS 协议。在同一物理网络内不使用其他存储协议(例如 FCoE)。
  • 该环境中的 NFS 流量不支持 IPv6。
  • 该环境中的 NFS 流量仅可以通过 LAN 路由。不支持其他环境(例如 WAN)。

NFS 存储 ESXi 的防火墙配置

了解挂载 NFS 数据存储版本 3 或 4.1 时 ESXi 创建的防火墙规则集文件 nfsClientnfs41client

有关防火墙配置的常规信息,请参见《vSphere 安全性》文档中的配置 ESXi 防火墙

NFS 客户端防火墙行为

NFS 客户端防火墙规则集的行为方式与其他 ESXi 防火墙规则集不同。挂载或卸载 NFS 数据存储时,ESXi 将配置 NFS 客户端设置。对于不同版本的 NFS,行为有所不同。

添加、挂载或卸载 NFS 数据存储时,产生的行为取决于 NFS 版本。

NFS v3 防火墙行为

添加或挂载 NFS v3 数据存储时,ESXi 将检查 NFS 客户端 (nfsClient) 防火墙规则集的状态。

  • 如果停用了 nfsClient 规则集,则 ESXi 将激活规则集,并通过将 allowedAll 标记设置为 FALSE 来停用“允许所有 IP 地址”策略。NFS 服务器的 IP 地址将会添加到允许的出站 IP 地址的列表中。
  • 如果激活了 nfsClient 规则集,则规则集状态和允许的 IP 地址策略将不会更改。NFS 服务器的 IP 地址将会添加到允许的出站 IP 地址的列表中。
注: 如果手动激活 nfsClient 规则集或手动设置“允许所有 IP 地址”策略,则将 NFS v3 数据存储添加到系统之前或之后,卸载最新 NFS v3 数据存储时将替代您的设置。卸载所有 NFS v3 数据存储时,将停用 nfsClient 规则集。

移除或卸载 NFS v3 数据存储时,ESXi 会执行以下操作之一。

  • 如果未从已卸载数据存储的服务器挂载任何剩余的 NFS v3 数据存储,则 ESXi 将从出站 IP 地址列表中移除该服务器的 IP 地址。
  • 如果执行卸载操作后没有剩余任何挂载的 NFS v3 数据存储,则 ESXi 将停用 nfsClient 防火墙规则集。

NFS v4.1 防火墙行为

挂载第一个 NFS v4.1 数据存储时,ESXi 将激活 nfs41client 规则集并将其 allowedAll 标记设置为 TRUE。此操作将打开所有 IP 地址的端口 2049。卸载 NFS v4.1 数据存储不会影响防火墙状态。也就是说,第一个 NFS v4.1 挂载将打开端口 2049,除非明确关闭该端口,否则该端口将保持激活状态。

验证 NFS 客户端的防火墙端口

要启用对 NFS 存储的访问,则在挂载 NFS 数据存储时,ESXi 将自动打开 NFS 客户端的防火墙端口。出于故障排除原因,您可能需要验证相关端口是否已打开。

过程

  1. vSphere Client 中,导航到 ESXi 主机。
  2. 单击配置选项卡。
  3. 系统下,单击防火墙,然后单击编辑
  4. 向下滚动到相应版本的 NFS 以确保端口已打开。