NFSを実現するサービス
サービス名 | サーバー | クライアント | 説明 |
---|---|---|---|
portmap | ○ | ○ | RPCプログラム番号をTCP/IPポート番号に変換 |
nfsd | ○ | ファイルシステムのエクスポートとクライアント要求の処理 | |
mountd | ○ | リモートファイルシステムのマウントおよびアンマウント |
rpc
/etc/rpc
portmapper 100000 portmap sunrpc rpcbind
rstatd 100001 rstat rup perfmeter rstat_svc
rusersd 100002 rusers
nfs 100003 nfsprog
ypserv 100004 ypprog
mountd 100005 mount showmount
- TCP/UDPポート番号は動的に割りあてられます
- つまり、RPCクライアントが利用するには、まずポート番号を知ることが必要です
- portmapはRPCクライアントから問い合わせがあると、対応するサービスのポート番号を返します
- RPCを利用してサービスを提供するプログラムは、起動時に自分の情報をportmapに登録します
- RPCサービスの接続状況は、rpcinfo で確認できます
rpcinfo -p
program vers proto port service
100000 4 tcp 111 portmapper
100000 3 tcp 111 portmapper
100000 2 tcp 111 portmapper
100000 4 udp 111 portmapper
100000 3 udp 111 portmapper
100000 2 udp 111 portmapper
NFSサーバーの設定
サービスを開始するには次の通りです。
systemctl start rpcbind
systemctl start nfs-server
systemctl start nfs-lock
NFSサーバー側で特定のディレクトリを公開することを、エクスポートと言います。
エクスポートするディレクトリは、/etc/exports に記述します。
/etc/exports
/share 192.168.1.0/255.2255.255.0(rw)
/pub *.example.com(ro)
/etc/exportsのオプション | 説明 |
---|---|
ro | 読み取り専用 |
rw | 読み書き |
no_root_squash | rootでのアクセス時にroot権限で実行 |
root_squash | rootでのアクセス時に匿名アカウント権限で実行 |
all_squash | 全てのアクセスを匿名アカウント権限で実行 |
fsid | 「0」で疑似ルートにする |
nohide | クライアント側で非表示にしないようにする |
エクスポート状況を表示したり、/etc/exports の変更を反映させるには、exports を使います。
exportsのオプション | 説明 |
---|---|
-a | 全てのディレクトリをエクスポート/アンエクスポート |
-r | 全てのディレクトリを再エクスポート |
-u | アンエクスポート |
-v | 詳細表示 |
エクスポートしているディレクトリを調べるには、showmount を使う。
showmountのオプション | 説明 |
---|---|
-a | クライアントのホスト名とマウントしているディレクトリを表示 |
-e | 指定したホストでエクスポートしているディレクトリを表示 |
NFSの統計情報を調べるには、nfsstat を使う。
nfsstatのオプション | 説明 |
---|---|
-s | NFSサーバー側の統計のみ表示 |
-c | NFSクライアント側の統計のみ表示 |
-n | NFSの統計のみ表示 |
-r | RFCの統計のみ表示 |
-o net | ネットワーク層の統計を表示 |
NFSクライアントの設定
- NFSを使って、リモートファイルシステムをマウントするには、mount を使う
- ファイルタイプシステムには、nfs を指定します
- ローカルファイルシステムには、マウントポイントとなるディレクトリを用意しておきます
mount -t nfs linux:/pib /mnt/nfs
NFS特有のマウントオプション | 説明 |
---|---|
bg | マウントに失敗してもバックグラウンドで試行 |
fg | フォアグラウンドで実行 |
soft | ソフトマウント |
hard | ハードマウント |
intr | ハートマウント時の割り込みを許可 |
retrans | ソフトマウントの場合の再試行回数 |
nolock | ファイルのロックを行わない |
rsize= | 読み取りのブロックサイズ |
wsize= | 書き込みのブロックサイズ |
/etc/fstab に記述しておくと、システムの起動時に、リモートファイルシステムを自動的にマウントできます。
linux:/pib /mnt/nfs nfs defaults 0 0
リンク
AWSには、EFSがあるので不要かと思われるが、↓の記事が上手く纏められていた。
EC2上にNFSサーバ/クライアント構築する
✳️NFSv4以降の手順なので、portmap、rpcbind、nfslockは不要