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

为 Linux 或 Windows VM 装载 NFS 卷

可以在 Linux 和 Windows 虚拟机 (VM) 上装载 NFS 文件。

要求

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

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

关于出站客户端端口

出站客户端端口请求利用端口范围进行 NFS 连接。 Azure NetApp 文件装载端口静态为 635。 客户端可以使用 1 到 1023 范围内的动态端口号启动连接。 例如,虽然 Azure NetApp 文件装载端口为 635,但客户端可以使用动态端口,如 1010。

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

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

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

网络地址转换和防火墙

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

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

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

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

在 Linux 客户端上装载 NFS 卷

在 Linux 客户端上装载 NFS 卷之前,请查看 Linux NFS 装载选项最佳做法

  1. 选择“卷”窗格,然后选择要装载的 NFS 卷
  2. 若要使用 Linux 客户端装载 NFS 卷,请从所选卷中选择“装载说明”。 按照显示的说明装载卷。 装载说明的屏幕截图。
    • 请确保使用 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 版本,这意味着装载不符合支持要求。
  3. 如果希望在启动或重启 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 主机上创建的目录
  4. 如果要装载 NFS Kerberos 卷,请参考配置 NFSv4.1 Kerberos 加密以了解更多详细信息。

注意

还可以通过将卷的协议访问设置为“双协议”,从 Unix 和 Linux 客户端通过 NFS 访问 SMB 卷。双协议设置允许通过 NFS(NFSv3 或 NFSv4.1)和 SMB 访问卷。 有关详细信息,请参阅创建双协议卷。 记下安全样式映射表。 从 Unix 和 Linux 客户端装载双协议卷依赖于与常规 NFS 卷相同的过程。

在 Windows 客户端上装载 NFSv3 卷

重要

不支持在 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:*

注意

还可以通过将卷的协议访问设置为“双协议”,从 Windows 客户端通过 SMB 访问 NFS 卷。此设置支持通过 SMB 和 NFS(NFSv3 或 NFSv4.1)访问卷,并且性能优于在 Windows 上搭配使用 NFS 客户端和 NFS 卷这种方案。 有关详细信息,请参阅创建双协议卷并记下安全样式映射表。 使用与常规 SMB 卷相同的过程从 Windows 客户端装载双协议卷。

后续步骤