许多nfs4_reclaim_open_state:locking系统日志中的回收失败的条目

我有一个在VMSphere中设置的Ubuntu 11.10虚拟机。 我在一个nfs挂载存储一些数据。 虚拟机一直在频繁停机。 我一直没有能够确定为什么失败,但是我认为这与这个错误有关:

Jan 19 09:53:07 ws-test-moodlearchive-01 kernel: [ 384.523617] nfs4_reclaim_open_state: Lock reclaim failed! 

它显示在/ var / log / syslog上千次。 通常在cron开始运行之后。

我原本是将一个cron作业的输出保存到NFS挂载的文本文件中。 切换到本地磁盘似乎减less了错误的数量,但它仍然显示出来。

谷歌一直非常无益,没有发现我似乎适用。 没有发现任何东西甚至closures这个网站,或StackOverflow。

那么,这个错误是什么意思? 我怎样才能防止它发生?

我连接的NFS服务器运行的是版本3.我与版本4连接。切换到版本3似乎已经解决了这个问题。 我不再在我的系统日志中看到nfs4_reclaim_open_state错误。

为了使NFS在连接时使用版本3,我添加了nfsvers = 3到我的fstab文件。 所以这样的条目:

 nfsserverip:/export/homes /home nfs rw 0 0 

变成:

 nfsserverip:/export/homes /home nfs nfsvers=3,rw 0 0 

我仍然没有发现错误信息告诉了我什么。 但至less我修好了。

其实这不会在NFS3中显示,因为这是一个NFS4唯一的代码,NFS3没有这个function:) NFS3有不同的错误恢复,它可能只是隐藏了问题。

当NFS4客户端得到完整的动作并出现一些错误并尝试从中恢复时,可能会发生这种情况。 恢复时,如果NFS尝试回收locking并失败,则会显示此错误。

锁回收失败的原因有很多,因为nfs服务器中存在一些错误或竞争对networking问题。 如果你认为这是一个问题,你将不得不做一个tcpdump来捕获NFSstream量(首选客户端),并尝试理解错误出现之前的请求stream程,首先了解为什么一些未知的NFS4操作失败,然后锁回收期间发生了什么

所以首先要检查的可能是networking,检查电缆,交换机和端口错误,重复的IP,坏边界/ LACP,丢包等