RHEL / CentOS / FedoraおよびDebian / UbuntuでNFS(ネットワークファイルシステム)をセットアップする方法


NFS(Network File System)は、基本的に1980年にSunMicrosystemsによってLinux/Unixシステム間でファイルとフォルダを共有するために開発されました。これにより、ローカルファイルシステムをネットワーク経由でマウントし、リモートホストがローカルにマウントされたときにそれらと対話できます。同じシステム上。 NFSの助けを借りて、UnixからLinuxシステム間およびLinuxからUnixシステム間でファイル共有を設定できます。

  1. NFS allows local access to remote files.
  2. It uses standard client/server architecture for file sharing between all *nix based machines.
  3. With NFS it is not necessary that both machines run on the same OS.
  4. With the help of NFS we can configure centralized storage solutions.
  5. Users get their data irrespective of physical location.
  6. No manual refresh needed for new files.
  7. Newer version of NFS also supports acl, pseudo root mounts.
  8. Can be secured with Firewalls and Kerberos.

そのSystemVが立ち上げたサービス。 NFSサーバーパッケージには、portmapパッケージとnfs-utilsパッケージに含まれる3つの機能が含まれています。

  1. portmap : It maps calls made from other machines to the correct RPC service (not required with NFSv4).
  2. nfs: It translates remote file sharing requests into requests on the local file system.
  3. rpc.mountd: This service is responsible for mounting and unmounting of file systems.
  1. /etc/exports : Its a main configuration file of NFS, all exported files and directories are defined in this file at the NFS Server end.
  2. /etc/fstab : To mount a NFS directory on your system across the reboots, we need to make an entry in /etc/fstab.
  3. /etc/sysconfig/nfs : Configuration file of NFS to control on which port rpc and other services are listening.

LinuxサーバーでのNFSマウントのセットアップと構成

NFSマウントをセットアップするには、少なくとも2台のLinux/Unixマシンが必要です。このチュートリアルでは、2台のサーバーを使用します。

  1. NFS Server: nfsserver.example.com with IP-192.168.0.100
  2. NFS Client : nfsclient.example.com with IP-192.168.0.101

NFSサーバーとNFSクライアントマシンにNFSパッケージをインストールする必要があります。 「yum」(Red Hat Linux)および「apt-get」(DebianおよびUbuntu)パッケージインストーラーを介してインストールできます。

[[email protected] ~]# yum install nfs-utils nfs-utils-lib
[[email protected] ~]# yum install portmap (not required with NFSv4)
[[email protected] ~]# apt-get install nfs-utils nfs-utils-lib

次に、両方のマシンでサービスを開始します。

[[email protected] ~]# /etc/init.d/portmap start
[[email protected] ~]# /etc/init.d/nfs start
[[email protected] ~]# chkconfig --level 35 portmap on
[[email protected] ~]# chkconfig --level 35 nfs on

パッケージをインストールして両方のマシンでサービスを開始したら、ファイル共有用に両方のマシンを構成する必要があります。

NFSサーバーのセットアップ

まず、NFSサーバーを構成します。

NFSとディレクトリを共有するには、「/ etc/exports」構成ファイルにエントリを作成する必要があります。ここでは、「/」パーティションに「nfsshare」という名前の新しいディレクトリを作成して、クライアントサーバーと共有します。また、既存のディレクトリをNFSと共有することもできます。

[[email protected] ~]# mkdir /nfsshare

次に、「/ etc/exports」にエントリを作成し、サービスを再起動して、ディレクトリをネットワークで共有できるようにする必要があります。

[[email protected] ~]# vi /etc/exports

/nfsshare 192.168.0.101(rw,sync,no_root_squash)

上記の例では、「nfsshare」という名前のディレクトリが/パーティションにあり、読み取りおよび書き込み(rw)特権を持つクライアントIP「192.168.0.101」と共有されています。IPの代わりにクライアントのホスト名を使用することもできます。上記の例。

ファイル共有のために「/ etc/exports」ファイルで使用できる他のいくつかのオプションは次のとおりです。

  1. ro: With the help of this option we can provide read only access to the shared files i.e client will only be able to read.
  2. rw: This option allows the client server to both read and write access within the shared directory.
  3. sync: Sync confirms requests to the shared directory only once the changes have been committed.
  4. no_subtree_check: This option prevents the subtree checking. When a shared directory is the subdirectory of a larger file system, nfs performs scans of every directory above it, in order to verify its permissions and details. Disabling the subtree check may increase the reliability of NFS, but reduce security.
  5. no_root_squash: This phrase allows root to connect to the designated directory.

「/ etc/exports」のその他のオプションについては、エクスポートのマニュアルページを読むことをお勧めします。

NFSクライアントのセットアップ

NFSサーバーを構成した後、その共有ディレクトリまたはパーティションをクライアントサーバーにマウントする必要があります。

次に、NFSクライアント側で、そのディレクトリをサーバーにマウントして、ローカルにアクセスする必要があります。そのためには、まず、リモートサーバーまたはNFSサーバーで利用可能な共有を見つける必要があります。

[[email protected] ~]# showmount -e 192.168.0.100

Export list for 192.168.0.100:
/nfsshare 192.168.0.101

上記のコマンドは、「nfsshare」という名前のディレクトリが「192.168.0.100」でサーバーと共有できることを示しています。

その共有NFSディレクトリをマウントするには、次のmountコマンドを使用できます。

[[email protected] ~]# mount -t nfs 192.168.0.100:/nfsshare /mnt/nfsshare

上記のコマンドは、その共有ディレクトリをクライアントサーバーの「/ mnt/nfsshare」にマウントします。次のコマンドで確認できます。

[[email protected] ~]# mount | grep nfs

sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
nfsd on /proc/fs/nfsd type nfsd (rw)
192.168.0.100:/nfsshare on /mnt type nfs (rw,addr=192.168.0.100)

上記のmountコマンドは、nfs共有ディレクトリをnfsクライアントに一時的にマウントしました。再起動後もシステムにNFSディレクトリを永続的にマウントするには、「/ etc/fstab」にエントリを作成する必要があります。

[[email protected] ~]# vi /etc/fstab

以下に示すように、次の新しい行を追加します。

192.168.0.100:/nfsshare /mnt  nfs defaults 0 0

NFSセットアップの動作をテストする

サーバー側でテストファイルを作成し、nfsクライアント側でその可用性を確認するか、またはその逆を行うことで、NFSサーバーのセットアップをテストできます。

その共有ディレクトリに「nfstest.txt」という名前の新しいテキストファイルを作成しました。

[[email protected] ~]# cat > /nfsshare/nfstest.txt

This is a test file to test the working of NFS server setup.

クライアントサーバーのその共有ディレクトリに移動すると、手動で更新したりサービスを再起動したりしなくても、その共有ファイルを見つけることができます。

[[email protected]]# ll /mnt/nfsshare
total 4
-rw-r--r-- 1 root root 61 Sep 21 21:44 nfstest.txt
[email protected] ~]# cat /mnt/nfsshare/nfstest.txt
This is a test file to test the working of NFS server setup.

NFSマウントの削除

ファイル共有が完了した後でその共有ディレクトリをサーバーからアンマウントする場合は、「umount」コマンドを使用してその特定のディレクトリをアンマウントするだけです。以下のこの例を参照してください。

[email protected] ~]# umount /mnt/nfsshare

ファイルシステムをもう一度見ると、マウントが削除されたことがわかります。

[[email protected] ~]# df -h -F nfs

これらの共有ディレクトリは使用できなくなっていることがわかります。

NFSのいくつかのより重要なコマンド。

  1. showmount -e : Shows the available shares on your local machine
  2. showmount -e <server-ip or hostname>: Lists the available shares at the remote server
  3. showmount -d : Lists all the sub directories
  4. exportfs -v : Displays a list of shares files and options on a server
  5. exportfs -a : Exports all shares listed in /etc/exports, or given name
  6. exportfs -u : Unexports all shares listed in /etc/exports, or given name
  7. exportfs -r : Refresh the server’s list after modifying /etc/exports

これは今のところNFSマウントを使用したものです。これはほんの始まりにすぎません。今後の記事で、NFSのより多くのオプションと機能を考え出します。それまでは、Tecmint.comとの接続を維持して、今後さらにエキサイティングで興味深いチュートリアルを入手してください。以下のコメントボックスにコメントや提案を残してください。