Redhat
NFSv4 無法在不執行 rpcbind 的情況下為 nfsd 設置任何套接字
根據Red Hat docs ‘rpcbind’ 不再需要:
因為協議支持已被納入 v4 協議,所以 NFSv4 與 portmap、rpc.lockd 和 rpc.statd 守護程序沒有互動。NFSv4 偵聽眾所周知的 TCP 埠 2049,這消除了埠映射互動的需要。掛載和鎖定協議已合併到 V4 協議中,從而消除了與 rpc.lockd 和 rpc.statd 互動的需要。伺服器上仍然需要 rpc.mountd 守護程序,但不涉及任何無線操作。
但是,當“rpcbind”服務未執行時,我無法啟動 NFS 惡魔:
# 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]
我已禁用 NFS v2 和 v3:
# grep -v "^#" /etc/sysconfig/nfs MOUNTD_NFS_V2="no" MOUNTD_NFS_V3="no" RPCNFSDARGS="-N 2 -N 3"
您能否從下面列出的這些服務中確認伺服器和客戶端上需要/必不可少的服務(基本上我想禁用不需要的服務):
# 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
這是 NFS 伺服器核心模組中的一個錯誤。它於2013 年 12 月進行了修補。
從核心 3.14 開始,
rpcbind
不再需要執行核心 NFS 伺服器。(假設伺服器配置為僅使用 NFSv4 及更高版本)
http://lxr.free-electrons.com/source/net/sunrpc/svc.c?v=3.14#L966
您可以在此執行緒中找到有關該更改的更多資訊:
http://www.spinics.net/lists/linux-nfs/msg41053.html
因此,您的配置:
MOUNTD_NFS_V2="no" MOUNTD_NFS_V3="no" RPCNFSDARGS="-N 2 -N 3"
現在應該可以在沒有
rpcbind
.當您僅使用 NFSv4 時,不需要這些服務:
/etc/rc.d/init.d/nfslock /etc/rc.d/init.d/rpcgssd /etc/rc.d/init.d/rpcidmapd /etc/rc.d/init.d/rpcsvcgssd