NFSv4 с автоматическим монтированием autofs только для некоторых пользователей
У меня есть смонтированный раздел DRBD, который автоматически монтируется с помощью Linux-HA, затем он устанавливает привязку и разделяет каталог через 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
мой auto.home:
* -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
1 ответ
Это оказалось ключом:
rpc.idmapd[5924]: nfsdcb: id '-2' too big!
проблема заключалась в том, что пользователь по умолчанию для nfsnobody имеет uid 4294967294, но в 64-битной системе CentOS это, по-видимому, интерпретирует это число в 32-битном контексте, приводящем к печально известной -2. Исправление заключается в следующем:
- измените nfsnobody пользователя / группы на uid/gid 65534 на клиенте и сервере
- чфн любые файлы, принадлежащие uid 4294967294 на сервере к nfsnobody
это решает проблему