FreeBSDとLinuxでNFS

| コメント(0) | トラックバック(0)

FreeBSD と Linux の NFS は鬼門とか言われるらしいんですが、つながざるを得ない場合もあるんですよ。しかもこんな環境

NFS-CIFS.png

Linux ベースのアプライアンスで、データ領域を必要とするような場合ですね。うちでは foltia なんですけどね。

用件別にまとめると、

  • NFS サーバ: FreeBSD / NFS クライアント:Linux
  • CIFS サーバ:Linux / CIFS クライアント:Windows

って、わざわざ書かなくても、CIFS クライアントは Windows で当たり前なんですが。

で、まぁ厄介なのが NFS まわりの話。

FreeBSD 同士の NFS であれば、NFS サーバで

nfs_server_enable="YES"
mountd_enable="YES"

これだけ設定すりゃ、NFS マウントできるわけです。なんとなれば、mountd_enable さえなくても大丈夫。

ところが、NFS クライアントが Linux になると、

nfs_server_enable="YES"
nfsuserd_enable="YES"
rpcbind_enable="YES"
mountd_enable="YES"

これだけ設定しないと、マウントが失敗するわけです。RPC周りの動作が異なるらしく、RPC関連のサーバをちゃんと動くようにしないといけないらしい。あと、Daemon 動かすだけじゃなく、通信を許可する設定も。

/etc/hosts.allow

rpcbind : A.B.C.0/255.255.255.0 : allow

あとは、NFSv4 を有効にするとダメで、NFSv3 にすることが必須

とまぁ、NFS サーバとなる FreeBSD でこれだけ設定すれば、Linux から NFS マウントはできるようになるんです。


ところが、この Linux サーバ上で Samba を動かして、NFS マウントした領域を CIFS でアクセスしようとすると、これがまたコケる。

どうすりゃいいか、さらに FreeBSD の設定を追加します。

nfs_reserved_port_only="YES"
rpc_lockd_enable="YES"
rpc_statd_enable="YES"

これで CIFS からアクセスが可能にはなるんです。が、ファイルアクセスがすごく遅い。スループットが出ないという意味ではなく、ファイルコピーなどの操作を行っても「コピーの準備をしています」で数分待たされて、ようやくコピーが始まるわけです。

おそらくは CIFS アクセスで必須なロック関連がタイムアウトするのを待っちゃうんじゃないかなぁと。キャプって調べてみたところ、NFS クライアントから NFS サーバに対して UDP 111  (SunRPC) 通信をしようとしてるんだけど、これが遮断されてました。

遮断してるのは、Linux の iptables。そりゃまぁ、RPC なんて古代のプロトコル、怖いからって止めますわな・・・・

とはいえ、何とかしないと使い物にならないわけで、しかもLAN内のサーバなんだし・・・・

chkconfig iptables off

トラックバック(0)

トラックバックURL: http://horliy.seri.gr.jp/MTcgi/mt-tb.cgi/83

コメントする

このブログ記事について

このページは、ほーりーが2017年4月29日 19:38に書いたブログ記事です。

ひとつ前のブログ記事は「Thinkpad8のイヤホンジャック」です。

次のブログ記事は「DELL PowerVault TL4000」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。