Contents
サーバ設定
設定ファイルは次のパスにある。
/etc/exports
コメントは行頭に#を書く。
共有設定
- 書式
<パス> <公開範囲>([オプション])
- パス
共有したいディレクトリのパスを記述する
- 公開範囲
ディレクトリにアクセスを許可するホスト、ネットワークアドレスを記述する。
ホスト名、IPアドレス、ネットワークアドレス(X.X.X.X/X)を記述することができる。
オプション
sync
ファイルの更新を行った場合、更新が完了するまでは当該ファイルの次のアクセスをブロックする。
デフォルトで有効
async
ファイルの更新を行った場合、更新が完了していなくても当該ファイルへのアクセスを許可する。
wdelay
NFSサーバが次回書き込みがすぐに行われると予測した場合、現在の書き込みを遅延させて次回書き込みとまとめて行おうとする。
これによりディスクアクセス負荷を抑えることができる。
syncオプションが有効な場合のみ使用可能である。
no_wdelay
wdelayオプションによる書き込み遅延を行わない。
root_squash
クライアントがrootユーザでアクセスする際、代わりにnfsnobodyユーザでアクセスさせる。
no_root_squash
クライアントがrootユーザでアクセスする際、root権限のままアクセスさせる。
all_squash
クライアントがNFSサーバにアクセスする際、全てのユーザを特定のユーザ権限でアクセスさせる
これはrootユーザも含まれる
どのユーザに割り当てるかはanonuidオプションで指定する。
どのグループに割り当てるかはanongidオプションで指定する。
anonuid
root_squash、all_squashオプションで使用するユーザ(uid)を指定する。
anongid
root_squash、all_squashオプションで使用するグループ(gid)を指定する。
subtree_check
ファイルアクセス時に共有しているディレクトリの親ディレクトリがアクセス可能状態かの権限等のチェックを行う。
このため、セキュリティ強度は上がるが、負荷が高まり、さらにリモートからファイルにアクセス中にそのファイル名がローカルで変更されてしまうと影響を受ける可能性がある。
no_subtree_check
共有しているディレクトリが、そのディレクトリが属するファイルシステム全体ではなく一部であるときに使用する。
このオプションによってリモートからファイルにアクセス中にそのファイル名がローカルで変更されてしまっても影響を受けない。
一方ファイルアクセス時に共有しているディレクトリの親ディレクトリがアクセス可能状態かの権限等のチェックを省略するため、セキュリティレベルは下がる。
クライアント設定
パッケージインストール
NFSサーバをマウントするにはnfs-utilsが必要である。
yum install nfs-utils -y
マウント設定
fstab
autofs
NFSサーバに頻繁にアクセスしないならautofsでマウントするとよい。
fstabの場合、常にマウントし続け、リソースを消費するが、autofsの場合、一定時間使用しないと自動でアンマウントし、再度アクセス時に再度マウントするため、リソース消費を抑えられる。
sed "s/^\/misc/#\/misc/g" -i /etc/auto.master sed "s/^\/net/#\/net/g" -i /etc/auto.master echo "/- /etc/auto.nfs" >> /etc/auto.master echo "<マウントポイント> -fstype=nfs,proto=tcp,hard,timeo=300,intr,rw,rsize=32768,wsize=32768 <NFSサーバ>:<マウントパス>" > /etc/auto.nfs systemctl enable autofs systemctl restart autofs systemctl status autofs
マウントに成功すると次のコマンドで状態が表示される
df -h
ツール
showmount
NFSサーバのディレクトリをマウントしているNFSクライアントを出力する
exportfs
NFSサーバで現在エクスポートしているディレクトリと公開範囲を出力する
rpcinfo
NFSサーバの稼働中のデーモンを確認する。疎通確認としても使用できる。
- 全てのデーモンを確認する
rpcinfo -p <ホスト名>
実行例プログラム バージョン プロトコル ポート
100000 2 tcp 111 portmapper
100000 2 udp 111 portmapper
100024 1 udp 856 status
100024 1 tcp 859 status
100011 1 udp 738 rquotad
100011 2 udp 738 rquotad
100011 1 tcp 741 rquotad
100011 2 tcp 741 rquotad
100003 2 udp 2049 nfs
100003 3 udp 2049 nfs
100003 4 udp 2049 nfs
100021 1 udp 52180 nlockmgr
100021 3 udp 52180 nlockmgr
100021 4 udp 52180 nlockmgr
100003 2 tcp 2049 nfs
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
100021 1 tcp 43726 nlockmgr
100021 3 tcp 43726 nlockmgr
100021 4 tcp 43726 nlockmgr
100005 1 udp 752 mountd
100005 1 tcp 755 mountd
100005 2 udp 752 mountd
100005 2 tcp 755 mountd
100005 3 udp 752 mountd
100005 3 tcp 755 mountd - TCPのNFSデーモンのみ確認する
rpcinfo -t <ホスト名> nfs