你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

为 Linux 或 Windows VM 装载 NFS 卷

可以为 Windows 或 Linux 虚拟机 (VM) 装载 NFS 文件卷。

要求

  • 必须至少有一个导出策略才能访问 NFS 卷。
  • 由于 NFS 是一项网络连接服务,因此需要跨防火墙打开特定的网络端口,以确保正常运行。 确保配置保持一致:
端口和说明 NFSv3 NFSv4.x
端口 111 TCP/UDP – Portmapper
用于协商 NFS 请求中使用的端口。
White checkmark in green box N/A*
端口 635 TCP/UDP – Mountd
用于接收传入装载请求。
White checkmark in green box N/A*
端口 2049 TCP/UDP – NFS
NFS 流量。
White checkmark in green box White checkmark in green box
端口 4045 TCP/UDP – 网络锁定管理器(NLM)
处理锁定请求。
White checkmark in green box N/A*
端口 4046 TCP/UDP – 网络状态监视器 (NSM)
通知 NFS 客户端重启服务器以便进行锁定管理。
White checkmark in green box N/A*
端口 4049 TCP/UDP – Rquotad
处理 远程配额 服务。 (可选)
White checkmark in green box N/A*

* 合并到 NFSv4.1 标准中。 通过端口 2049 传递的所有流量。

关于出站客户端端口

出站客户端端口请求利用端口范围进行 NFS 连接。 例如,虽然Azure NetApp 文档装载端口在 635 处是静态的,但客户端可以使用 1 到 1024 范围内的动态端口号启动连接。 (例如,1010 -> 635)

由于该范围内只有 1023 个端口,因此并发装载请求应限制为低于该数量。 否则,如果在请求时没有可用的传出端口,则装载尝试会失败。 装载请求是临时的,因此在建立装载后,出站客户端装载端口将释放连接。

如果使用 UDP 进行装载,则装载请求完成后,最多 60 秒不会释放端口。 如果使用装载选项中指定的 TCP 进行装载,则装载端口会在完成后释放。

针对 NFS(定向到端口 2049)的出站客户端请求允许每个 Azure NetApp 文档 NFS 服务器最多 65,534 个并发客户端端口。 完成 NFS 请求后,端口将返回到池。

网络地址转换和防火墙

如果网络地址转换(NAT)或防火墙位于 NFS 客户端和服务器之间,请考虑:

  • NFS 维护回复缓存,以跟踪某些操作,以确保它们已完成。 此回复缓存基于源端口和源 IP 地址。 在 NFS 操作中使用 NAT 时,源 IP 或端口可能会更改,这可能会导致数据复原问题。 如果使用 NAT,应添加 NFS 服务器 IP 和端口的静态条目,以确保数据保持一致。
  • 此外,NAT 还可能导致 NFS 装载挂起,因为 NAT 如何处理空闲会话。 如果使用 NAT,配置应考虑到空闲会话,并无限期地将其保留为防止问题。 NAT 还可以创建 NLM 锁填海问题。
  • 某些防火墙可能会在一定时间内删除空闲的 TCP 连接。 例如,如果客户端已连接 NFS 装载,但一段时间未使用它,则被视为空闲。 发生这种情况时,客户端对装载的访问可能会挂起,因为网络连接已被防火墙切断。 Keepalives 可以帮助防止这种情况,但最好通过将防火墙配置为不主动拒绝过时会话中的数据包来解决潜在的空闲客户端问题。

有关 NFS 锁定的详细信息,请参阅了解Azure NetApp 文档中的文件锁定和锁定类型。

有关 NFS 如何在Azure NetApp 文档中运行的详细信息,请参阅了解 Azure NetApp 文档中的 NAS 协议。

在 Linux 客户端上装载 NFS 卷

  1. 请查看 Linux NFS 装载选项最佳做法
  2. 选择“卷”窗格,然后选择要装载的 NFS 卷
  3. 若要使用 Linux 客户端装载 NFS 卷,请从所选卷中选择“装载说明”。 按照显示的说明装载卷。 Screenshot of Mount instructions.
    • 请确保使用 mount 命令中的 vers 选项来指定与要装载的卷相对应的 NFS 协议版本。 例如,如果 NFS 版本为 NFSv4.1:sudo mount -t nfs -o rw,hard,rsize=65536,wsize=65536,vers=4.1,tcp,sec=sys $MOUNTTARGETIPADDRESS:/$VOLUMENAME $MOUNTPOINT
    • 如果使用 NFSv4.1,并且配置需要使用具有相同主机名的 VM(例如,在 DR 测试中),请参阅 配置两个具有相同主机名的 VM 以访问 NFSv4.1 卷
    • 在Azure NetApp 文档中,使用 NFSv4.1 时启用 NFSv4.2,但 NFSv4.2 正式不受支持。 如果未在客户端的装载选项(vers=4.1)中指定 NFSv4.1,则客户端可以协商到允许的最高 NFS 版本,这意味着装载不受支持合规性。
  4. 如果希望在启动或重启 Azure VM 时自动装载卷,请将条目添加到主机上的 /etc/fstab 文件中。 例如:$ANFIP:/$FILEPATH /$MOUNTPOINT nfs bg,rw,hard,noatime,nolock,rsize=65536,wsize=65536,vers=3,tcp,_netdev 0 0
    • $ANFIP 是在“卷属性”菜单中找到的 Azure NetApp 文件卷的 IP 地址
    • $FILEPATH 是 Azure NetApp 文件卷的导出路径
    • $MOUNTPOINT 是在用于装载 NFS 导出的 Linux 主机上创建的目录
  5. 如果要装载 NFS Kerberos 卷,请参考配置 NFSv4.1 Kerberos 加密以了解更多详细信息。
  6. 还可以通过 NFS 从 Unix 和 Linux 客户端访问 SMB 卷,方法是将卷的协议访问设置为“双协议”。 这样就能通过 NFS(NFSv3 或 NFSv4.1)和 SMB 访问卷。 有关详细信息,请参阅创建双协议卷。 记下安全样式映射表。 从 Unix 和 Linux 客户端装载双协议卷依赖于与常规 NFS 卷相同的过程。

在 Windows 客户端上装载 NFS 卷

不支持在 Windows 客户端上装载 NFSv4.1 卷。 有关详细信息,请参阅网络文件系统概述

如果要使用 NFS 在 Windows 客户端上装载 NFSv3 卷:

  1. 首先将卷装载到 Unix 或 Linux VM
  2. 对该卷运行 chmod 777chmod 775 命令。
  3. 使用装载选项 mtype=hard 通过 Windows 上的 NFS 客户端装载卷,以减少连接问题。 有关详细信息,请参阅用于装载 NFS 卷的 Windows 命令行实用工具。 例如:Mount -o rsize=256 -o wsize=256 -o mtype=hard \\10.x.x.x\testvol X:*
  4. 还可以通过 SMB 从 Windows 客户端访问 NFS 卷,方法是将卷的协议访问设置为“双协议”。 此设置允许通过 SMB 和 NFS(NFSv3 或 NFSv4.1)访问卷,并且性能优于在 Windows 上使用 NFS 客户端和 NFS 卷。 有关详细信息,请参阅创建双协议卷并记下安全样式映射表。 使用与常规 SMB 卷相同的过程从 Windows 客户端装载双协议卷。

后续步骤