長南です。
奥井さんのメールより [vine-users:078391]
>
> バージョン違いのせいですか、なにか指定すればNFSv4 を使えるように
> なるんでしょうか、それとも追加でインストールが必要?
Vine 4.2 でも、カーネルは NFSv4 に対応していますし、ツール類も
一通り揃っています。ですから、クライアントから
mount -t nfs4 server:/path /mnt
とやるだけですむだろうと思っていたのですが、実際にはそれほど
簡単ではありませんでした。
以下の記述は Vine 4.0 を 4.2 にバージョンアップしたものでやった
ことなので、4.2 をクリーンインストールした場合とは、事情が少し
違うかもしれません。
1) まず /etc/idmapd.conf を作る必要があった。
man idmapd.conf の EXAMPLES を参考にしました。Domain に何を
指定するべきかはよくわかりません。適当にやっておきました。
rpc.idmapd の設定ファイルですから、サーバ、クライアント両方に
必要なんじゃないかと思います。
2) ディレクトリ /var/lib/nfs/rpc_pipefs を作る必要があった。
ユーザ、グループは root:root、パーミッションは 755 でよさそう。
/var/lib/nfs/rpc_pipefs を作ったら、リブートすること。
/sbin/rpc.idmapd を実行したら、/var/log/mesages に
「May 5 18:21:21 localhost rpc.idmapd[3026]: main: open(/var/lib
/nfs/rpc_pipefs/nfs): No such file or directory」というエラーが
出たので、あるべきものがないことに気がつきました
このディレクトリは rpc_pipefs 疑似ファイルシステムのマウントポイント
ですが、この疑似ファイルシステムがマウントされるのは、sunrpc
モジュールがロードされるときなのです。そこで、ディレクトリを
作ったら、すぐリブートするのが一番手っ取り早そうだというわけ。
3) /etc/exports の書き方、mount の仕方が、NFSv3 までとはちょっと違う。
たとえば、こんなふうに書いておき(fsid=0 がミソ)、
/var/nfs4 192.168.0.0/24(rw,sync,fsid=0,crossmnt)
/var/nfs4/music 192.168.0.0/24(rw,sync)
クライアントからは、こんなふうにマウントする。
mount -t nfs4 server:/ /mnt あるいは、
mount -t nfs4 server:/music /mnt
※ NFSv3 までのように server:/var/nfs4(/music) でないことに注意。
※ man exports によると、「NFSv4 にはエクスポートされるファイル
システム全体のルートという概念がある。fsid=0 でエクスポート
されたエクスポートポイントは、このルートとして使用される」
4) rpc.idmapd をサーバ側、クライアント側、両方で起動する。
5) 実際にクライアントからマウント。
だいたいこんなところで、曲がりなりにも NFSv4 でのマウントができました。
まだ、場合によっては、Warning が出たり、「mount: 許可がありません」に
なったりしますけれど。
# ついでに。
# iptables において Chain の Policy を ACCEPT にするか DROP にするかは、
# 流儀みたいなものらしいので(柳生流と一刀流とか)、好きな方を選べば
# よいと思います。どちらにもそれなりの言い分があるんでしょうけれど。
--
長南洋一