ネットワークファイルシステム(NFS)は、クライアント/サーバーファイルシステムとも呼ばれ、ネットワーク経由でローカルファイルシステムをエクスポートするために使用される一般的でクロスプラットフォームで分散ファイルシステムプロトコルです。CentOS/RHEL8では、サポートされているNFSのバージョンはNfsv3およびNfsv4で、デフォルトのNFSのバージョンは4です。アクセス制御リスト(Acl)、サーバー側のコピー、スパースファイル、スペース予約、ラベル付けされたNFS、レイアウトの拡張などのサポートを備えています。この記事では、CentOS/RHEL8LinuxディストリビューションにNFSサーバーとNFSクライアントをインストールして設定する方法を学習します。
:
- CentOS8インストールガイド
- Rhel8最小インストール
- Rhel8でRHELサブスクリプションを有効にする
- CentOS/RHELで静的IPアドレスを設定する8
私たちのテスト環境:
NFS Server IP:10.20.20.8NFS Client IP:10.20.20.9
CentOS8でNFSサーバーを設定する
1. まず、必要なパッケージをNFSサーバーにインストールすることから始めます。 パッケージはnfs-utilsであり、カーネルNFSサーバーのデーモンとshowmountプログラムを含むなどの関連ツールを提供します。
次のコマンドを実行して、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サーバーの設定ファイルは次のとおりです:
- /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クライアントがアクセスできるローカル物理ファイルシステムを
エクスポートオプションの一部を以下に示します(詳細とエクスポートオプションについてはman exportsを参照してくださ):
- rw-ファイルシステムの読み取りアクセスと書き込みアクセスの両方を許可します。
- sync–要求されたときにNFSサーバーに書き込み操作(ディスクへの情報の書き込み)を指示します(デフォルトで適用されます)。
- all_squash–クライアント要求のすべてのUidとGidを匿名ユーザーにマップします。
- no_all_squash–クライアント要求のすべてのUidとGidをNFSサーバー上の同一のUidとGIDにマップするために使用します。
- root_squash–クライアントからのrootユーザーまたはUID/GID0からの要求を匿名のUID/GIDにマップします。
5. 上記のファイルシステムをエクスポートするには、-a
フラグを指定してexportfsコマンドを実行し、-r
はすべてのディレクトリをエクスポートまたはアンエクスポートすることを意味し、/var/lib/nfs/etabを/etc/exportsおよび/etc/exportsの下のファイルと同期させます。d、および-vは詳細な出力を有効にします。
# exportfs -arv
6. 現在のエクスポートリストを表示するには、次のコマンドを実行します。 Exportsテーブルには、次のスクリーンショットに示すように明示的に定義されていない既定のexportsオプションの一部も適用されます。
# exportfs -s
7. 次に、firewalldサービスが実行されている場合は、ファイアウォール経由で必要なNFSサービス(mountd、nfs、rpc-bind)へのトラフィックを許可し、ファイアウォールルールをリロードして変更を適用する必要があります。
クライアントシステムでNFSクライアントを設定する
8. 次に、クライアント-ノードに、クライアント-システム上のNFS共有にアクセスするために必要なパッケージをインストールします。 配布に適したコマンドを実行します:
# dnf install nfs-utils nfs4-acl-tools $ sudo apt install nfs-common nfs4-acl-tools
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 # ls -l /mnt/backups/file_created_on_server.text
からNFSセットアップをテストし、その逆を行います。
# touch /mnt/backups/file_created_on_client.text # ls -l /mnt/backups/file_created_on_client.text
13. クライアント側でリモートファイルシステムをアンマウントする。
# umount /mnt/backups
次のスクリーンショットに示すように、リモートファイルシステム内で動作している場合、リモートファイルシステムをアンマウントすることはできません。