ウェブサイト検索

CentOS 8 で NFS サーバーとクライアントをセットアップする方法


クライアント/サーバー ファイル システムとしても知られるネットワーク ファイル システム (NFS) は、ネットワーク経由でローカル ファイル システムをエクスポートするために使用される、一般的なクロスプラットフォームの分散ファイル システム プロトコルです。つまり、クライアントはネットワーク経由で他のユーザーとディレクトリやファイルを共有し、ローカルにマウントされているかのように対話できるということです。

CentOS/RHEL 8 では、サポートされている NFS バージョンは NFSv3NFSv4 で、デフォルトの NFS バージョンは 4.2 で、アクセス コントロール リストのサポートを備えています ( ACL)、サーバー側コピー、スパース ファイル、スペース予約、ラベル付き NFS、レイアウト拡張機能など。

この記事では、CentOS/RHEL 8 Linux ディストリビューションにNFS サーバーNFS クライアントをインストールして構成する方法を説明します。

前提条件:

  1. CentOS 8 インストールガイド
  2. RHEL 8 の最小限のインストール
  3. RHEL 8 で RHEL サブスクリプションを有効にする
  4. CentOS/RHEL 8 で静的 IP アドレスを設定する

私たちのテスト環境:

NFS Server IP:	10.20.20.8
NFS Client IP:	10.20.20.9	

CentOS 8 での NFS サーバーのセットアップ

1. まず、NFS サーバーに必要なパッケージをインストールすることから始めます。パッケージは、カーネル NFS サーバーのデーモンと、showmount プログラムを含む関連ツールを提供する nfs-utils です。

次のコマンドを実行して、NFS サーバーにパッケージをインストールします (root 以外のユーザーとしてシステムを管理している場合は、sudo を使用します)。

dnf install nfs-utils

2. インストールが完了したら、nfs-server サービスを開始し、システム起動時に自動的に開始されるように有効にし、systemctl コマンドを使用してそのステータスを確認します。

systemctl start nfs-server.service
systemctl enable nfs-server.service
systemctl status nfs-server.service

NFS サーバーの実行または NFS 共有のマウントに必要な他のサービス (nfsdnfs-idmapdrpcbindなど) に注意してください。 >rpc.mountdlockdrpc.statdrpc.rquotad、および rpc.idmapd > が自動的に起動します。

NFS サーバーの構成ファイルは次のとおりです。

  • /etc/nfs.conf – NFS デーモンとツールのメイン構成ファイル。
  • /etc/nfsmount.conf – NFS マウント構成ファイル。

3. 次に、NFS サーバー上でエクスポートまたは共有するファイル システムを作成します。このガイドでは、4 つのファイル システムを作成します。そのうちの 3 つは、人事、財務、マーケティングの 3 つの部門のスタッフがファイルを共有するために使用し、1 つは root ユーザーのバックアップ用です。

mkdir -p  /mnt/nfs_shares/{Human_Resource,Finance,Marketing}
mkdir  -p /mnt/backups
ls -l /mnt/nfs_shares/

4. 次に、上記のファイル システムを NFS サーバーの /etc/exports 構成ファイルにエクスポートして、NFS クライアントがアクセスできるローカルの物理ファイル システムを決定します。

/mnt/nfs_shares/Human_Resource  	10.20.20.0/24(rw,sync)
/mnt/nfs_shares/Finance			10.20.10.0/24(rw,sync)
/mnt/nfs_shares/Marketing		10.20.30.0/24(rw,sync)
/mnt/backups				10.20.20.9/24(rw,sync,no_all_squash,root_squash)

以下にエクスポート オプションの一部を示します (詳細とエクスポート オプションについては手動エクスポートを参照してください)。

  • rw – ファイル システム上で読み取りと書き込みの両方のアクセスを許可します。
  • 同期 – 要求に応じて書き込み操作 (ディスクへの情報の書き込み) を行うよう NFS サーバーに指示します (デフォルトで適用されます)。
  • all_squash – クライアントリクエストからのすべての UID と GID を匿名ユーザーにマッピングします。
  • no_all_squash – クライアント要求からのすべての UID と GID を NFS サーバー上の同一の UID と GID にマッピングするために使用されます。
  • root_squash – root ユーザーまたはクライアントからの UID/GID 0 からのリクエストを匿名 UID/GID にマッピングします。

5. 上記のファイル システムをエクスポートするには、-a フラグ (すべてのディレクトリをエクスポートまたはアンエクスポートすることを意味します)、- を指定して exportfs コマンドを実行します。 r は、すべてのディレクトリを再エクスポートし、/var/lib/nfs/etab/etc/exports および /etc/exports.d 下のファイルと同期することを意味します。 および -v は詳細な出力を有効にします。

exportfs -arv

6. 現在のエクスポート リストを表示するには、次のコマンドを実行します。次のスクリーンショットに示すように、エクスポートテーブルでは、明示的に定義されていないデフォルトのエクスポートオプションの一部も適用されることに注意してください。

exportfs  -s

7. 次に、firewalld サービスを実行している場合は、必要な NFS サービス (mountdnfs) へのトラフィックを許可する必要があります。 rpc-bind) をファイアウォール経由で実行し、次のようにファイアウォール ルールをリロードして変更を適用します。

firewall-cmd --permanent --add-service=nfs
firewall-cmd --permanent --add-service=rpc-bind
firewall-cmd --permanent --add-service=mountd
firewall-cmd --reload

クライアント システムでの NFS クライアントのセットアップ

8. 次に、クライアント ノードに、クライアント システム上の NFS 共有にアクセスするために必要なパッケージをインストールします。ディストリビューションに応じて適切なコマンドを実行します。

dnf install nfs-utils nfs4-acl-tools         [On CentOS/RHEL]
sudo apt install nfs-common nfs4-acl-tools   [On Debian/Ubuntu]

9. 次に、showmount コマンドを実行して、NFS サーバーのマウント情報を表示します。このコマンドは、スクリーンショットに示すように、クライアント上にエクスポートされたファイル システムを出力する必要があります。

showmount -e 10.20.20.8

9. 次に、リモート NFS ファイル システムをマウントするためのローカル ファイル システム/ディレクトリを作成し、それを ntf ファイル システムとしてマウントします。

mkdir -p /mnt/backups
mount -t nfs  10.20.20.8:/mnt/backups /mnt/backups

10. 次に、mount コマンドを実行してリモート ファイル システムがマウントされていることを確認し、nfs マウントをフィルタします。

mount | grep nfs

11. システムの再起動後もマウントを永続的に有効にするには、次のコマンドを実行して /etc/fstab に適切なエントリを入力します。

echo "10.20.20.8:/mnt/backups     /mnt/backups  nfs     defaults 0 0">>/etc/fstab
cat /etc/fstab

12. 最後に、サーバー上にファイルを作成して NFS セットアップが正常に機能しているかどうかをテストし、そのファイルがクライアントで表示されるかどうかを確認します。

touch /mnt/backups/file_created_on_server.text     [On NFS Server]
ls -l /mnt/backups/file_created_on_server.text     [On NFS client]

次に、その逆を行います。

touch /mnt/backups/file_created_on_client.text     [On NFS Client]
ls -l /mnt/backups/file_created_on_client.text     [On NFS Server]

13. クライアント側でリモート ファイル システムをアンマウントします。

umount /mnt/backups

次のスクリーンショットに示すように、リモート ファイル システム内で操作している場合は、 リモート ファイル システムをアンマウントすることはできないことに注意してください。

それでおしまい!このガイドでは、CentOS/RHEL 8NFS サーバーとクライアントをインストールして構成する方法を説明しました。共有したい考えや質問がある場合は、コメント フォームを使用してください。折り返しご連絡させていただきます。