Linux

NFSファイルシステムの自動マウント(CentOS7)

外部ディスクからNFS共有をマウントする際にハマった事例です。
前提は、外部ディスクで共有フォルダを作成し、NFS共有設定を実施済。mountコマンドでは正常にマウントできる状態。そこから起動時に自動マウントするため/etc/fstabを編集したが上手く起動しない(マウントされない)ケースです。
まず、fstabに以下を追記
-----------------------------------------
server:/usr/local/pub /pub nfs defaults 0 0
-----------------------------------------
server:/usr/local/pub
→共有フォルダ(「172.16.110.45:/test/tmp」等)
/pub
→マウント先(この場合は/pub)
nfs
→ファイルシステムタイプ
reboot後、マウントに失敗して以下のエラーメッセージが出力される。(エラーは/var/log/messagesで確認)
-----------------------------------------
Job for rpc-statd.service failed because the control process exited with error code. See "systemctl status rpc-statd.service" and "journalctl -xe" for details.
-----------------------------------------
どうやらrpc-statd.serviceの起動に失敗しているらしい。
/usr/lib/systemd/system/rpc-statd.serviceの内容を確認してみるとrpcbind.serviceの起動が必要のようである。そこで、「systemctl enable rpcbind.service」「systemctl start rpcbind.service」としたところ、「mount -a(fstabでautoとなっているものをマウント)」で無事に起動した。
しかしrebootしてみると、rpcbind.serviceが自動起動しない。。。
なので、rpcbind.serviceの内容を確認したところ、rpcbind.serviceの起動にはrpcbind.socketを読み込む必要があるが、rpcbind.socketがどうやらコケている模様。
「systemctl status rpcbind.socket」でステータスを確認すると、IPv6あたりの設定の読込がうまくいっていなかった。(自分の構築環境ではIPv6を使用しないため無効にしていた。)
そこで、/usr/lib/systemd/system/rpcbind.socketの「ListenStream=[::]:111」を以下のとおりコメントアウトした。
-----------------------------------------
[Socket]
ListenStream=/var/run/rpcbind.sock
#ListenStream=[::]:111
ListenStream=0.0.0.0:111
BindIPv6Only=ipv6-only
-----------------------------------------
また、この後「systemctl daemon-reload」を実行しないと以下の警告が表示される。
-----------------------------------------
Warning: rpcbind.socket changed on disk. Run 'systemctl daemon-reload' to reload units.
-----------------------------------------
これでreboot後自動でマウントされるようになった。

-Linux
-, , ,