Le partage automatique de nfs échoue avec err = 2, RPC: expiré

1

Je souhaite monter automatiquement un partage nfs lorsqu'un utilisateur se connecte à notre Mac Mini. Mon idée initiale était d'utiliser le partage distant comme emplacement pour les répertoires de base de l'utilisateur, mais comme je ne pouvais pas monter le partage, j'essayais simplement de le monter dans un répertoire indépendant via autofs.

Mon /etc/auto_masterressemble à ceci:

+auto_master
/net              -hosts -nobrowse,hidefromfinder,nosuid
/home             auto_home -nobrowse,hidefromfinder
/Network/Servers  -fstab
/-                -static
/-                auto_nfs -nobrowse,nosuid

Mon /etc/auto_nfs:

/home_tmp -fstype=nfs,vers=3,rw,resvport,tcp,soft,intr,rsize=8192,wsize=8192,noatime,timeo=900,retrans=3 192.168.0.2:/home_tmp 

La machine distante exécute la version 4.9.11-1-ARCH x86_64 GNU / Linux et /etc/exportsressemble à

/home_tmp -nohide,sync,rw 192.168.0.0/26

et le partage est également visible depuis le client:

$ showmount -e 192.168.0.2
Exports list on 192.168.0.2:
/home_tmp                           192.168.0.0/26

La machine essayant de monter le partage nfs se trouve dans le sous-réseau 192.168.0.0/26.

Quand je fais un sudo mount -t nfs -o resvport,rw 192.168.0.2:/home_tmp /home_tmp, je peux changer /home_tmpet voir son contenu. Mais lorsque j'essaie de me connecter à ce répertoire avec automount, je reçois:

$ cd /home_tmp
-bash: cd: /home_tmp: No such file or directory

Le journal du système indique:

automountd: MOUNT  REQUEST: name=/home_tmp [] map=auto_nfs opts=nobrowse,nosuid path=/home_tmp direct=1
automountd:   PUSH /etc/auto_nfs
automountd:   POP /etc/auto_nfs
automountd:   mapline:  -fstype=nfs,vers=3,rw,resvport,tcp,soft,intr,rsize=8192,wsize=8192,noatime,timeo=900,retrans=3 192.168.0.2:/home_tmp
automountd:   do_mount1:
automountd:   (nfs,nfs)   /home_tmp -vers=3,rw,resvport,tcp,soft,intr,rsize=8192,wsize=8192,noatime,timeo=900,retrans=3
automountd:               192.168.0.2:/home_tmp      penalty=0
automountd:   nfsmount: input:
automountd:       192.168.0.2[other]
automountd:       nfsmount: mount on /home_tmp vers=3,rw,resvport,tcp,soft,intr,rsize=8192,wsize=8192,noatime,timeo=900,retrans=3:
automountd:         192.168.0.2:/home_tmp
automountd:       ping: 192.168.0.2 request vers=3 min=3
automountd: pingnfs: 192.168.0.2: RPC: Timed out
automountd:       pingnfs FAIL: can't get nfs version
automountd: NFS server 192.168.0.2 not responding
automountd:       Couldn't mount 192.168.0.2:/home_tmp, err=2
automountd: MOUNT  REPLY  : status=2, AUTOFS_DONE
automountd: mount of /home_tmp failed: No such file or directory
automountd: MOUNT  REQUEST: name=/home_tmp [] map=auto_nfs opts=nobrowse,nosuid path=/home_tmp direct=1
automountd:   PUSH /etc/auto_nfs
automountd:   POP /etc/auto_nfs
automountd:   mapline:  -fstype=nfs,vers=3,rw,resvport,tcp,soft,intr,rsize=8192,wsize=8192,noatime,timeo=900,retrans=3 192.168.0.2:/home_tmp
automountd:   do_mount1:
automountd:   (nfs,nfs)   /home_tmp -vers=3,rw,resvport,tcp,soft,intr,rsize=8192,wsize=8192,noatime,timeo=900,retrans=3
automountd:               192.168.0.2:/home_tmp      penalty=0
automountd:   nfsmount: input:
automountd:       192.168.0.2[other]
automountd:       nfsmount: mount on /home_tmp vers=3,rw,resvport,tcp,soft,intr,rsize=8192,wsize=8192,noatime,timeo=900,retrans=3:
automountd:         192.168.0.2:/home_tmp
automountd:       Couldn't mount 192.168.0.2:/home_tmp, err=2
automountd: MOUNT  REPLY  : status=2, AUTOFS_DONE
automountd: automountd exited

J'ai lu quelque part que cette erreur RPC: Expiration du délai d' attente peut être causée par le démarrage du serveur nfs avant un autre service. J'ai donc redémarré le serveur nfs, mais sans effet. Tout conseil bienvenu pour résoudre ce problème ...

PVitt
la source
S'il vous plaît ajouter le système de serveur (par exemple, Ubuntu 16.04.2 LTS Server 64bit)
klanomath
@klanomath J'ai ajouté le système d'exploitation du serveur. Est-ce que cette question devrait être mieux sur serverfault?
PVitt
La question s'inscrit ici.
klanomath

Réponses:

0

Votre distribution Arch Linux contient probablement un serveur NFSv4. Le serveur NFSv4 nécessite un répertoire de base (par exemple / srv / nfs4).

Tout partage supplémentaire doit être un sous-répertoire (par exemple, / srv / nfs4 / home_tmp). Déplacez donc le serveur / home_tmp dans le répertoire de base.

Le fichier / etc / exports ressemble à ceci:

/srv/nfsv4 192.168.0.0/26(rw,fsid=0,insecure,no_subtree_check,async)
/srv/nfsv4/home_tmp 192.168.0.0/26(rw,nohide,insecure,no_subtree_check,async)

(testé uniquement avec async mais devrait également fonctionner avec sync )

Rechargez le fichier avec exportfs -arvsur le serveur.

Votre fichier côté client / etc / auto_nfs doit également être modifié:

/home_tmp -fstype=nfs,vers=3,rw,resvport,tcp,soft,intr,rsize=8192,wsize=8192,noatime,timeo=900,retrans=3 192.168.0.2:/srv/nfsv4/home_tmp

Enfin, entrez sudo automount -vcdans le shell du client pour "actualiser" le partage monté.


Pour configurer des répertoires de départ en réseau pour les utilisateurs OS X, une intégration de répertoire est requise ou au moins recommandée (par exemple, LDAP ou AD). Pour les serveurs Linux, j'ai trouvé un très vieux tutoriel : les répertoires de départ Automount OS X avec OpenLDAP et Linux . Je ne sais pas si cette approche fonctionne toujours bien avec les nouvelles versions de MacOS. Un tutoriel mis à jour nécessiterait une nouvelle question ici ou chez Server Fault .

Klanomath
la source
Merci pour cette réponse détaillée, mais elle n’est pas liée à la version NFS, car je peux monter le dossier lorsque j’exécute la commande mount manuellement. Donc, le côté serveur va bien.
PVitt
@PVitt Vous avez raison - j'ai raté le pingnfs FAIL dans l'extrait de journal de votre système ...
klanomath
0

Il s'avère qu'il s'agit d'un simple problème de pare-feu. La réponse de Fravadona m'a orienté dans la bonne direction. Le service informatique ne savait pas quel port ouvrir (le 111 était déjà ouvert) et n'avait pas le temps de le fouiller pour le moment. Ils ont donc ouvert de nombreux ports. Ils m'ont dit qu'ils changeraient de pare-feu dans un proche avenir et qu'ils examineraient en détail une fois qu'ils seraient terminés. J'espère me rappeler de mettre à jour le post ici.

PVitt
la source