NFSバージョンの違い
NFSv2
- 昔のバージョン。最近のNFSDではデフォルトで無効にされている
NFSv3
- 完全な非同期書き込みに対応
- エラー処理機能強化
- 64ビットのファイルサイズ対応 (2GBを超えるファイルを扱える)
NFSv4
- インターネット上で動作可能
- rpcbindが不要となった
- ACLに対応
サーバーが対応するバージョンを確認するには
rpcinfoコマンドに p オプションを付けて実行する
# 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
100024 1 udp 39325 status
100024 1 tcp 39688 status
100011 1 udp 703 rquotad
100011 2 udp 703 rquotad
100011 1 tcp 706 rquotad
100011 2 tcp 706 rquotad
100003 2 tcp 2049 nfs
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
100003 2 udp 2049 nfs
100003 3 udp 2049 nfs
100003 4 udp 2049 nfs
100021 1 udp 41793 nlockmgr
100021 3 udp 41793 nlockmgr
100021 4 udp 41793 nlockmgr
100021 1 tcp 38927 nlockmgr
100021 3 tcp 38927 nlockmgr
100021 4 tcp 38927 nlockmgr
100005 1 udp 35020 mountd
100005 1 tcp 38999 mountd
100005 2 udp 47400 mountd
100005 2 tcp 33395 mountd
100005 3 udp 51781 mountd
100005 3 tcp 48243 mountd
上の場合 nfs サービスの vers に 2、3、4 があるので、NFSv2、NFSv3、NFSv4 がサポートされる
NFSサーバーでNFSv2をサポートするには
デフォルトではバージョン3と4しかサポートされない。バージョン2でマウントできるようにするには rpc.nfsd の -V オプションで2を指定する
# /usr/sbin/rpc.nfsd -V 2
※ RedHat7ではNFSv2をサポートしていないようで、他のディストリビューションでも最近ではもしかしたらサポートされなくなっているかもしれない
NFSバージョンを指定してマウントする
マウントオプションに"nfsvers"を指定する
# mount -t nfs -v -o nfsvers=2 192.168.56.64:/srv/share /mnt
RedHat6の情報を元にしている
https://access.redhat.com/documentation/ja-JP/Red_Hat_Enterprise_Linux/6/html/Storage_Administration_Guide/s1-nfs-client-config-options.html
環境によっては nfsvers に4が指定出来ない場合がある。その時はnfsversを指定せずに '-t nfs' の代わりに '-t nfs4' を指定すればよい
マウントポイントからNFSバージョンを確認するには
クライアントからどのバージョンでマウントしているのかを確認するには nfsstat コマンドを使う
# nfsstat -m
/mnt/floppy from 192.168.56.64:/srv/share
Flags: rw,relatime,vers=3,rsize=65536,wsize=65536,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=192.168.56.64,mountvers=3,mountport=41602,mountproto=udp,local_lock=none,addr=192.168.56.64
Flagsの値の中から、vers=をみる
補足
いつの間にかportmapが無くなった
今後は portmap の代わりに rpcbind が使われるようになる。portmapがインストールされていたら削除する