ネットワークファイル共有の頭字語、 NFS は、クライアントマシンがネットワーク経由でNFSサーバーによって共有されるファイルにアクセスできるようにするクロスプラットフォームのクライアント/サーバープロトコルです。クライアントシステムは、NFSサーバーからファイルシステムをローカルにマウントし、ローカルにマウントされているかのようにファイルとディレクトリにアクセスできます。このガイドでは、 CentOS 8 / RHEL 8でのNFSサーバーのインストールと構成について説明します。 。
注: CentOS8またはRHEL8の場合NFSv3 & v4 両方がサポートされています。 NFSv3は、安全な非同期書き込みを可能にし、64ビットのファイルサイズとオフセットをサポートします。一方、NFSv4はOSファイアウォールを介して動作し、ACL(アクセス制御リスト)をサポートし、rpcbindサービスを必要としません
NFSサーバー/クライアントのセットアップ
始める前に、以下のセットアップを使用して、クライアント/サーバーセットアップでNFSプロトコルがどのように機能するかをシミュレートします。
- サーバーマシンのIP:アドレス:192.168.2.102 CentOS 8
- クライアントマシンのIP:アドレス:192.168.2.103 CentOS 8
セットアップが完了したら、サーバーマシンへのNFSのインストールを開始しましょう。
ステップ1)CentOS 8 /RHEL8サーバーにNFSをインストールして構成する
まず、 nfs-utilsというNFSサーバーパッケージをインストールします。 これはNFSデーモンとして機能します。 nfs-utilsパッケージをインストールするには、ターミナルを起動して次のコマンドを実行します。
$ sudo dnf install nfs-utils -y
以下の例では、nfs-utilsはすでにインストールされています。
インストールが完了したら、nfs-serverサービスを開始して有効にし、再起動後に自動的に実行されるようにします。次のコマンドを実行します
$ sudo systemctl start nfs-server.service $ sudo systemctl enable nfs-server.service
NFSサービスが実行されていることを確認するには、次を実行します。
$ sudo systemctl status nfs-server.service
次のコマンドを実行して、実行しているnfsプロトコルのバージョンを確認できます。
$ rpcinfo -p | grep nfs
バージョンは、以下に示す出力の2番目の列に示されています。
NFSサーバーの追加構成については、構成ファイルを /etc/nfs.confにあります。 これは、NFSデーモン構成ファイルと /etc/nfsmount.conf これはNFSマウントの構成ファイルです。
ステップ2)NFS共有の作成とエクスポート
このステップでは、サーバーからクライアントシステムに共有されるファイルシステムを作成します。このガイドでは、以下に示すように/ mnt / nfs_share/docsにディレクトリを作成します
$ sudo mkdir -p / mnt / nfs_shares / docs
NFS共有ディレクトリでのファイルの制限を回避するには、図のようにディレクトリの所有権を構成することをお勧めします。これにより、権限の問題が発生することなく、クライアントシステムからファイルを作成できます。
$ sudo chown -R nobody: /mnt/nfs_shares/docs
また、好みに応じてディレクトリのアクセス許可を調整することもできます。たとえば、このガイドでは、すべてのアクセス許可(読み取り、書き込み、実行)をNFS共有フォルダーに割り当てます
$ sudo chmod -R 777 /mnt/nfs_shares/docs
変更を有効にするには、NFSデーモンを再起動します。
$ sudo systemctl restart nfs-utils.service
クライアントシステムがアクセスできるようにNFS共有をエクスポートするには、 / etc / exportsを編集する必要があります。 ファイル。図のようにサブネットを指定することで、複数のクライアントに共有へのアクセスを許可できます
/ mnt / nfs_shares / docs 192.168.2.0/24(rw、sync、no_all_squash、root_squash
また、各クライアントを別々の行で指定することもできます:
/ mnt / nfs_shares / docs client-IP(rw、sync、no_all_squash、root_squash)
/ mnt / nfs_shares / docs client-IP(rw、sync、no_all_squash、root_squash)
セットアップを使用して、IP192.168.2.103を使用してクライアントマシンへのアクセスを許可します。ファイル「/etc / exports」に次の行を追加します ’:
$ sudo vi /etc/exports /mnt/nfs_shares/docs 192.168.2.103(rw,sync,no_all_squash,root_squash)
ファイルを保存して終了します。 catコマンドを使用して、次のようにエントリを確認します
[[email protected]] cat /etc/exports /mnt/nfs_shares/docs 192.168.2.103(rw,sync,no_all_squash,root_squash) [[email protected]]
使用されるパラメータの意味を見てみましょう:
- rw –これは読み取り/書き込みの略です。 NFS共有に読み取りおよび書き込み権限を付与します。
- 同期 –このパラメーターでは、他の操作を実行する前に、まずディスクに変更を書き込む必要があります。
- no_all_squash –これにより、クライアントリクエストからのすべてのUIDとGIDが、NFSサーバー上にある同一のUIDSとGIDにマッピングされます。
- root_squash –属性は、クライアント側のrootユーザーからの要求を匿名のUID/GIDにマップします。
上記で作成したフォルダをエクスポートするには、次のようにexportfsコマンドを使用します。
$ sudo exportfs -arv
-a オプションは、すべてのディレクトリがエクスポートされることを意味します、 -r すべてのディレクトリを再エクスポートし、最後に -vを再エクスポートすることを表します フラグは詳細な出力を表示します。
エクスポートリストについては、次のコマンドを使用してエクスポートリストを表示できます。
$ sudo exportfs -s
完全!エクスポートリストがあります。ここまでは順調ですね。 NFSサーバーに残っている唯一の構成は、ファイアウォールでNFSサービスを許可することです。
ステップ3)NFSサーバーのファイアウォールルールを構成する
サーバーを構成する最後のステップは、CentOS8サーバーマシンのファイアウォールを介したNFSサービスを許可することです。これらのサービスはnfs、rpc-bind 、およびマウント 。したがって、以下のコマンドを実行します。
$ sudo firewall-cmd --permanent --add-service=nfs $ sudo firewall-cmd --permanent --add-service=rpc-bind $ sudo firewall-cmd --permanent --add-service=mountd
次に、ファイアウォールをリロードして変更を有効にします
$ sudo firewall-cmd --reload
それでは、クライアントシステムに向かい、NFS共有にアクセスするように設定しましょう。
NFSクライアントシステムのセットアップ
NFSファイル共有にアクセスするようにクライアントシステムを構成するには、以下の手順に従います
ステップ1)必要なNFSパッケージをインストールします
CentOS 8クライアントシステムで、NFSサーバー上にあるNFS共有にアクセスするために必要なパッケージをインストールします
$ sudo dnf install nfs-utils nfs4-acl-tools -y
DebianまたはUbuntuシステムの場合:
$ sudo apt install nfs-common nfs4-acl-tools -y
サーバーにマウントされたNFS共有を表示するには、 showmountを使用します コマンド:
$ showmount -e 192.168.2.102
ステップ2)サーバー上にあるリモートNFS共有をマウントする
次に、ローカルクライアントシステム上にあるリモートNFS共有ディレクトリをマウントする必要があります。ただし、最初に、NFS共有をマウントするためのディレクトリを作成しましょう。
$ sudo mkdir p /mnt/client_share
NFS共有をマウントするには、以下のコマンドを実行します。 192.168.2.102がNFSサーバーのIPアドレスであることを思い出してください。
$ sudo mount -t nfs 192.168.2.102:/mnt/nfs_shares/docs /mnt/client_share
次のコマンドを実行して、リモートNFS共有がマウントされていることを確認できます。
$ sudo mount | grep -i nfs
再起動時にマウント共有を永続化するには、 / etc / fstabを編集する必要があります ファイルを作成し、以下のエントリを追加します。
192.168.2.102:/mnt/nfs_shares/docs /mnt/client_share nfs defaults 0 0
ファイルを保存して閉じます。
NFSサーバーとクライアントのセットアップのテスト
この時点で、すべての構成が完了しました。ただし、セットアップをテストして、すべてが機能することを確認する必要があります。したがって、最初に、NFSサーバー共有ディレクトリにテストファイルを作成し、それがクライアントのNFSマウントディレクトリに存在するかどうかを確認します。
$ sudo touch /mnt/nfs_shares/docs/server_nfs_file.txt
次に、クライアントシステムに移動して、ファイルがクライアント側に存在するかどうかを確認します。
$ ls -l /mnt/client_share/
素晴らしい!出力から、ファイルが存在することがはっきりとわかります。反対のことをしましょう。 NFSクライアントシステム上にファイルを作成し、NFSサーバーからアクセスできるかどうかを確認します。
クライアントで、次のようにファイルを作成します。
$ sudo touch /mnt/client_share/client_nfs_file.txt
次に、サーバーに戻って、ファイルがNFS共有ディレクトリに存在するかどうかを確認します
$ ls -l /mnt/nfs_shares/docs
素晴らしい!ファイルを表示してアクセスできます。
ご覧のとおり、NFSサーバーとクライアントの両方でファイルを簡単に作成し、2つのシステム間、および共有にアクセスするように構成されている他のクライアントシステム間でシームレスに共有できます。これで、今日のチュートリアルは終了です。このガイドでは、CentOS8およびRHEL8にNFSサーバーとクライアントシステムのセットアップをインストールしてセットアップする方法を示しました。