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

Azure NetApp 文件的 NFS 常见问题解答

本文解答了有关 Azure NetApp 文件的 NFS 协议方面的常见问题 (FAQ)。

我希望在启动或重新启动 Azure VM 时自动装载卷。 如何针对永久 NFS 卷配置我的主机?

若要使 NFS 卷在 VM 启动或重新启动时自动装载,请在主机上的 /etc/fstab 文件中添加一个条目。

有关详细信息,请参阅为 Windows 或 Linux 虚拟机装载卷

Azure NetApp 文件支持哪个 NFS 版本?

Azure NetApp 文件支持 NFSv3 和 NFSv4.1。 可以使用任一 NFS 版本创建卷

Azure NetApp 文件是否正式支持 NFSv4.2?

目前,Azure NetApp 文件不正式支持 NFSv4.2 及其辅助功能(包括稀疏文件操作、扩展属性和安全标签)。 但是,使用 NFSv4.1 时为 NFS 服务器启用此功能,这意味着 NFS 客户端可以通过以下两种方式之一使用 NFSv4.2 协议进行装载:

  • 在装载选项中显式指定vers=4.2nfsvers=4.2nfsvers=4,minorversion=2
  • 未在装载选项中指定 NFS 版本,并允许 NFS 客户端协商允许的、受支持的最高 NFS 版本。

在大多数情况下,如果使用 NFSv4.2 装载客户端,则无法看到任何问题。 但是,如果一些客户端不完全支持 NFSv4.2 或 NFSv4.2 扩展属性功能,则可能会遇到问题。 此外,由于 Azure NetApp 文件当前不支持 NFSv4.2,因此 NFSv4.2 的任何问题都超出范围。

为了避免客户端装载 NFSv4.2 出现任何问题并符合可支持性,请确保在装载选项中指定 NFSv4.1 版本,或者将客户端的 NFS 客户端配置设置为将 NFS 版本上限设置为 NFSv4.1。

如何启用根压缩?

你可以使用卷的导出策略指定根帐户是否可以访问该卷。 有关详细信息,请参阅为 NFS 卷配置导出策略

我能否对多个卷使用相同的文件路径?

同一文件路径可用于:

  • 在不同区域中部署的卷
  • 部署到同一区域中不同可用性区域的卷

如果使用:

  • 区域卷(无可用性区域)或
  • 同一可用性区域中的卷,

可以使用同一文件路径,但是文件路径在每个委派子网中必须具有唯一性或分配给不同的委托子网。

有关详细信息,请参阅为 Azure NetApp 文件创建 NFS 卷为 Azure NetApp 文件创建双重协议卷

尝试通过 Windows 客户端访问 NFS 卷时,为什么客户端需要很长时间来搜索文件夹和子文件夹?

确保在 Windows 客户端上启用 CaseSensitiveLookup 以加快文件夹和子文件夹的查找:

  1. 使用以下 PowerShell 命令启用 CaseSensitiveLookup:
    Set-NfsClientConfiguration -CaseSensitiveLookup 1
  2. 在 Windows Server 上装载卷。
    示例:
    Mount -o rsize=1024 -o wsize=1024 -o mtype=hard \\10.x.x.x\testvol X:*

Azure NetApp 文件如何支持 NFSv4.1 文件锁定?

对于 NFSv4.1 客户端,Azure NetApp 文件支持 NFSv4.1 文件锁定机制,该机制在基于租用的模型下维护所有文件锁定的状态。

根据 RFC 3530,Azure NetApp 文件为 NFS 客户端拥有的所有状态定义了一个租用期限。 如果客户端未在定义的期限内续订其租用时间,则服务器将释放与客户端的租用关联的所有状态。

例如,如果装载卷的客户端在超时后无响应或崩溃,则将释放锁定。 客户端可以通过执行诸如读取文件之类的操作来显式或隐式地续订其租用时间。

宽限期定义了特殊处理的期限,在此期间,客户端可以尝试在服务器恢复期间重新获得其锁定状态。 租用的默认超时为 30 秒,宽限期为 45 秒。 在此之后,将释放客户端的租用。

Azure NetApp 文件还支持中断性文件锁定

要详细了解 Azure NetApp 文件中的文件锁定,请参阅文件锁定

为什么目录.snapshot在 NFSv4.1 卷中不可见,但在 NFSv3 卷中可见?

根据设计,.snapshot 目录永远不会对 NFSv4.1 客户端可见。 默认情况下,目录.snapshot 对 NFSv3 客户端可见。 若要对 NFSv3 客户端隐藏目录 .snapshot,请编辑卷的属性以隐藏快照路径

Oracle dNFS

dNFS 是否需要任何 Oracle 补丁?

重要

使用 Oracle 19c 及更高版本的客户必须确保 Oracle bug 32931941 已修补。 Oracle 客户当前使用的大多数补丁捆绑包“不”包括此补丁。 该补丁仅包含在一个最近的补丁捆绑包子集中。

如果数据库暴露于此 bug,网络中断很可能导致断块损坏。 网络中断包括存储终结点重定位、卷重定位和存储服务维护事件等事件。 可能不必立即检测到损坏。

此损坏既不是 ONTAP 上的 bug,也不是 Azure NetApp 文件服务本身的错误,而是 Oracle dNFS bug 导致的结果。 在特定网络中断或重新配置事件期间对 NFS IO 的响应处理不当。 数据库将错误地写入一个块,该块在写入时正在更新。 在一些情况下,同一块的后续覆盖将以无提示方式损坏损坏的块。 否则,Oracle 数据库进程最终会检测到它。 错误应记录在警报日志中,Oracle 实例可能会终止。 此外,dbv 和 RMAN 操作也可以检测损坏。

Oracle 发布了文档 1495104.1,该文档持续更新推荐的 dNFS 补丁。 如果数据库使用 dNFS,请确保 DBA 团队正在检查本文档中的更新。

重要

在 Azure NetApp 文件卷上将 Oracle dNFS 与 NFSv4.1 配合使用的客户必须确保采取是否需要任何修补程序才能将 Oracle dNFS 与 NFSv4.1 配合使用?下提到的操作。

Oracle dNFS 与 NFSv4.1 一起使用是否需要任何补丁?

重要

如果数据库将 Oracle dNFS 与 NFSv4.1 一起使用,则“需要针对 Oracle bug 33132050 和 33676296 进行修补。 可能必须为其他版本的 Oracle 请求向后移植。 例如,在编写时,这些补丁可用于 19.11,但尚不可用于 19.3。 如果在支持案例中引用这些 bug 编号,Oracle 的支持工程师会知道该做什么。

此要求通常适用于基于 ONTAP 的系统和服务,其中包括本地 ONTAP 和Azure NetApp 文件。

如果未应用这些补丁,可能出现的问题示例:

  1. 后端存储终结点移动时数据库挂起。
  2. Azure NetApp 文件服务维护事件时数据库挂起。
  3. 正常操作期间 Oracle 短暂挂起,可能会或可能不会引起注意。
  4. 缓慢的 Oracle 关闭:如果监视关闭过程,会看到暂停,这些暂停随着 dNFS I/O 超时可能会累计达到几分钟的延迟。
  5. 读取时不正确的 dNFS 回复缓存行为,这将挂起数据库。

补丁包括 dNFS 会话管理和 NFS 回复缓存的更改,用于解决这些问题。

“如果无法修补这两个 bug”,则不得将 dNFS 与 NFSv4.1 一起使用。 可以禁用 dNFS 或切换到 NFSv3。

Oracle dNFS 和 NFSv4.1 能否使用多路径?

使用 NFSv4.1 时,dNFS 不适用于多个路径。 如果需要多个路径,必须使用 NFSv3。 dNFS 要求适用于 NFSv4.1 的群集范围clientIDsessionID中继以使用多个路径,这不受 Azure NetApp 文件支持。 因此,你将在 dNFS 启动期间遇到挂起

后续步骤