Ubuntu 16.10: NFSサーバのnfs-kernel-serverをインストールする

NFSサーバのnfs-kernel-serverをインストールする手順を記載します。

1 nfs-kernel-serverをインストールする

nfs-kernel-serverパッケージをインストールします。

$ sudo apt install -y nfs-kernel-server

2 ディレクトリをNFSで公開する

/etc/exportfsに公開するディレクトリを記載します。

$ cat /etc/exports
<path> <ipaddr>(<option>)

exportfsで公開します。

$ sudo exportfs -ra

2.1 nfsroot用のディレクトリ

  • no_root_squashを指定するとクライアントからのアクセスはクライアント側のUIDとGIDが使われます。
  • LDAPでUIDとGIDを統一している場合はno_root_squashを使用すると良いですが、統一していない場合はroot_squashが良いです。
  • クライアント側でnfsrootを用いた起動用のルートファイルシステムとして用いる場合はno_root_squashの指定が必須です。
  • no_subtree_checkでクライアント側からアクセスしたファイルのパスがexportされたディレクトリ配下にあるかどうかを確認しないようにします。ここでのno_subtree_checkはパフォーマンスの向上を見込んでいます。
$ cat /etc/exports
/var/lib/nfsroot 192.168.11.0/24(rw,sync,no_root_squash,no_subtree_check)
$ sudo mkdir /var/lib/nfsroot
$ sudo exportfs -ra

2.2 共有ディレクトリ

  • root_squashを指定するとクライアントからのアクセスはnobody:nogroupになります。
  • subtree_checkでディレクトリ配下のチェックを有効にします。
$ cat /etc/exports
/var/lib/nfsshare *(rw,sync,root_squash,subtree_check)
$ sudo mkdir /var/lib/nfsshare
$ sudo chmod 777 /var/lib/nfsshare
$ sudo exportfs -ra

3 NFSをマウントする

mount.nfsでマウントします。

$ sudo apt install -y nfs-common
$ sudo mount -t nfs 127.0.0.1:/var/lib/nfsshare /mnt