私は何年もの間、限られた容量でNFSを使用してきました。私はその概念に精通しており、NFS共有にアクセスしていましたが、実際に構成したことはありませんでした。たぶん、これは私だけではありません。私はそれをすべて設定する方法を学び、あなたを私と一緒に連れて行くことさえできると思いました。 NFS学習の初心者向けガイドを始めましょう。
NFSとは何ですか?
ネットワークファイルシステム(NFS)は、さまざまなリモートシステムがファイル共有にアクセスできるようにする分散ファイルシステムです。セキュリティとバックアップの容易さのために、ファイルを中央サーバーに保存する必要があることは誰もが知っています。 NFSは、簡単に管理でき、リソースへのクライアントアクセスを制御するファイル共有サービスを提供します。
何が必要ですか?
始める前に、いくつかの前提条件を明確にする必要があります。まず、ネットワークを介して相互に通信できる2つの異なるシステムが必要です。 NFSはサーバーとクライアントの関係を使用するため、以下を使用します。
- NFSサーバー-server.example.com-172.25.1.5
- NFSクライアント-client.example.com-172.25.1.4
ping
を使用できます 2つのシステム間の通信を確認するコマンド。 NATネットワーク上にこれら2台のマシンがあり、双方向の接続をテストしました。
その後、両方のシステムが最新であることを確認しましょう。これらのシステムはRHEL8.2とFedora32であるため、サーバーとクライアントの両方で次のコマンドを使用します。
[root@rhel tcarrigan]# sudo yum -y update
そして最後に、nfs-utils
をインストールする必要があります 両方のシステムにパッケージ化します。
[root@rhel tcarrigan]# sudo yum -y install nfs-utils (must do on both servers)
Updating Subscription Management repositories.
Last metadata expiration check: 0:55:54 ago on Wed 24 Jun 2020 11:53:45 AM EDT.
Package nfs-utils-1:2.3.3-31.el8.x86_64 is already installed.
Dependencies resolved.
Nothing to do.
Complete!
*注:パッケージは上記の例ですでにインストールされています。
それでは、サーバーの構成に取り掛かりましょう。
サーバーを構成する
手順1:新しくインストールしたnfs-utils
を起動して有効にします サービス。
[tcarrigan@rhel ~]$ sudo systemctl start nfs-server.service
[tcarrigan@rhel ~]$ sudo systemctl enable nfs-server.service
手順2:nfs-server
を確認します サービスが稼働しています。
[tcarrigan@rhel ~]$ sudo systemctl status nfs-server.service
● nfs-server.service - NFS server and services
Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; enabl>
Active: active (exited) since Wed 2020-06-24 12:50:23 EDT; 18min >
Main PID: 61026 (code=exited, status=0/SUCCESS)
Tasks: 0 (limit: 50657)
Memory: 0B
CGroup: /system.slice/nfs-server.service
Jun 24 12:50:23 server.example.com systemd[1]: Starting NFS server a>
Jun 24 12:50:23 server.example.com systemd[1]: Started NFS server an>
lines 1-10/10 (END)
ステップ3:NFSバージョンを確認します(この情報は列2に表示されます)。
[tcarrigan@rhel ~]$ rpcinfo -p | grep nfs
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
100227 3 tcp 2049 nfs_acl
*NFSデーモン構成ファイルは/etc/nfs.conf
にあることに注意してください。 。マウントの構成ファイルは、/etc/nfsmount.conf
にもあります。 。
これで、NFSサービスがサーバー上で稼働しています。次に、NFS共有を作成しましょう。
共有を作成してエクスポート
まず、共有するフォルダを指定する必要があります。システムにまだ存在しないため、共有するディレクトリを作成します。
[tcarrigan@rhel ~]$ sudo mkdir -p /test/nfs_share/docs
さて、私はいくつかの試行錯誤とよく書かれたリソースから、以下に一致するように権限と所有権を変更することで多くの頭痛を避けることができることを学びました:
[tcarrigan@rhel ~]$ sudo chown -R nobody: /test/nfs_share/docs/
[tcarrigan@rhel ~]$ sudo chmod -R 777 /test/nfs_share/docs/
*注:セキュリティ上の理由から、実稼働環境ではこれを実行できない場合があります。ファイルまたはディレクトリからすべての制限を削除する前に、自分が何をしているかを確認してください。
次に、/etc/exports
を作成する必要があります ファイル。
[root@server docs]# vi /etc/exports
新しいファイルに次のエントリを作成します。
/test/nfs_share 172.25.1.0/24(rw,sync,no_all_squash,root_squash)
ここで使用されているパラメータをよりよく理解するために、それらを1つずつ分解してみましょう。
- rw-NFS共有の読み取りと書き込みを可能にします。
- sync-他の操作を完了する前にディスクに変更を書き込む必要があります。
- no_all_squash-クライアントリクエストからのすべてのUIDとGIDをNFSサーバー上の同一のUIDとGIDにマップします。
- root_squash-クライアント側のrootユーザーからのリクエストを匿名のUID/GIDにマップします。
共有を作成したので、それをクライアントにエクスポートしましょう。
[root@server docs]# exportfs -rav
exporting 172.25.1.0/24:/test/nfs_share
ここでサブネット全体をマッピングしたことに注意してください。必要に応じて、ここに含めることができるIPまたはホスト名は1つだけです。
ファイアウォールを変更する
サーバーをインストールしてから、共有を作成してエクスポートしました。次に、ファイアウォールを通過するトンネルを構成します。 nfs
のルールを追加します 、rpc-bind
、およびmountd
。完了したら、ファイアウォール構成をリロードすることを忘れないでください。
ここで見られる:
[root@server]# firewall-cmd --permanent --add-service=nfs
success
[root@server]# firewall-cmd --permanent --add-service=rpc-bind
success
[root@server]# firewall-cmd --permanent --add-service=mountd
success
[root@server]# firewall-cmd --reload
success
サーバー側が完成したので、クライアントマシンに注意を向けることができます。
クライアントを構成する
*注:以降のすべての手順は、クライアントマシンで実行されます。
すでにシステムを更新してnfs-utils
をインストールしたので パッケージ、これはかなり簡単なはずです。
まず、/etc/hosts
にエントリを作成します。 NFSサーバー用。次のようになります:
[root@client]# cat /etc/hosts
127.0.0.1 localhost
::1 localhost
172.25.1.5 localhost
それでは、NFSサーバーから何かが共有されているかどうかを見てみましょう。前のセクションを実行すると、/test/nfs_share/docs
が表示されます。 共有ディレクトリとして。
[root@client ~]# showmount --exports nfs-server
Export list for nfs-server:
/test/nfs_share/docs 172.25.1.0/24
次に、クライアントマシンにディレクトリを作成して、リモート共有をマウントします。
[tcarrigan@client ~]$ sudo mkdir p /test/client_share
マウントディレクトリを作成したので、共有をマウントしましょう。
[tcarrigan@client ~]$ sudo mount -t nfs 172.25.1.5:/test/nfs_share/docs /home/tcarrigan/test/client_share
次のコマンドを実行して、共有を確認します。
[tcarrigan@client ~]$ sudo mount | grep -i nfs
最後に、再起動後もマウントが持続するようにするには、次の行を/etc/fstab
に追加します。 ファイル:
172.25.0.5:/test/nfs_share/docs /home/tcarrigan/test/client_share nfs defaults 0 0
簡単な日。
概念実証
私たちの努力の集大成として、構成された共有をテストしましょう。サーバー上の/test/nfs_share/docs
にファイルを作成します test_doc
という名前 。
[tcarrigan@server docs]$ ls -lrt
total 4
-rw-r--r--. 1 root root 39 Jun 25 16:21 test_doc
test_doc
かどうか見てみましょう NFSを介してクライアントマシンにエクスポートされます。
クライアントマシンの場合:
[tcarrigan@client ~]$ cd test/client_share/
[tcarrigan@client client_share]$ ls
docs
[tcarrigan@client client_share]$ ls docs/
test_doc
[tcarrigan@client client_share]$
ここにtest_doc
が表示されます NFSサーバー上に存在します。
他の方向でテストするために、client-test-doc
という名前のファイルをクライアント上に作成します 。
[tcarrigan@client docs]$ vi client-test-doc
サーバーにジャンプして、新しく作成されたファイルを表示できるかどうかを確認しましょう。
NFSサーバー:
[tcarrigan@server docs]$ ls -lrt
total 8
-rw-r--r--. 1 root root 39 Jun 25 16:21 test_doc
-rw-rw-r--. 1 tcarrigan tcarrigan 5 Jul 6 13:25 client-test-doc
元のファイルtest_doc
の両方を見ることができます 新しく作成されたファイルclient-test-doc
も同様です。 。
機能しているNFSサーバー/クライアントペアのセットアップおめでとうございます。
[無料のオンラインコース:Red HatEnterpriseLinuxの技術概要。 ]