NFSはNetworkFileSystemの略で、1990年にSUNMicrosystemsによって開発された*nix/Linuxシステム間でファイルとフォルダを共有するのに役立つサービスです。
NFSを使用すると、ローカルディスクのようにリモート共有をマウントできます。この投稿は、NFSサーバーのセットアップに役立ちます Debian 9 / Ubuntu 16.04 。
環境
このガイドは、 Debian 8などの古いバージョンのDebianでも機能するはずです。 およびUbuntu Ubuntu 17.10 / 17.04 / 15.10 / 15.04 / Ubuntu 14.04などのバージョン 。
これが私のノードの詳細です。
NFSサーバーのホスト名:server.itzgeek.local
NFSサーバーのIPアドレス:192.168.1.10 / 24
NFSクライアントのホスト名:client.itzgeek.local
NFSクライアントのIPアドレス:192.168.1.20/24
NFSサーバーとクライアントの両方で静的IPアドレスを使用 DHCPサーバーが利用できないことによるネットワークの問題を回避するため 。
重要なサービス
rpcbind :rpcbindは、RPCプログラム番号をユニバーサルアドレスに変換するサーバーです。
nfs :クライアントがNFS共有にアクセスできるようにします。
nlockmgr :NFSファイルロックは、NFSサーバーがクラッシュして再起動したときにファイルロックの回復を実装します。
マウント :アクセス制御リストを処理して、クライアントがNFS共有へのアクセスを許可されているかどうかを判断します。
重要な構成ファイル
NFSサーバーとクライアントをセットアップするときは、以下の構成ファイルで作業します。
/ etc / exports :メイン構成ファイル。このファイルでは、指定されたオプションを使用して、リモートホストにエクスポートするファイルシステムについて説明します。
/ etc / fstab :このファイルには、システムの起動時にNFSを含むすべてのファイルシステムを自動的にマウントするためのエントリが含まれています。
/etc/hosts.allow 、および /etc/hosts.deny :これらのファイルはTCPラッパーと呼ばれ、NFSが外部IPアドレスからの接続を受け入れるかどうかを決定するために使用します
NFSサーバーのインストールと構成
rootユーザーに切り替えます。
sudo su -
または
su -
次のコマンドを使用して、NFSサーバーにNFSパッケージをインストールします。
apt-get install -y nfs-kernel-server
NFS共有を作成する
クライアントマシンと共有するディレクトリを作成しましょう。ここでは、 nfsshareという名前の新しいディレクトリを作成します /で パーティションを作成し、NFSで共有します。
既存のディレクトリをNFSに使用することもできます。
mkdir /nfsshare
クライアントマシンが作成されたディレクトリの読み取りと書き込みを許可します。
chmod 777 /nfsshare/
NFS共有のエクスポート
/ etc / exportsを変更します NFS共有をエクスポートするためのファイル。
vi /etc/exports
ディレクトリ/nfsshareのエントリを作成します NFS共有としてエクスポートします。
/nfsshare 192.168.1.20(rw,sync,no_root_squash,no_subtree_check)
どこで、
/ nfsshare :共有ディレクトリ
192.168.1.20 :クライアントマシンのIPアドレス。 IPアドレスの代わりにホスト名を使用できます。また、複数のマシンで共有する場合は、192.168.1.0/24のようなサブネットについて言及することもできます。
rw :共有フォルダへの書き込み可能な権限
同期 :ファイルシステムへのすべての変更はすぐにディスクにフラッシュされます。それぞれの書き込み操作が待機されています。
no_root_squash :デフォルトでは、クライアントマシンでユーザーrootによって作成されたファイルは、サーバー上で「nobody」として扱われます。 no_root_squashが設定されている場合、クライアントマシンのrootは、サーバーのrootと同じレベルのファイルへのアクセス権を持ちます。
no_subtree_check :ボリュームの一部のみがエクスポートされる場合、サブツリーチェックと呼ばれるルーチンは、クライアントによって要求されたファイルがボリュームの適切な部分にあることを確認します。ボリューム全体がエクスポートされる場合は、no_subtree_checkで無効にします。これにより、転送が高速化されます。
すべてのオプションについては、manページ(man exports)またはここで確認できます。
以下のコマンドを使用して、共有ディレクトリをエクスポートします。
exportfs -ra
以下のコマンドを使用して、エクスポートされた共有を確認します。
showmount -e 127.0.0.1
コマンドshowmount-e ローカルマシン(NFSサーバー)で使用可能な共有を一覧表示します。アウト
出力:
Export list for 127.0.0.1: /nfsshare 192.168.1.20
NFSクライアントの構成
リモートファイルシステムをマウントするには、クライアントマシンにnfs-commonパッケージをインストールする必要があります。
実行していることを確認してください rootユーザーとしてのコマンド。
apt-get -y install nfs-common
クライアントにNFS共有をマウントする
NFS共有をマウントする前に、クライアントマシンでshowmountコマンドを実行して、サーバーからのNFS共有が表示されているかどうかを確認します。
showmount -e 192.168.1.10
出力:
Export list for 192.168.1.10: /nfsshare 192.168.1.20
コマンドに従って、 / nfshareは192.168.1.10(サーバー)で192.168.1.20(クライアント)で使用できます。 。
showmount-e
ディレクトリを作成する/share クライアントマシンで共有ディレクトリをマウントします。
mkdir /mnt/share
マウントコマンドを使用して、クライアントマシンの/ mnt / shareにあるNFSサーバー(192.168.1.10)から共有ディレクトリ/nfsshareをマウントします 。
mount 192.168.1.10:/nfsshare /mnt/share
マウントを使用して、クライアントマシンにマウントされた共有を確認します コマンド。
mount | grep nfs
出力:
dfコマンドを使用して、マウントされたNFS共有を確認することもできます。
df -hT
出力:
マウントされたディレクトリにファイルを作成して、読み取りおよび書き込み権限のNFS共有を確認します。
touch /mnt/share/test
上記のコマンドでエラーが返されない場合は、NFS共有を永続的にマウントできます。
NFS共有の自動マウント
再起動のたびにNFS共有を自動的にマウントするには、 / etc / fstabを編集する必要があります クライアントシステム上のファイル。
vi /etc/fstab
ファイルの最後に以下の行を追加します。
192.168.1.10:/nfsshare/ /mnt/share nfs rw,sync,hard,intr 0 0
ファイルを保存して閉じます。
クライアントマシンを再起動し、NFS共有が自動的にマウントされるかどうかを確認します。
reboot
mountコマンドを使用して、クライアントサーバーにマウントされた共有を確認します。
mount | grep nfs
クライアントマシンから共有ディレクトリをアンマウントするには、umountコマンドを使用してアンマウントします。
umount /mnt/share
Debian/UbuntuでAutoFSを設定できます ユーザーがアクセスしたときにのみNFS共有をマウントします。
それで全部です。 Debian 9でNFSサーバーを正常にセットアップしました / Ubuntu 16.04 。