Red Hat Training

A Red Hat training course is available for RHEL 8

4.8. オプションの NFSv4 サポートを備えた NFSv3 サーバーの設定

NFSv3 クライアントをまだ使用しているネットワークでは、NFSv3 プロトコルを使用して共有を提供するようにサーバーを設定します。ネットワーク内に新しいクライアントもある場合は、さらに NFSv4 を有効にすることもできます。デフォルトでは、Red Hat Enterprise Linux NFS クライアントはサーバーが提供する最新の NFS バージョンを使用します。

手順

  1. nfs-utils パッケージをインストールします。

    # dnf install nfs-utils
  2. オプション: デフォルトでは、NFSv3 と NFSv4 が有効になっています。NFSv4 が必要ない場合、または特定のマイナーバージョンのみが必要な場合は、すべての vers4.<minor_version> パラメーターのコメントを解除し、それに応じて設定します。

    [nfsd]
    # vers3=y
    # vers4=y
    vers4.0=n
    vers4.1=n
    vers4.2=y

    この設定では、サーバーは NFS バージョン 3 と 4.2 のみを提供します。

    重要

    特定の NFSv4 マイナーバージョンのみが必要な場合は、マイナーバージョンのパラメーターのみを設定します。マイナーバージョンの予期しないアクティブ化または非アクティブ化を回避するために、vers4 パラメーターのコメントを解除しないでください。デフォルトでは、vers4 パラメーターはすべての NFSv4 マイナーバージョンを有効または無効にします。ただし、vers4 を他の vers パラメーターと組み合わせて設定すると、この動作は変わります。

  3. デフォルトでは、NFSv3 RPC サービスはランダムポートを使用します。ファイアウォール設定を有効にするには、/etc/nfs.conf ファイルで固定ポート番号を設定します。

    1. [lockd] セクションで、nlockmgr RPC サービスの固定ポート番号を設定します。例:

      [lockd]
      port=5555

      この設定により、サービスは UDP プロトコルと TCP プロトコルの両方にこのポート番号を自動的に使用します。

    2. [statd] セクションで、rpc.statd サービスの固定ポート番号を設定します。例:

      [statd]
      port=6666

      この設定により、サービスは UDP プロトコルと TCP プロトコルの両方にこのポート番号を自動的に使用します。

  4. オプション: 共有するディレクトリーを作成します。例:

    # mkdir -p /nfs/projects/

    既存のディレクトリーを共有する場合は、この手順をスキップしてください。

  5. /nfs/projects/ ディレクトリーに必要な権限を設定します。

    # chmod 2770 /nfs/projects/
    # chgrp users /nfs/projects/

    これらのコマンドは、/nfs/projects/ ディレクトリーの ユーザー グループの書き込み権限を設定し、このディレクトリーに作成される新しいエントリーに同じグループが自動的に設定されるようにします。

  6. 共有するディレクトリーごとに、/etc/exports ファイルにエクスポートポイントを追加します。

    /nfs/projects/     192.0.2.0/24(rw) 2001:db8::/32(rw)

    このエントリーは 、/nfs/projects/ ディレクトリーを共有し、192.0.2.0/24 および 2001:db8::/32 サブネット内のクライアントが読み取りおよび書き込みアクセスできるようにします。

  7. Firewalld で関連するポートを開きます:

    # firewall-cmd --permanent --add-service={nfs,rpc-bind,mountd}
    # firewall-cmd --permanent --add-port={5555/tcp,5555/udp,6666/tcp,6666/udp}
    # firewall-cmd --reload
  8. NFS サーバーを有効にして起動します。

    # systemctl enable --now rpc-statd nfs-server

検証

  • サーバー上で、設定した NFS バージョンのみがサーバーから提供されていることを確認します。

    # cat /proc/fs/nfsd/versions
    +3 +4 -4.0 -4.1 +4.2
  • クライアントで、次の手順を実行します。

    1. nfs-utils パッケージをインストールします。

      # dnf install nfs-utils
    2. エクスポートされた NFS 共有をマウントします。

      # mount -o vers=<version> server.example.com:/nfs/projects/ /mnt/
    3. 指定された NFS バージョンで共有がマウントされたことを確認します。

      # mount | grep "/mnt"
      server.example.com:/nfs/projects/ on /mnt type nfs (rw,relatime,vers=3,...
    4. users グループのメンバーであるユーザーとして、/mnt/ にファイルを作成します。

      # touch /mnt/file
    5. ファイルが作成されたことを確認するためにディレクトリーをリスト表示します。

      # ls -l /mnt/
      total 0
      -rw-r--r--. 1 demo users 0 Jan 16 14:18 file