跳转到主内容

NetApp_Insight_2020.png 

网络文件系统( NFS )锁定恢复和网络状态监视器的详细信息是什么?

Views:
6
Visibility:
Public
Votes:
0
Category:
data-ontap-7
Specialty:
core
Last Updated:

可不使用  

适用于

Data ONTAP 7 及更早版本

解答

网络状态监视器( NSM )问题会阻止重新引导或集群故障转移后启动 NFS 服务。

Error message: [sm_recover]: no address for host [nfs_client1]

Error message: [sm_recover]: get RPC port for [host=unix1,prog=100024,ver=1,prot=17] failed

NFS 锁定恢复和网络状态监视器

NFS 版本 2 和 3 取决于文件锁定的网络锁定管理器( NLM )协议。另一种称为网络状态监视器( NSM )的 RPC 协议用于通知客户机由于服务器重新引导而失去锁定状态。当 NFS 服务器向客户端授予锁定时,它必须维护拥有该锁定的客户端的记录。此信息在磁盘上进行维护。单个锁定状态本身不是永久性的。如果服务器重新启动、锁定将丢失。需要通知客户机,以便在 NFS 服务器再次可用时可以重新建立锁定。  Storage System NSM 将其信息作为以下文件进行维护: /etc/sm:

state       
monitor
notify重新启动后收到通知的主机列表中当前受监控主机的 NSM 列表的状态

重新引导或群集接管时、文件管理器将读取/etc/sm/monitor该文件、以确定哪些客户机在重新引导或群集接管之前已锁定 NLM 文件。然后将要通知的客户端复制/etc/sm/notify到该文件中,从而用于通知客户端。存储系统通过 NSM 通知客户机它已重新启动并丢失所有锁定。运行 NSM 守护进程 () 的客户机rpc.statd/statd将发出锁定回收请求、以重建在存储系统重新引导期间丢失的锁定状态。  当存储系统重新启动时、有一个 45 秒的 NLM 宽限期、在此期间存储系统将不会执行任何新的锁定请求;只会执行收回请求。宽限期为所有暂挂锁的 NFS 客户机提供了收回锁的机会。

客户端或网络问题可能会阻止 Storage System NSM 通知所有受监视的客户端。无法联系的每个客户端都将在重新引导后延迟启动 NFS 文件服务。  在 NFS 服务完全启动之前、存储系统将尝试与 " 通知 " 列表中的所有客户机联系。每个客户端的最大超时值为 10 秒。

以下是可能阻止存储系统通知客户端的问题:

  • 客户端已关闭或网络上不再可用。
  • 客户机未在 Linux 上运行 NSM 守护程序、在 Solaris 上运行 rpc.statd 。
  • 网络连接或网络设备中断。
  • 存储系统无法解析客户端主机名,因为它无法与 DNS 或 NIS 服务联系。

错误消息

Error message: [sm_recover]: no address for host [nfs_client1]
Error message: [sm_recover]: get RPC port for [host=unix1,prog=100024,ver=1,prot=17] failed

正在检查/etc/sm/monitor文件中是否有不可用的主机

  1. read_monitor.pl下面的 Perl 脚本可用于在监视器文件中列出客户端。

    #!/usr/bin/perl
    binmode (STDIN);

    $file=join "",<stdin>;
    while ($file =~ /(..)(..)(.*?)\000/gs) {
    $status=unpack("S", $1);
    $namelen=unpack("S", $2);
    print "$3\n" if $status==1;
    }

  2. 要使用它,请将显示器文件从 stdin 发送到此脚本:

    cat etc/sm/monitor | ./read_monitor.pl

    它将显示in_use 所有已设置为 1 的客户端的列表。

  3. 检查客户端列表中是否有以下内容:

    - ping the host from the filer
    - the client portmapper is functioning(rpcinfo -p hostname)
    - the client rpc.statd/statd is running (rpcinfo -p hostname)

    如果客户机未通过上述检查,则应纠正问题。如果客户端永久不可用,则可以使用sm_mon命令将其从监视程序文件中删除。

  4. 可以sm_mon使用 storage system advanced mode 命令从监视程序列表中删除主机:
    Enter  priv set advanced
    Enter  sm_mon -u  [client_name]
    Enter  priv set admin
vfiler

vFiler 的配置可能会影响网络状态监控客户端通知流程。每个 vFiler 在 vFiler/etc/sm 目录下维护自己的一组信息文件。重新启动存储系统后、 NFS 服务将在每个 vFiler 上重新启动。每个 vFiler 必须在/etc/sm/notify其文件中通知 NFS 客户端,以便可以回收锁定。在 vFiler 之间共享的无响应客户端会导致每个 vFiler 超时 10 秒。在多个 vFiler 上锁定的客户端必须通过 NSM 由每个 vFiler 通知。这可能会影响所有 NFS 文件服务完全运行之前的整体启动时间。

存储系统集群

在存储系统集群配置中、伙伴接管或恢复操作与重新启动集群伙伴相同。必须通过网络状态监视器( NSM )通知在受影响的存储系统上保存锁定的 NFS 客户端,如上节所述。

由于在集群故障转移 / 接管上启动每个服务时的时间限制为 5 分钟,因此连接 NLM 客户机时的延迟可能会进一步加重故障文件管理器的启动,并可能影响集群的整体可用性

注:运行sm_mon命令时、验证锁是否确实已释放非常有用。选中lock显示通过所有协议保持的锁定的命令: NLM 、通用因特网文件系统协议 (CIFS) 、 NFSv4 、 fio 。根据 Data ONTAP 版本的不同,有一个名为“锁定状态”的命令。在较早版本的 Data ONTAPlock 中,以的形式提供lock_dump

其他信息

不适用