Selon Red Hat docs, «rpcbind» n'est plus requis:
Étant donné que la prise en charge du protocole a été intégrée au protocole v4, NFSv4 n'a aucune interaction avec les démons portmap, rpc.lockd et rpc.statd. NFSv4 écoute sur le port TCP bien connu 2049, ce qui élimine le besoin d'interaction avec le portmap. Les protocoles de montage et de verrouillage ont été intégrés au protocole V4, ce qui élimine le besoin d'interaction avec rpc.lockd et rpc.statd. Le démon rpc.mountd est toujours requis sur le serveur, mais n'est impliqué dans aucune opération over-the-wire.
mais je ne peux pas démarrer le démon NFS lorsque le service 'rpcbind' n'est pas en cours d'exécution:
# service nfs start
Starting NFS services: [ OK ]
Starting NFS quotas: Cannot register service: RPC: Unable to receive; errno = Connection refused
rpc.rquotad: unable to register (RQUOTAPROG, RQUOTAVERS, udp).
[FAILED]
Starting NFS mountd: [ OK ]
Starting NFS daemon: rpc.nfsd: writing fd to kernel failed: errno 111 (Connection refused)
rpc.nfsd: unable to set any sockets for nfsd
[FAILED]
J'ai désactivé NFS v2 et v3:
# grep -v "^#" /etc/sysconfig/nfs
MOUNTD_NFS_V2="no"
MOUNTD_NFS_V3="no"
RPCNFSDARGS="-N 2 -N 3"
Pourriez-vous s'il vous plaît confirmer quels services sont requis / essentiels sur le serveur et le client parmi ceux énumérés ci-dessous (en gros, je voudrais désactiver les services qui ne sont pas nécessaires):
# rpm -ql nfs-utils | grep 'init.d'
/etc/rc.d/init.d/nfs
/etc/rc.d/init.d/nfslock
/etc/rc.d/init.d/rpcgssd
/etc/rc.d/init.d/rpcidmapd
/etc/rc.d/init.d/rpcsvcgssd
rpcbind
avec v4-N 2 -N 3
àrpc.nfsd
dans le script de démarrage et en obtenant la même erreur "impossible de définir des sockets pour nfsd"Réponses:
Il s'agissait d'un bogue dans le module du noyau du serveur NFS. Il a été corrigé en décembre 2013.
À partir du noyau 3.14, il
rpcbind
n'est plus nécessaire d'exécuter le serveur NFS dans le noyau.(en supposant que le serveur est configuré pour utiliser uniquement NFSv4 et supérieur)
http://lxr.free-electrons.com/source/net/sunrpc/svc.c?v=3.14#L966
Vous pouvez trouver plus d'informations sur ce changement dans ce fil:
http://www.spinics.net/lists/linux-nfs/msg41053.html
Par conséquent, votre configuration:
devrait maintenant fonctionner sans
rpcbind
.Lorsque vous utilisez uniquement NFSv4, aucun de ces services n'est requis:
la source
rpc.idmapd
n'est requis que pour NFSv4. GSS est également requis pour la sécurité Kerberos. Bien que les deux soient facultatifs.La documentation citée de RedHat était erronée et a été corrigée par le bogue 521215 :
rpc.mountd
doit toujours être utilisé pour configurer NFSv4, mais à proprement parler, il n'est pas nécessaire de l'exécuter après cela.nfs
: Serveur pour toutes les versions de NFS: v2, v3, v4, v4.1rpcbind
/portmapper
: Serveur , strictement uniquement pour NFS <= v3. Mais aussi pour NFS v4 car le serveur NFS du noyau Linux essaie de s'enregistrer et ne démarre pas s'ilrpcbind
n'est pas en cours d'exécution.rpc.mountd
: Serveur , strictement uniquement pour NFS <= 3. Mais aussi pour NFS v4 car le noyau Linux l'utilise pour vérifier si le client qui se connecte est autorisé à se connecter.nfslock
: Serveur uniquement pour NFS <= v3rpc.idmapd
: Serveur en option (et anciens clients ) pour NFS v4rpc.quotad
: Serveur pour utiliser le quota de disquerpc.statd
: Serveur uniquement pour NFS <= v3Lorsque vous utilisez Kerberos (
sec=krb
/krb5i
/krb5p
), les services suivants sont requis:rpc.gssd
: Clientrpc.svcgssd
: ServeurVeuillez noter que même s'ils portent
rpc.
leur nom, ils utilisent le mécanisme interne du noyau Linuxrpc_pipef
pour la communication entre le noyau Linux et l'assistant de l'espace utilisateur; doncrpcbind
AKAportmapper
n'est pas nécessaire pour eux.la source
Vérifiez le service rpcbind. S'il a cessé de fonctionner, essayez de démarrer le service nfs.
la source