NFSv4 com montagem automática autofs pendurada apenas para alguns usuários

1

Eu tenho uma montagem montada na partição DRBD, que é montada automaticamente usando o Linux-HA e, em seguida, configura uma ligação e compartilha o diretório por meio do NFS. Isso compartilha um diretório para diretórios base do usuário.

Alguns usuários trabalham bem, a maioria não e fica lá pendurado na montagem da pasta. Quando eu faço um tcpdump eu vejo:

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

meu auto.master se parece com:

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

meu auto.home:

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

minhas exportações:

/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)

meu 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

Estou usando o CentOS 5.4, versões 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

    
por hellomynameisjoel 29.06.2010 / 09:55

1 resposta

2

isso acabou sendo a pista:

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

o problema é que o usuário nfsnobody padrão tem um uid de 4294967294, mas em um sistema CentOS de 64 bits parece estar interpretando esse número em um contexto de 32 bits levando ao infame -2. A correção é para:

  • altere o usuário / grupo do nfsnobody para uid / gid 65534 no cliente e servidor
  • chown todos os arquivos pertencentes ao uid 4294967294 no servidor para nfsnobody

isso resolve o problema

    
por 02.07.2010 / 04:10