2.7. NFSv4 専用サーバーの設定
ネットワーク内に NFSv3 クライアントが存在しない場合は、NFSv4 またはその特定のマイナープロトコルバージョンのみをサポートするように NFS サーバーを設定できます。サーバー上で NFSv4 のみを使用すると、ネットワークに開放されるポートの数が減ります。
手順
nfs-utilsパッケージをインストールします。dnf install nfs-utils
# dnf install nfs-utilsCopy to Clipboard Copied! Toggle word wrap Toggle overflow /etc/nfs.confファイルを編集し、次の変更を加えます。NFSv3 を無効にするには、
[nfsd]セクションのvers3パラメーターを無効にします。[nfsd] vers3=n
[nfsd] vers3=nCopy to Clipboard Copied! Toggle word wrap Toggle overflow オプション: 特定の NFSv4 マイナーバージョンのみが必要な場合は、すべての
vers4.<minor_version>パラメーターのコメントを解除し、各パラメーターを適切に設定します。次に例を示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow この設定では、サーバーは NFS バージョン 4.2 のみを提供します。
重要特定の NFSv4 マイナーバージョンのみが必要な場合は、そのマイナーバージョンのパラメーターのみを設定してください。予期しないマイナーバージョンのアクティブ化や非アクティブ化を回避するために、
vers4パラメーターのコメントは解除しないでください。vers4パラメーターは、デフォルトですべての NFSv4 マイナーバージョンを有効または無効にします。ただし、vers4を他のversパラメーターと組み合わせて設定すると、この動作は変わります。
NFSv3 関連のすべてのサービスを無効にします。
systemctl mask --now rpc-statd.service rpcbind.service rpcbind.socket
# systemctl mask --now rpc-statd.service rpcbind.service rpcbind.socketCopy to Clipboard Copied! Toggle word wrap Toggle overflow NFSv3 マウント要求をリッスンしないように
rpc.mountdデーモンを設定します。次の内容を含む/etc/systemd/system/nfs-mountd.service.d/v4only.confファイルを作成します。[Service] ExecStart= ExecStart=/usr/sbin/rpc.mountd --no-tcp --no-udp
[Service] ExecStart= ExecStart=/usr/sbin/rpc.mountd --no-tcp --no-udpCopy to Clipboard Copied! Toggle word wrap Toggle overflow systemdマネージャーの設定を再ロードし、nfs-mountdサービスを再起動します。systemctl daemon-reload systemctl restart nfs-mountd
# systemctl daemon-reload # systemctl restart nfs-mountdCopy to Clipboard Copied! Toggle word wrap Toggle overflow オプション: 共有するディレクトリーを作成します。以下に例を示します。
mkdir -p /nfs/projects/
# mkdir -p /nfs/projects/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 既存のディレクトリーを共有する場合は、このステップをスキップしてください。
/nfs/projects/ディレクトリーに必要な権限を設定します。chmod 2770 /nfs/projects/ chgrp users /nfs/projects/
# chmod 2770 /nfs/projects/ # chgrp users /nfs/projects/Copy to Clipboard Copied! Toggle word wrap Toggle overflow これらのコマンドは、
/nfs/projects/ディレクトリーのusersグループの書き込み権限を設定し、このディレクトリーに作成される新しいエントリーに対して同じグループを自動的に設定します。共有する各ディレクトリーについて、
/etc/exportsファイルにエクスポートポイントを追加します。/nfs/projects/ 192.0.2.0/24(rw) 2001:db8::/32(rw)
/nfs/projects/ 192.0.2.0/24(rw) 2001:db8::/32(rw)Copy to Clipboard Copied! Toggle word wrap Toggle overflow このエントリーは、
/nfs/projects/ディレクトリーを共有し、192.0.2.0/24および2001:db8::/32サブネット内のクライアントに読み取りおよび書き込みアクセスを許可します。firewalldで適切なポートを開きます。firewall-cmd --permanent --add-service nfs firewall-cmd --reload
# firewall-cmd --permanent --add-service nfs # firewall-cmd --reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow NFS サーバーを有効にして起動します。
systemctl enable --now nfs-server
# systemctl enable --now nfs-serverCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
サーバー上で、設定した NFS バージョンのみがサーバーから提供されていることを確認します。
cat /proc/fs/nfsd/versions -3 +4 -4.0 -4.1 +4.2
# cat /proc/fs/nfsd/versions -3 +4 -4.0 -4.1 +4.2Copy to Clipboard Copied! Toggle word wrap Toggle overflow クライアントで次の手順を実行します。
nfs-utilsパッケージをインストールします。dnf install nfs-utils
# dnf install nfs-utilsCopy to Clipboard Copied! Toggle word wrap Toggle overflow エクスポートされた NFS 共有をマウントします。
mount server.example.com:/nfs/projects/ /mnt/
# mount server.example.com:/nfs/projects/ /mnt/Copy to Clipboard Copied! Toggle word wrap Toggle overflow usersグループのメンバーであるユーザーとして、/mnt/にファイルを作成します。touch /mnt/file
# touch /mnt/fileCopy to Clipboard Copied! Toggle word wrap Toggle overflow ファイルが作成されたことを確認するためにディレクトリーの内容をリスト表示します。
ls -l /mnt/
# ls -l /mnt/ total 0 -rw-r--r--. 1 demo users 0 Jan 16 14:18 fileCopy to Clipboard Copied! Toggle word wrap Toggle overflow