解压缩NFSv4共享上的tar时出现“无法closures:input/输出错误”

在一个NFS共享上解压tar文件的时候,我一直在试图弄清楚一个奇怪的错误。

解压缩包含已归档的文件的tar文件时,错误会自行显示,而没有对归档文件设置的写入权限。

错误消息间歇性地打印如下:

tar: test/doc/manpages/man1/Makefile.in: Cannot close: Input/output error 

为了确认这种行为,我设置了两个相同的tar文件:一个用chmod权限575(用户读/执行)设置归档文件,另一个用chmod权限设置为755(用户读/写/执行)。

两个tar文件都被归档如下:

 tar czf test.tgz test 

并提取如下:

 tar -xvzf test.tgz 

当提取本地文件系统上的两个档案时,我没有得到任何错误。 另外,在使用用户在NFS共享上写入的情况下提取存档时,我不会收到任何错误。 将归档文件解压到NFS共享时,如果没有对归档文件的用户写入权限,则会出现错误。

NFS共享configuration有以下输出参数:

 /media/share 10.0.0.3(rw,sync,no_subtree_check,no_root_squash) 

而NFS挂载的客户端fstab条目如下所示:

 10.0.0.3:/media/share /media/share nfs4 rw,_netdev,auto,clientaddr=10.0.0.10 0 0 

客户端和服务器都运行Ubuntu 14.04.1

客户端和服务器上的nfs-common版本是v1:1.2.8-6ubuntu1.2nfs-kernel-server上的nfs-kernel-server软件包也是v1:1.2.8-6ubuntu1.2

任何帮助将不胜感激,因为我想深究造成这些错误的原因。

经过许多故障排除后,似乎在我的情况下,这些错误与我们某些客户机上的fstab条目中的clientaddr挂载选项有关,这些机器被设置为不正确的IP地址。 经过每个主机,确保所有clientaddr值是正确的,重新安装卷,我能够提取这两个档案,前面描述,没有任何错误。

应该注意的是, NFS手册页特别提到,就clientaddr挂载选项而言:

如果服务器无法与客户端build立回叫连接,则性能可能会降低,或者对文件的访问可能暂时挂起。

我为此怀疑,我所看到的问题与服务器无法build立到configuration了错误的客户端callback地址的客户端的回拨连接有关。