RHEL ディストリビューションに NFS サーバーとクライアントをインストールする方法
Linux では、ネットワーク上でストレージとファイルを共有するために使用されるファイル共有プロトコルがいくつかあります。最も広く使用されているのは Samba と NFS です。
Samba は、クライアント サーバー アーキテクチャで動作する人気のあるオープンソース アプリケーション スイートです。クロスプラットフォーム互換性を提供し、Linux、Windows、macOS オペレーティング システム間でのシームレスなファイル共有を可能にします。 Linux システムでホストされているファイル共有には、さまざまなプラットフォームからアクセスできるため、コラボレーションが促進されます。
もう 1 つの広く使用されているファイル共有プロトコルは、ネットワーク ファイル共有 の略称であるNFS です。 Samba と同様に、クライアント/サーバー モデルで動作し、ユーザーがネットワークを介して複数のリモート クライアント ユーザーとディレクトリやファイルを共有できるようにします。
このガイドでは、Fedora、CentOS Stream、Rocky Linux、AlmaLinux などの RHEL ベースのディストリビューションにNFS サーバーとクライアントをインストールする方法を確認します。
NFS サービス
現在、NFS には 3 つのバージョンがあり、最新のものはインターネットやファイアウォールを越えて動作する機能などの機能を含むNFSv4 です。さらに、 最も古いプロトコルであるNFSv3 とNFSv2 があります。
NFS サービスは、NFS サーバー とクライアントで構成されます。 NFS サーバーは次のキー ファイルで構成されます。
- nfs-server – これにより、クライアント システムが NFS 共有ファイルにアクセスできるようになります。
- rpcbind – RPC プログラムをユニバーサル アドレスに変換します。
- nfs-idmap – ユーザーとグループの ID から名前への変換、およびユーザーとグループ名から ID への変換を実行します。
- ポートマップ – これは、RPC プログラム番号を IP ポート番号に変換するサーバーです。
- nfslock – NFS サーバーがクラッシュした場合、nfslock は必要な RPC プロセスを開始します。
NFS 構成サービス
NFS の主要な構成ファイルの一部を次に示します。
- /etc/exports – メインの設定ファイル。リモート ユーザーがエクスポートおよびアクセスするファイル システムまたはディレクトリを規定します。
- /etc/fstab – これは、マウントされたパーティションのエントリが含まれるファイルです。 NFS では、ファイルには永続的にマウントされ、再起動を継続できる NFS 共有ディレクトリまたはファイルシステムのエントリが含まれます。
- /etc/sysconfig/nfs – RPC サービスの実行中に必要なポートを定義します。
NFS サーバーとクライアントのセットアップ
NFS 共有を設定するには、少なくとも 2 台のLinux/Unix マシンが必要です。このチュートリアルでは、2 つのサーバーを使用します。
- NFS サーバー – IP 10.128.15.213 の RHEL 9
- NFS クライアント – IP 10.128.15.214 の RHEL 9
サーバーとクライアントに NFS をインストールする
まず、両方のノード (NFS サーバーとクライアント) にログインし、NFS サービスをインストールする必要があります。まず、次のようにパッケージ情報を更新します。次の dnf コマンドも、すべての魅力的なパッケージを最新バージョンにアップグレードします。
sudo dnf update
アップデートが完了したら、続行して必要なNFS サービスをインストールします。
sudo dnf install rpcbind nfs-utils -y
次のステップは、 図に示すようにNFS サービスを有効にすることです。
sudo systemctl enable nfs-server
sudo systemctl enable rpcbind
必ずNFS サービスも開始してください。
sudo systemctl enable nfs-server
sudo systemctl enable rpcbind
すべてのNFS サービスが実行されていることを確認することが重要です。
sudo systemctl status nfs-server
sudo systemctl status rpcbind
次のように、受信 NFS サービスを許可するためにファイアウォールも設定してください。
sudo firewall-cmd --permanent --add-service={nfs,rpc-bind,mountd}
sudo firewall-cmd --reload
NFS 共有ディレクトリを作成する
すべてのNFS サービスがインストールされ、期待どおりに実行されたら、NFS 共有ディレクトリを作成します。このディレクトリには、ネットワーク内の NFS クライアントがアクセスするファイルが含まれます。
この場合、ホーム ディレクトリに my_nfsshare という名前の NFS 共有ディレクトリを作成します。
mkdir -p /home/tecmint/my_nfsshare
次に、ディレクトリのアクセス許可を割り当てます。デモンストレーションの目的で、NFS クライアントに読み取り、書き込み、および実行のアクセス許可を与えるグローバル アクセス許可を割り当てます。
sudo chmod 777 -R /home/tecmint/my_nfsshare
NFS 共有ディレクトリをエクスポートする
次のステップは、NFS 共有ディレクトリをエクスポートすることです。これを実現するには、/etc/exports ファイルにエントリを作成する必要があります。したがって、好みのテキスト エディタを使用してファイルにアクセスしてください。この場合、Vim エディターを使用します。
sudo vim /etc/exports
次のエントリを追加します。必ず、server-ip を NFS サーバーの IP アドレスに置き換えてください。
/home/tecmint/my_nfsshare server-ip/24(rw,no_root_squash)
最後に、NFS 共有ディレクトリまたはファイルシステムをエクスポートします。
sudo exportfs -rv
次のコマンドを実行して、NFS 共有を表示します。
showmount -e localhost
NFS クライアントの構成
この演習の残りのフェーズでは、共有ディレクトリにアクセスするために NFS クライアントを構成します。まず、NFS サーバー上のエクスポート リストまたは NFS 共有を表示できることを確認します。
showmount -e 10.128.15.213
次の手順では、NFS 共有をサーバーからクライアントにマウントします。これを行うには、まずマウント ディレクトリを作成する必要があります。この場合、nfs_backup というディレクトリを作成します。
mkdir nfs_backup
その後、ルート ホーム ディレクトリに作成したばかりのマウント ディレクトリに NFS 共有をマウントします。
mount -t nfs 10.128.15.213:/home/tecmint/my_nfsshare ~/nfs_backup
NFS 共有を永続化するには、/etc/fstab ファイルを編集します。
vim /etc/fstab
次に、次のエントリを追加します。
10.128.15.213:/home/tecmint/my_nfsshare /root/nfs_backup nfs defaults 0 0
設定ファイルを保存して終了します。
NFS セットアップのテスト
最後のステップは、NFS セットアップが期待どおりに機能しているかどうかを確認することです。サーバー上にいくつかのファイルを作成し、NFS クライアント側でそれらのファイルが利用可能であることを確認します。
サーバー側では、NFS 共有ディレクトリにファイルを作成します。
sudo touch my_nfsshare/file{1..4}.txt
ファイルが作成されたことを確認するには、ls コマンドを実行します。
ls -l my_nfsshare/
クライアント側に戻り、次の出力に示すように、サービスの更新やサービスの再起動を行わなくても、ファイルがマウント ディレクトリで利用可能であることを確認します。
ls -l nfs_backup/
NFS マウントの削除
システム上でマウントされたディレクトリが必要なくなった場合は、次のumount コマンドを使用してクライアント側からディレクトリをアンマウントできます。
umount ~/nfs_backup
NFS 共有コマンド
NFS のさらに重要なコマンド。
- showmount -e – ローカル マシン上で利用可能な共有を表示します。
- showmount -e ip-address – リモートサーバーで利用可能な共有をリストします。
- showmount -d – すべてのサブディレクトリをリストします。
- exportfs -v – サーバー上の共有ファイルとオプションのリストを表示します。
- exportfs -a – /etc/exports にリストされているすべての共有、または指定された名前をエクスポートします。
- exportfs -u – /etc/exports にリストされているすべての共有、または指定された名前をアンエクスポートします。
- exportfs -r – /etc/exports を変更した後にサーバーのリストを更新します。
結論
これで、RedHat ベースのディストリビューションにNFS サーバーとクライアントをインストールする方法に関するガイドは終了です。サーバーにNFS サービスをインストールし、NFS 共有ディレクトリを作成し、最後に共有ディレクトリをクライアントにマウントしました。最後に、クライアント側からサーバー上に作成されたファイルにアクセスして、NFS の設定を確認しました。