带有autofs自动挂载的NFSv4仅针对某些用户挂起

我有一个DRBD分区挂载使用Linux-HA自动挂载,然后它build立一个绑定并通过NFS共享目录。 这为用户主目录共享一个目录。

有些用户可以正常工作,大部分用户不会在安装他们的文件夹时挂在那里。 当我做一个tcpdump时,我看到:

07:45:16.415649 IP foo.server.com.1002 > nfs.server.com.nfs: . ack 976 win 348 07:45:22.705531 IP foo.server.c.2174542926 > nfs.server.com.nfs: 192 getattr [|nfs] 07:45:22.705643 IP nfs.server.com.nfs > foo.server.com.1002: . ack 1985 win 501 07:45:23.703517 IP nfs.server.com.nfs > foo.server.c.2174542926: reply ok 96 getattr ERROR: Request couldn't be completed in time 07:45:23.703564 IP foo.server.com.1002 > nfs.server.com.nfs: . ack 1072 win 348 07:45:25.053519 IP foo.server.c.2191320142 > nfs.server.com.nfs: 192 getattr [|nfs] 07:45:25.053651 IP nfs.server.com.nfs > foo.server.com.1002: . ack 2177 win 501 07:45:26.051473 IP nfs.server.com.nfs > foo.server.c.2191320142: reply ok 96 getattr ERROR: Request couldn't be completed in time 07:45:26.051522 IP foo.server.com.1002 > nfs.server.com.nfs: . ack 1168 win 348 07:45:31.413431 IP foo.server.c.2208097358 > nfs.server.com.nfs: 160 getattr [|nfs] 07:45:31.413556 IP nfs.server.com.nfs > foo.server.com.1002: . ack 2337 win 501 07:45:32.411393 IP nfs.server.com.nfs > foo.server.c.2208097358: reply ok 76 getattr ERROR: Request couldn't be completed in time 

我的auto.master看起来像:

 /home/users /etc/auto.home --timeout=60 

我的汽车。

 * -fstype=nfs4,rw,nosuid,soft,rsize=8192,wsize=8192 nfs.server.com:/home/& 

我的出口:

 /nfs4exports 192.168.0.0/255.255.0.0(rw,no_subtree_check,nohide,no_root_squash,fsid=0) /nfs4exports/home 192.168.0.0/255.255.0.0(rw,no_subtree_check,nohide,no_root_squash) 

我的idmapd.conf:

 [General] Verbosity = 0 Pipefs-Directory = /var/lib/nfs/rpc_pipefs Domain = bb.int.threatmetrix.com [Mapping] Nobody-User = nfsnobody Nobody-Group = nfsnobody [Translation] Method = nsswitch 

我正在使用CentOS 5.4,nfs版本:

nfs-utils-1.0.9-42.el5 nfs-utils-lib-1.0.8-7.6.el5 nfs4-acl-tools-0.3.3-1.el5

这原来是线索:

 rpc.idmapd[5924]: nfsdcb: id '-2' too big! 

问题是默认的nfsnobody用户的用户名是4294967294,但是在64位的CentOS系统上,它似乎是在一个32位的上下文中解释这个数字,导致臭名昭着的-2。 解决的办法是:

  • 客户端和服务器上将nfsnobody用户/组更改为uid / gid 65534
  • 将服务器上的uid 4294967294拥有的任何文件chown给nfsnobody

这解决了这个问题