ウェブサイト検索

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 です。さらに、 最も古いプロトコルであるNFSv3NFSv2 があります。

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.213RHEL 9
  • NFS クライアント – IP 10.128.15.214RHEL 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 の設定を確認しました。