【CentOS8】nfsがv3とv4が混在する謎現象…

Table of Content

はじめに

まずはmountの結果を見てください。

192.168.200.10:/share/nfs1 on /share/nfs1 type nfs4 (rw,relatime,vers=4.2,rsize=65536,wsize=65536,…
192.168.200.10:/share/nfs2 on /share/nfs2 type nfs (rw,relatime,vers=3,rsize=65536,wsize=65536,…

マウント元は同じサーバなのに/share/nfs1はNFSv4で、/share/nfs2はNFSv3で接続されています。このような現象になった原因の謎解きと、回避について本記事で述べて行きます。

種明かし

サーバ側のディレクトリの状態を見てみましょう。

[vagrant@server ~]$ ls -al /share
total 0
drwxr-xr-x.  4 root root  42 Dec 16 20:53 .
dr-xr-xr-x. 18 root root 253 Dec 16 20:51 ..
drwxr-xr-x.  2 root root   6 Dec 16 20:51 nfs1
lrwxrwxrwx.  1 root root  11 Dec 16 20:53 nfs2 -> /share/nfs3
drwxr-xr-x.  2 root root   6 Dec 16 20:53 nfs3

NFSv3で接続していた/share/nfs2はディレクトリではなく、シンボリックリンクになっていました。シンボリックリンクをマウントするとNFSv3で接続してしまうんですね。

回避策

/share/nfs2はシンボリックリンクではなくmount --bindでマウントするのが正解です。

sudo mkdir -p /share/nfs2
sudo mount --bind /share/nfs3 /share/nfs2

これでnfsをマウントすると…

192.168.200.10:/share/nfs2 on /share/nfs1 type nfs4 (rw,relatime,vers=4.2,rsize=65536,wsize=65536,…
192.168.200.10:/share/nfs2 on /share/nfs2 type nfs4 (rw,relatime,vers=4.2,rsize=65536,wsize=65536,…

ちゃんとNFSv4で接続できました。

mountコマンドですのでリブートするとマウントが外れてしまいます。リブート時も有効にするのであれば、/etc/fstabを編集する必要があります。fstabは以下の様に記述します。

/share/nfs3  /share/nfs2  none  bind  0 0