質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.52%

  • CentOS

    2701questions

    CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

  • NFS

    29questions

    NFS (Network File System) とは、ネットワークを介して外部ストレージにアクセスするための分散ファイルシステムです。

[CentOS7] rpcbindとnfs-serverが自動起動しない

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 12K+

Reiku

score 27

 実現したいこと

CentOS7にて、他サーバーからNFSでマウント可能な、NFSサーバーを構築したい。

 直面した問題

手順に沿ってパッケージの導入/各種サービスの起動/Firewallの調整を行ったところ、
問題なくNFSクライアントサーバーからのマウントが可能となった。
行った手順を箇条書きすると下記のとおり。

・nfs-utilsを導入
・NFSマウント関連のポートを解放
・nfs-server,rpcbindの自動起動設定

しかし、NFSサーバーを再起動(reboot)して、再度NFSクライアントから
マウントをしようとすると、マウントに失敗。(というか、NFSサーバーから応答がない)

不思議に思い、NFSサーバー側のサービスの稼働状況を確信したところ、
rpcbindとnfs-serverが起動していなかった。

# systemctl status rpcbind nfs-server
● rpcbind.service - RPC bind service
   Loaded: loaded (/usr/lib/systemd/system/rpcbind.service; indirect; vendor preset: enabled)
   Active: inactive (dead)

● nfs-server.service - NFS server and services
   Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; enabled; vendor preset: disabled)
   Active: activating (start) since 日 2017-02-05 14:45:23 JST; 3min 5s ago
  Process: 875 ExecStartPre=/usr/sbin/exportfs -r (code=exited, status=0/SUCCESS)
 Main PID: 876 (rpc.nfsd)
   CGroup: /system.slice/nfs-server.service
           └─876 /usr/sbin/rpc.nfsd 8

rpcbindを起動しようと試みるも、
起動に失敗。journalctlでログを確認したところ、下記のエラーが発生していた。

# systemctl start rpcbind                                                                                                                                        
A dependency job for rpcbind.service failed. See 'journalctl -xe' for details.
systemd[1]: Dependency failed for RPC bind service.
systemd[1]: Job rpcbind.service/start failed with result 'dependency'.

よくよく見てみると、rpcbindの自動起動設定が、
何故かenbaledではなく、indirectになっていたため、
設定し忘れたのかと思い、再度enabledに設定。
再度起動を試みると何故か起動可能。

# systemctl list-unit-files -t service | grep "rpcbind"                                                                                                          
rpcbind.service                               indirect  
# systemctl enable rpcbind
# systemctl start rpcbind
# systemctl status rpcbind
● rpcbind.service - RPC bind service
   Loaded: loaded (/usr/lib/systemd/system/rpcbind.service; indirect; vendor preset: enabled)
   Active: active (running) since 日 2017-02-05 14:52:40 JST; 7s ago
  Process: 1168 ExecStart=/sbin/rpcbind -w $RPCBIND_ARGS (code=exited, status=0/SUCCESS)
 Main PID: 1169 (rpcbind)
   CGroup: /system.slice/rpcbind.service
           └─1169 /sbin/rpcbind -w

しかし、この時点でもまだ、rpcbindの自動起動はindirectになっている模様。
とりあえず、nfs-serverも起動してみると、問題なく起動。

# systemctl start nfs-server
# systemctl status nfs-server                                                                                                                                    
● nfs-server.service - NFS server and services
   Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; enabled; vendor preset: disabled)
   Active: active (exited) since 日 2017-02-05 14:56:46 JST; 50s ago
 Main PID: 876 (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/nfs-server.service

この時点で再度NFSクライアントからマウントを試みると、問題なくマウント可能なことが確認できた。
だが、再度NFSサーバーを再起動したところ、同様の状況(rpcbindとnfs-serverが自動起動していない)に
陥り、再び同様の操作をしたところ、解消。

 他にも試したこと

・nfs-utilとrpcbindを削除し、再度インストールして設定し直し。
→ 解消せず

 質問したいこと

軽く見た感じ、rpcbindへの自動起動設定が効いていないように見えます。これはなぜでしょうか?
nfs-serverが起動していないのは、rpcbindが起動していないことが原因であると考えています。

また、可能ならば、サーバー起動時にNFSマウントが可能な状態にしたいです。
何か解決策などありましたら、ご教授いただければと思います。

そもそも、私の解釈自体が致命的に間違っている可能性があるため、
その場合は、その点をご指摘いただければと思います。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

+1

rpcbind.service は rpcbind.socket が必要です。

systemctl enable rpcbind.socket


また、rpcbind.service は nfs-server.service から自動起動されますので、indirect のままでいいはずです。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/02/05 17:09

    回答ありがとうございます。
    >> rpcbind.service は rpcbind.socket が必要です。
    rpcbindのUnitファイルを確認したところ、理解しました。rpcbind.socketのstatusを確認したら、こっちがうまく起動出来ていなかったようです。rpcbind.socketのUnitファイル内に「BindIPv6Only=ipv6-only」の設定があるにも関わらず、カーネルパラメータ側でIPv6を無効にしていたことが原因だと思います。(よくよくjournalctlでログを確認したら、IPv6が利用できない旨のエラーが出ていました)とりあえず、「BindIPv6Only=both」とすることで、rpcbind.socketが問題なく起動、nfs-serverも起動しました。再起動後も問題なく動作しています。
    ありがとうございました。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.52%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • CentOS

    2701questions

    CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

  • NFS

    29questions

    NFS (Network File System) とは、ネットワークを介して外部ストレージにアクセスするための分散ファイルシステムです。