自宅ネットワークに CentOS7 NFS サーバ環境構築

自宅環境で NFS サーバ環境構築

自宅の マシンを NFS 共有を作成して、自宅ネットワークでアクセスできるように設定してみます。

NFS サーバを構築

今回の NFS サーバマシンは、CentOS7 をミニマムインストールした環境です。

  1. NFS サービスをインストールします
  2. # yum install nfs-utils
    

    インストール確認

    # yum list installed nfs-utils
    読み込んだプラグイン:fastestmirror
    Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast
    Loading mirror speeds from cached hostfile
     * base: ftp.tsukuba.wide.ad.jp
     * extras: ftp.tsukuba.wide.ad.jp
     * updates: ftp.tsukuba.wide.ad.jp
    インストール済みパッケージ
    nfs-utils.x86_64                                         1:1.3.0-0.65.el7                                          @base
    
  3. NFS 共有するエクスポートポイントを作成します
  4. # mkdir /mnt/nfs-share
    # ls -l /mnt
    合計 0
    drwxr-xr-x. 2 root root 6 10月 22 18:20 nfs-share
    
  5. 今回は共有先に確認用のファイルを作成しておきます
  6. # vi /mnt/nfs-share/test.txt
    # cat /mnt/nfs-share/test.txt
    テスト用のドキュメントです
    
  7. NFSのエクスポート設定を作成します
    ここでは
  8. # vi /etc/exports
    # cat /etc/exports
    /mnt/nfs-share 192.168.0.0/24(rw,no_root_squash)
    

    (rw,no_root_squash) は、エクスポートしたディレクトリにroot 権限でアクセスできる様にしている設定のはず。

  9. サービスを起動
  10. # systemctl start rpcbind
    # systemctl start nfs-server
    # systemctl enable rpcbind
    # systemctl enable nfs-server
    
  11. 動作の確認
  12. # systemctl status rpcbind
    ● rpcbind.service - RPC bind service
       Loaded: loaded (/usr/lib/systemd/system/rpcbind.service; enabled; vendor preset: enabled)
       Active: active (running) since 火 2019-10-22 17:45:02 JST; 52min ago
      Process: 997 ExecStart=/sbin/rpcbind -w $RPCBIND_ARGS (code=exited, status=0/SUCCESS)
     Main PID: 1007 (rpcbind)
       CGroup: /system.slice/rpcbind.service
               └─1007 /sbin/rpcbind -w
    
    10月 22 17:45:01 jpmm-entos7-home systemd[1]: Starting RPC bind service...
    10月 22 17:45:02 jpmm-entos7-home systemd[1]: Started RPC bind service.
    
    # systemctl status nfs-server
    ● nfs-server.service - NFS server and services
       Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; enabled; vendor preset: disabled)
      Drop-In: /run/systemd/generator/nfs-server.service.d
               └─order-with-mounts.conf
       Active: active (exited) since 火 2019-10-22 17:45:16 JST; 51min ago
      Process: 1671 ExecStartPost=/bin/sh -c if systemctl -q is-active gssproxy; then systemctl reload gssproxy ; fi (code=exited, status=0/SUCCESS)
      Process: 1646 ExecStart=/usr/sbin/rpc.nfsd $RPCNFSDARGS (code=exited, status=0/SUCCESS)
      Process: 1638 ExecStartPre=/usr/sbin/exportfs -r (code=exited, status=0/SUCCESS)
     Main PID: 1646 (code=exited, status=0/SUCCESS)
       CGroup: /system.slice/nfs-server.service
    
    10月 22 17:45:16 jpmm-entos7-home systemd[1]: Starting NFS server and services...
    10月 22 17:45:16 jpmm-entos7-home systemd[1]: Started NFS server and services.
    
  13. Firewalld の設定
  14. # firewall-cmd --list-all
    public (active)
      target: default
      icmp-block-inversion: no
      interfaces: enp4s0
      sources:
      services: dhcpv6-client ssh
      ports:
      protocols:
      masquerade: no
      forward-ports:
      source-ports:
      icmp-blocks:
      rich rules:
    
    # firewall-cmd --permanent --zone=public --add-service=nfs
    success
    # firewall-cmd --reload
    success
    # firewall-cmd --list-all
    public (active)
      target: default
      icmp-block-inversion: no
      interfaces: enp4s0
      sources:
      services: dhcpv6-client nfs ssh
      ports:
      protocols:
      masquerade: no
      forward-ports:
      source-ports:
      icmp-blocks:
      rich rules:
    

NFS サーバ側の設定は完了です。

クライアントからマウントしてみます

# mkdir /mnt/nfs-client
# ls /mnt
nfs-client

# mount -t nfs 192.168.0.101:/mnt/nfs-share /mnt/nfs-client
# mount
ざっくり抜粋、下記のように表示されればNFSマウントができています。
192.168.0.101:/mnt/nfs-share on /mnt/nfs-client type nfs4 (rw,relatime,vers=4.1,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=192.168.0.102,local_lock=none,addr=192.168.0.101)

次のようなエラーが出る場合は、nfs-utils がインストールされていない可能性があります。

# mount -t nfs 192.168.0.101:/mnt/nfs-share /mnt/nfs-client
mount: wrong fs type, bad option, bad superblock on 192.168.0.101:/mnt/nfs-share,
       missing codepage or helper program, or other error
       (for several filesystems (e.g. nfs, cifs) you might
       need a /sbin/mount. helper program)

       In some cases useful info is found in syslog - try
       dmesg | tail or so.
スポンサーリンク
spdsk-side
spdsk-side