NFS 设置中不创建锁定文件

NFS 设置中不创建锁定文件

我最近为我们的研究小组设置了一个新的文件服务器。旧的运行的是 SuSE linux,尽管硬盘驱动器较小且机器速度较慢,但​​运行良好。客户端大多是通过 挂载 NFS 共享的 Gentoo 机器autofs。计算机的主目录位于文件服务器上。

新的文件服务器是在某些部门计算机上运行的虚拟机Debian squeeze。设置(几次)后,我们遇到了重大问题,和rpc.statd/或rpc.lockd一旦超过一台计算机安装了其主目录,就没有响应。我们将内核更新为2.6.32似乎3.2可以解决该问题。然而,似乎锁文件还没有创建

例如,我们客户端上的 xdm 桌面管理器会回退到.Xauthority本地某个位置/tmp而不是在 NFS 共享的主目录中创建文件。此外,使用锁定文件等的重型程序Firefox, Thunderbird, Libreoffice会有些慢,xdm 登录也是如此。

我们使用(至少我是这么认为)NFS4,据我所知不再需要rpc.lockd它等等。自内核更新以来我能找到的与此相关的唯一错误消息如下:

sm-notify[540]: nsm_parse_reply: [0x515dce2e] RPC status 1

我无法在互联网上找到这意味着什么。服务器(当前)根本不受保护,看起来/etc/default/nfs-kernel-server像这样

RPCNFSDCOUNT=32
RPCNFSDPRIORITY=0
RPCMOUNTDOPTS="--manage-gids -p 32767"
NEED_SVCGSSD=
RPCSVCGSSDOPTS=

在客户端上,包含服务器的hosts.allow条目。rpcbind

我有几个与此相关的问题:

  • 如何使用小型 python 或 bash 脚本检查锁定文件创建是否在 NFS 共享上正常工作?
  • 如何找出客户端使用的 NFS 版本?
  • 当日志文件中没有显示任何内容时,如何追踪 NFS 错误?
  • Xauthority上述应用程序出现问题的原因可能是什么?

答案1

我想我解决了。 xdm 将其创建为 root,因此NFS 导出中的.Xauthority选项会阻止它这样做。no_root_squash删除该选项可以让客户创造出.Xauthority恰到好处的效果。

答案2

我认为tcpdump(8)并且strace(1)是你在这里的朋友。

tcpdump能:

  • 显示 NFS 协议版本
  • 告诉您谁在与谁通话(用于故障排除)
  • 有时还会告诉您在应用程序日志消息稀缺的情况下出了什么问题

strace跟踪系统调用和信号,当附加到正确的进程(例如 shell 或 )时sshd,可以显示fopen()尝试进行哪些调用,这可能暗示 .Xauthority 问题。

我曾多次遇到应用程序无法工作的情况(不是使用 NFS,而是使用客户端/服务器故障排除),并且要么不会说明原因,要么会在日志文件中说一些巧妙的内容,例如“意外错误”,其中详细tcpdump -A显示来自服务器的错误消息(客户端只是忽略了这些消息),因此tcpdumpstrace处理非您自己构建的应用程序的问题时,这些消息非常宝贵。

相关内容