跳转到主内容

NetApp_Insight_2020.png 

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

Views:
6
Visibility:
Public
Votes:
0
Category:
data-ontap-8
Specialty:
nfs
Last Updated:

适用于

NFS

解答

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

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

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

NFSv4 客户端由于协议的状态而看不到此问题。

使用.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 .

其他信息

附加信息 _text