nfs服務無法開啟的問題
昨天下午有部分生產機器無法啟動nfs服務;報錯很是奇怪。於是一路順藤摸瓜發現是rpcbind沒能正常啟動導致的nfs沒能起來。
后來總結了兩種辦法:主要是ipv6的問題所導致的。
措施一:
報錯內容
[root@BZ ~]# systemctl start rpcbind A dependency job for rpcbind.service failed. See 'journalctl -xe' for details.
查看錯誤
[root@BZ ~]# journalctl -xe -- Defined-By: systemd -- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel -- -- Unit session-3.scope has begun starting up. Dec 26 21:34:26 BZ chronyd[490]: System clock wrong by -1.090838 seconds, adjustment started Dec 26 21:35:31 BZ chronyd[490]: Selected source 61.216.153.107 Dec 26 21:35:31 BZ chronyd[490]: System clock wrong by 0.646329 seconds, adjustment started Dec 26 21:36:24 BZ polkitd[484]: Registered Authentication Agent for unix-process:2701:32282 (system bus name :1.29 [/usr/bin/pkttyagent --notify-fd 5 --fallback], object path /org/freedesktop/PolicyKit1/AuthenticationAgent, locale en_US.UTF-8) Dec 26 21:36:24 BZ systemd[1]: rpcbind.socket failed to listen on sockets: Address family not supported by protocol #報錯顯示ip地址協議不支持 Dec 26 21:36:24 BZ systemd[1]: Failed to listen on RPCbind Server Activation Socket. #端口監聽失敗 -- Subject: Unit rpcbind.socket has failed -- Defined-By: systemd -- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel -- -- Unit rpcbind.socket has failed. -- -- The result is failed Dec 26 21:36:24 BZ systemd[1]: Dependency failed for RPC bind service.
於是谷歌看了一下;發現是ipv6沒開啟導致的;修改/etc/sysctl.d/sysctl.conf
[root@BZ ~]# less /etc/sysctl.conf | grep 'net.ipv6' net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 net.ipv6.conf.lo.disable_ipv6 = 1
[root@BZ ~]# sysctl -p #重新加載一下配置;臨時生效
[root@BZ ~]# systemctl start rpcbind
#重啟rpcbind服務
[root@BZ ~]# systemctl start nfs
#重啟nfs服務
再掛載nfs文件就ok了。
措施二:
[root@BZ ~]# find /etc/ -name '*rpcbind.socket*'
找到這個socket文件,並用vim編譯器編輯它。
[Unit] Description=RPCbind Server Activation Socket [Socket] ListenStream=/var/run/rpcbind.sock ListenStream=[::]:111 #監聽了ipv6地址,將這一行注釋即可 ListenStream=0.0.0.0:111 BindIPv6Only=ipv6-only [Install] WantedBy=sockets.target
重載一下再啟動
[root@BZ ~]# systemctl daemon-reload
[root@BZ ~]# systemctl restart rpcbind.socket
[root@BZ ~]# systemctl start nfs
再掛載遠程nfs即可。