linux – NFS缓存清理命令?

我对NFS客户端属性缓存有麻烦。
我正在使用一些服务器,一个是NFS服务器,另外一个是NFS客户端服务器。

所有服务器都是Debian(lenny,Linux的2.6.26-2-amd64),版本如下。

 % dpkg -l | grep nfs
ii  libnfsidmap2                        0.20-1                     An nfs idmapping library
ii  nfs-common                          1:1.1.2-6lenny1            NFS support files common to client and server
ii  nfs-kernel-server                   1:1.1.2-6lenny1            support for NFS kernel server

在NFS服务器中,/ etc / exports如下所示:

/export-path   192.168.0.0/255.255.255.0(async,rw,no_subtree_check)

在NFS客户端中,/ etc / fstab写成如下:

server:/export-path     /mountpoint   nfs rw,hard,intr,rsize=8192,async 0 0

您可以看到,“异步”选项用于多客户端访问性能。
但是,有时这可能会导致错误缓存错误。

由于我维护了很多服务器(我没有这么强大的权限来更改安装选项),我不想修改/ etc / exports和/ etc / fstab。
我认为如果我有一个命令行工具,用户权限“清理”NFS客户端属性缓存就足够了。

如果有这样的命令,请让我知道。

谢谢,

(追加)

我的意思是“虚假缓存错误”

 % ls -l /data/1/kabe/foo                  
ls: cannot access /data/1/kabe/foo: No such file or directory
 % ssh another-server 'touch /data/1/kabe/foo' 
 % ls -l /data/1/kabe/foo
ls: cannot access /data/1/kabe/foo: No such file or directory

有时这种情况发生。
由于NFS表示它保证了即将到来的一致性,问题不是文件内容,而是文件属性(= dentries信息)。

最佳答案
根据“虚假缓存错误”的含义,运行同步可能会让您获得所需的内容。这将刷新所有文件系统缓冲区。

如果需要,还可以使用/ proc / sys / vm / drop_caches清除内核中的VM缓存。

# To free pagecache
echo 1 > /proc/sys/vm/drop_caches

# To free dentries and inodes
echo 2 > /proc/sys/vm/drop_caches

# To free pagecache, dentries and inodes
echo 3 > /proc/sys/vm/drop_caches

转载注明原文:linux – NFS缓存清理命令? - 代码日志