Google Code Prettify

2007年11月21日

LinuxのNFSv4とNFSv3でエクスポートポイントを共通化

全てサーバが隈無くNFSv4で統一できたら悩むことはないのだが、NFSv3までしかサポートしないサーバとかがまだ多くある。

Linux NFSv4 で1つ混乱する振る舞いがある。過渡的な状況かもしれないが、どうなるだろかなぁ。

Linux NFSv4では、クライアントから見えるNFSv4の疑似ファイルシステムが fsid=0 を指定した特定のエクスポートポイントをルートとしたディレクトリのツリーになっている。結果、サーバ側の/etc/exports で記述されるディレクトリと実際にクライアントが見るディレクトリが異なることになる。

かつ、fsid=0が指定されたディレクトリのツリー内のエクスポートポイントはNFSv4でのみ、それ以外はNFSv3でのみで利用が可能になっているらしい。。。へたれ実装と言われかねないなぁ。

実際、Solaris 10では、疑似ファイルシステムのルートは実際のルートだし、NFSv3/NFSv4は共有設定ファイルでは区別は無いし、、、そうあるべくある感じだし。。。まぁいいかぁ。

automount を使う場合、NFSv3とNFSv4が同じエクスポートポイントに見えるようにしなければ混乱の元になる。 Linuxには seamless という単語が無いのかぁ、、、。

サンプル

/export/home をNFSv3/NFSv4の両方で同じエクスポートポイントで共有する場合

NFSv4の疑似ファイルシステムを作成

/etc/fstab

...
# for nfs4
/export/home    /srv/nfs4/export/home   none    bind
...

シェルで

# mkdir -p /srv/nfs4/export/home
# mount /srv/nfs4/export/home
exports を書く

/etc/exports

# for NFS3 Clients

/export/home \
    *(rw,sync,insecure,no_subtree_check) \
    gss/krb5(rw,sync,insecure,no_subtree_check) \
    gss/krb5i(rw,sync,insecure,no_subtree_check) \
    gss/krb5p(rw,sync,insecure,no_subtree_check) \

# for NFS4 Clients
/srv/nfs4   \
    gss/krb5(rw,sync,fsid=0,crossmnt,insecure,no_subtree_check) \
    gss/krb5i(rw,sync,fsid=0,crossmnt,insecure,no_subtree_check) \
    gss/krb5p(rw,sync,fsid=0,crossmnt,insecure,no_subtree_check)


/srv/nfs4/export/home   \
    gss/krb5(rw,sync,fsid=1,insecure,no_subtree_check) \
    gss/krb5i(rw,sync,fsid=1,insecure,no_subtree_check) \
    gss/krb5p(rw,sync,fsid=1,insecure,no_subtree_check)

で、nfsサービス群を再起動。Kerberozied NFS の設定もしとく。

テスト
# mount -t nfs -osec=krb5i server:/export/home /mnt
# mount -t nfs4 -osec=krb5i server:/export/home /mnt2
# mount
server:/export/home on /mnt type nfs (rw,sec=krb5i,addr=XX.XX.XX.XX)
server:/export/home on /mnt2 type nfs4 (rw,sec=krb5i,addr=XX.XX.XX.XX)

めでたく、同じエクスポートポイントが見えました。。。Linux NFSv4 めぇ!

追記

Open Directory の設定のまとめ 2008Q1

0 件のコメント:

久しぶりの投稿

かなり期間が空いてしまったが、ブログを再開してみようと思う。 2013年3月が直前の投稿だったが、頻繁に更新していた時期が 2011年11月までなので、8年間ぶりとなる。 8年間なにをしていたのかと言えば、2回転職して未だにIT技術者の職を得ている。 その...