跳转到主内容

在 SVM 上启用 pNFS 时,NFSv4.1 客户端读/写操作可能会挂起

Views:
150
Visibility:
Public
Votes:
0
Category:
ontap-9
Specialty:
nas
Last Updated:

适用于

  • ONTAP 9
  • NFS v4.1 或 NFS v4.2
  • 并行 NFS(pNFS)

问题

  • 当 NFS v4.1 或 NFS v4.2 客户端尝试读/写(或运行 ls、cat 或 cd 命令)到启用了 pNFS 的 NFS 导出时,操作挂起或可能会注意到延迟
  • 同时,客户端将错误记录在: /var/log/messages: 
    • nfs: [LIF address/hostname] server not responding 
  • SVM 有多个 Data LIF,并非所有 LIF 都可从客户端访问

原因

  • pNFS 可以使用分配给 SVM 的任何 LIF,并且客户端可能无法访问或路由该 LIF
  • 读/写操作挂起(包括 ls 命令),因为客户端无法访问数据 LIF IP。

解决方案

临时解决策
    在 SVM 上禁用对 pNFS 的支持
    • ::> nfs modify -v4.1-pnfs disabled
  • 或者,使用不使用 pNFS 功能的 NFSv3

追加信息

  • 有关 pNFS 的详细信息,请参阅 TR-4063
  • 当 NFS 客户端尝试从数据卷访问文件以进行读取或写入操作时,客户端会向指定为元数据服务器的 NetApp LIF 发出 LAYOUTGET  调用,然后进行 GETDEVICEINFO  调用。
  • 在此调用期间,元数据服务器提供有关具有卷的节点的网络路径信息。
  • NFS 服务器将查找 pNFS 的可用数据 LIF,包括所有数据 LIF,无论子网、VLAN 等如何。
  • 当引入此问题的不可访问数据 LIF 不是数据访问所必需的,但对于例如管理访问,LIF 可以配置为 'data-protocol none'。这将防止 LIF 被引用到客户端以进行数据访问。

注意:当客户端尝试在 SVM 上禁用 pNFS 的情况下进行读/写时,该操作正常工作,没有任何问题。

  • 已在 SVM 上启用 pNFS:

::*> vserver nfs show -vserver svm -fields v4.0,v4.1,v4.1-pnfs,v4.1-implementation-domain
vserver   v4.0    v4.1    v4.1-implementation-domain v4.1-pnfs
--------- ------- ------- -------------------------- ---------
svm       enabled enabled naslab.local               enabled

  • SVM 具有来自不同网段的 LIF,并非所有 LIF 都可由客户端访问。

::*> network interface show -vserver svm
            Logical    Status     Network            Current       Current Is
Vserver     Interface  Admin/Oper Address/Mask       Node          Port    Home
----------- ---------- ---------- ------------------ ------------- ------- ----
svm
            bad          up/up    10.xx.42.yy/24   node-01 e0d true <<< This LIF is not reachable by Client
            good         up/up    10.xx.41.yy/24   node-02 e0d true

  • 客户端使用 LIF good (10.xx.41.yy/24) 从 node-02 挂载导出。

[root@nisserver1 ~]# mount | grep -i mnt
10.xx.41.yy:/unixtest1 on /mnt type nfs4
(rw,relatime,vers=4.1,rsize=65536,wsize=65536,namlen=255,hard,proto=tcp,port=0,

timeo=600,retrans=2,sec=sys,clientaddr=10.xx.41.zz,local_lock=none,addr=10.xx.41.yy)

  • NFS 导出来自节点 node-01 上的聚合

::*> volume show -vserver svm -volume unixtest1 -fields aggregate
vserver   volume    aggregate
--------- --------- ---------
svm       unixtest1 aggr1 <<<<<<

::*> storage aggregate show -aggregate aggr1 -fields node
aggregate node
--------- ----------------------
aggr1     node-01 <<<<<<<

  • 跟踪显示 ONTAP 返回从客户端无法访问的 lif IP,并且客户端没有从该 lif 获得任何响应:

130 2019-04-24 14:05:43.899496 0.000129000 0 10.1.1.46 10.1.1.209 NFS 816,2049 248 V4 Call (Reply In 131) LAYOUTGET
131 2019-04-24 14:05:43.899535 0.000039000 0 10.1.1.209 10.1.1.46 NFS 2049,816 248 V4 Reply (Call In 130) LAYOUTGET
132 2019-04-24 14:05:43.899632 0.000097000 0 10.1.1.46 10.1.1.209 NFS 816,2049 176 V4 Call (Reply In 133) GETDEVINFO
133 2019-04-24 14:05:43.899664 0.000032000 0 10.1.1.209 10.1.1.46 NFS 2049,816 152 V4 Reply (Call In 132) GETDEVINFO
Opcode: GETDEVINFO (47)
    r_netid: tcp
        length: 3
        contents: tcp
        fill bytes: opaque data
    r_addr: 10.1.1.208.8.1
        length: 17
        contents: 10.1.1.208.8.1 

内部参考

Sign in to view the entire content of this KB article.

New to NetApp?

Learn more about our award-winning Support

NetApp provides no representations or warranties regarding the accuracy or reliability or serviceability of any information or recommendations provided in this publication or with respect to any results that may be obtained by the use of the information or observance of any recommendations provided herein. The information in this document is distributed AS IS and the use of this information or the implementation of any recommendations or techniques herein is a customer's responsibility and depends on the customer's ability to evaluate and integrate them into the customer's operational environment. This document and the information contained herein may be used solely in connection with the NetApp products discussed in this document.