NFS(Network File System)は、Linux/Unix でサポートされているファイルシステムの一種であり、TCP/IP ネットワークを介してコンピュータ間でリソースを共有することができます。NFS のアプリケーションでは、ローカルの NFS クライアントアプリケーションは、リモートの NFS サーバー上のファイルに透過的に読み書きすることができ、まるでローカルファイルにアクセスしているかのようです。
テスト環境 CentOS7.3
NFS サーバーの設定 1. nfs-utils と rpcbind のインストール
# yum update
yum -y update
nfs のインストール#
yum -y install nfs-utils rpcbind
- NFS 関連サービス rpcbind、nfs-server、nfs-lock、nfs-idmap の有効化と起動。rpcbind を先に起動する必要があることに注意してください。
サービスの有効化#
systemctl enable rpcbind
systemctl enable nfs-server
systemctl enable nfs-lock
systemctl enable nfs-idmap
nfs サービスの起動#
systemctl start rpcbind
systemctl start nfs-server
systemctl start nfs-lock
systemctl start nfs-idmap
- 共有するディレクトリの作成
# 共有フォルダの設定
mkdir /application/share
chmod -R 777 /application/share
#chown nfsnobody /application/share
- 共有するディレクトリを /etc/exports に設定します。XXX.XXX.XXX.XXX は共有する対象の IP アドレスです。
# 設定を書き込む
echo "/application/share XXX.XXX.XXX.XXX(rw,sync,no_root_squash,no_all_squash)" >> /etc/exports
exports の再読み込み#
exportfs -a
サーバー側の設定は、/etc/exports ファイルで行われます。設定の形式は以下のようになります:共有したいディレクトリ ホスト名 1 または IP1 (パラメータ 1, パラメータ 2) ホスト名 2 または IP2 (パラメータ 3, パラメータ 4) 上記の形式は、同じディレクトリを 2 つの異なるホストに共有していますが、これらのホストに提供される権限とパラメータは異なりますので、それぞれのホストに対して別々の権限を設定しています。設定できるパラメータは以下のようなものがあります: rw: 読み書き可能な権限;ro: 読み取り専用の権限;no_root_squashホストにログインするユーザーが ROOT ユーザーの場合、ROOT 権限を持つことができますが、このパラメータは非常に安全ではないため、使用しないことをお勧めします。 root_squashホストにログインする目的で使用するユーザーが nobody としてログインします。 all_squash: ログインする NFS ホストのユーザーが何であっても、nobody に再設定されます。 anonuid: ログインする NFS ホストのユーザーを指定したユーザー ID に設定します。この ID は /etc/passwd に存在する必要があります。 anongidと同様ですが、グループ ID に設定します。 sync: データを同期してストレージに書き込みます。 async: データは一時的にメモリに保存され、直接ディスクに書き込まれません。 insecure: このマシンからの非認証アクセスを許可します。
- 共有ディレクトリが正しく設定されているかを確認します。
# 共有が機能しているかを確認
showmount -e
6. ファイアウォールの設定を調整します。
# ファイアウォールの設定
firewall-cmd --permanent --zone=public --add-service=nfs
firewall-cmd --permanent --zone=public --add-service=mountd
firewall-cmd --permanent --zone=public --add-service=rpc-bind
firewall-cmd --reload
NFS クライアントの設定 1. nfs-utils のインストール
# アップデート
yum -y update
nfs のインストール#
yum -y install nfs-utils
- 共有ディレクトリが正しく設定されているかを確認します。XXX.XXX.XXX.XXX は共有サーバーのアドレスです。
# 共有が機能しているかを確認
showmount -e XXX.XXX.XXX.XXX
- リモートサーバーの NFS パーティションをローカルマウントポイントにマウントします。
# マウントポイントの作成
mkdir /application/share
nfs のマウント#
mount -t nfs XXX.XXX.XXX.XXX:/application/share /application/share
#mount -vvv -t nfs XXX.XXX.XXX.XXX:/application/share /application/share -o ver=3
#unmount /application/share
- NFS パーティションをローカルの fstab ファイルシステムに書き込みます。
# fstab の設定、再起動が必要です
echo "XXX.XXX.XXX.XXX:/application/share /application/share nfs rw,sync,hard,intr 0 0" >> /etc/fstab
参考 https://www.howtoforge.com/nfs-server-and-client-on-centos-7 http://blog.chinaunix.net/uid-26557245-id-3428672.html