跳转到主内容
We are redesigning the NetApp Knowledge Base site to make it easier to use and navigate. The new and improved site will be available the first week of October. Check out our video or read this KB article to know more about changes you’ll see on the site.

什么是 .nfsxxxx 文件以及如何删除它们?

Views:
38
Visibility:
Public
Votes:
0
Category:
ontap-9
Specialty:
nfs
Last Updated:

适用场景

NFS

问题解答

如果 .nfsXXXXNFS 客户端删除当前在客户端上打开的文件,则 NFS 客户端会创建具有类似命名约定的文件。客户机重命名文件.nfsXXXX 、以阻止其他客户机 / 进程使用该文件。执行重命名操作的客户端应在客户端进程关闭文件后将其删除。如果客户端已执行 dsiconnected ,重新启动或终止了问题描述删除的过程,则可能不会执行此删除。

这些文件不是由 ONTAP 进程生成的、并且仅为响应客户端请求而创建。

使用.nfsxxxx文件查找 NFS 客户端和进程可能会非常耗时。它需要检查每个 NFS 客户端上可以访问包含该文件的 NFS 共享的每个进程。可以lsof使用一个实用程序来确定使用.nfsxxxx该文件的过程。要防止.nfsXXXX创建文件、请不要在文件打开时将其删除。如果.nfsxxxx确定该文件已不再使用,则可以将其删除。如果删除导致新.nfsxxxx文件,则该 NFS 客户端上的进程将打开该文件。

创建和删除.nfsxxxx文件的演示:

  1. 在 NFS 客户机中、在挂载的 NFS 共享中创建一个文件并使用 tail 命令打开该文件。使用或ctrl-z打开一个新终端暂停该过程以完成演示的其余部分。

    shell# echo test > foo
    shell# tail -f foo
    test
    ^Z
    [1]+ Stopped tail -f foo

     
  2. 删除该文件foo以使 NFS 客户端创建.nfsxxxx该文件。

    shell# rm foo
    shell# ls -A
    .nfs5ACF

     
  3. 请注意,后续rm命令只会使 NFS 客户机再次重命名该文件。

    shell# rm .nfs5ACF
    shell# ls -A
    .nfs6ACF

     
  4. 使用 LSAF 或热凝器找到文件打开的过程。

    shell# lsof ./.nfs6ACF
    COMMAND   PID USER   FD   TYPE DEVICE  SIZE NODE NAME
    tail   25725 root   3r   REG   8,1 27603 6647 .nfs6ACF


    shell# fuser .nfs6ACF
    .nfs6ACF 25725o

  5. 最后,终止保持文件打开 .nfsxxx 的进程,并观察文件现在已被删除。

    shell# kill 25725


    shell# ls -al
    total x
    drwxr-sr-x  2 root src   400 Mar 29 15:39 .
    drwxrwsr-x 36 root src   3336 Mar 21 09:37 ..

追加信息

是否可以从 ONTAP 确定客户端是否已打开文件取决于所使用的协议:

  • NFSv3 :通常不存在锁定,因为 NFSv3 为无状态。
  • NFSv4.0 或 4.1 :如果客户端已打开文件,nfsv4 则会 nfsv4.1 出现或锁定。

cluster2::> vserver locks show -vserver svm1 -volume unix -path /unix/.nfs000000000000006000000009
Vserver: svm1
Volume   Object Path         LIF      Protocol  Lock Type   Client
-------- ------------------------- ----------- --------- ----------- ----------
unix    /unix/.nfs000000000000006000000009
                  svm1_cifs_nfs_lif1
                        nfsv4    share-level 10.64.24.10
         Sharelock Mode: write-deny_none

  • 只有当文件存在 NFSv4 或 nfsv4.1 锁定时,才能确定客户端 IP 。
  • 如果不存在任何锁定,则没有命令可显示 NFSv3 客户端是否正在使用此文件。

注意:对于 9.8 之前的 ONTAP 版本,要获取 NFSv4 和 nfsv4.1 类型锁定的客户端 IP ,需要使用其他 diag 模式命令。

Please contact NetApp Technical Support and reference this article for further assistance. The solution requires Diagnostic-level recovery. The use of Diagnostic commands and recovery steps are potentially disruptive and should only be used when directed by NetApp personnel.