GNU/Linux >> Linux の 問題 >  >> Linux

サーバーとクライアントの構成によるNFSの学習

私は何年もの間、限られた容量で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の技術概要。 ]


Linux
  1. ScientificLinux6.3でのNFSサーバーとクライアントのセットアップ

  2. CentOS7へのNFSサーバーとクライアントのインストール

  3. CentOS / RHEL 7 :NFS サーバーと NFS クライアントの構成

  1. CentOS7.2でのNFSサーバーとクライアントのセットアップ

  2. Ubuntu20.04にNFSクライアントとサーバーをインストールする方法

  3. DebianWheezyでのNFSサーバーとクライアントのセットアップ

  1. Debian 9でのNFSサーバーとクライアントのセットアップ(ストレッチ)

  2. CentOS6.3でのNFSサーバーとクライアントのセットアップ

  3. OpenSUSE12.2でのNFSサーバーとクライアントのセットアップ