FreeBSDでnfsをマウントするときのマウントオプションについて

1. FreeBSDとNFS

FreeBSDでNFSを利用している。サーバはFreeNAS 0.7.2 (NFSv3)、クライアントもFreeBSD (versionは7.3以降)。

このとき、どんなオプションでマウントするのが良いのかなと思って調べてみた。

歴史的経緯というか実装系が違うからだろうか、詳しい理由はわからないんだけれど、LinuxとFreeBSDはnfsのマウントオプションが違かったりする。

Linuxだとnfs周りのマウントコマンドはドットで区切られた実行ファイル名、mount.nfsとかだったりするけれど、freebsdだとmount_nfsとかっていうアンダースコアで区切られた実行ファイル名だったりする。

そんでmount –t nfsってのはmount_nfsを参照してる?のかな。

man mount_nfsするとオプションの一覧とか出てくるんだけれど、ここにあるマウントオプションでどれを使えば良いかよくわからない。いつもテキトウに使ってる。そんでどれ使えば良いか、何となくのメモ。

2. ググってみたお

FreeBSDのマウントオプションでオススメのがないか調べてみた。

nfsserverip:mymount     /mountdir  nfs rw,tcp,intr,noatime,nfsv3,-w=32768,-r=32768 0 0
fstab NFS mount option recommendations
オプションは “rw,tcp,intr,noatime,nfsv3,-w=32768,-r=32768”らしい。
rw 読み書き許可
tcp tcpを利用
intr hard(デフォルト) + intrで “落ちたサーバにアクセスしに行ったクライアントプログラムは固まります。が、シグナルを送ればクライアントはファイルアクセスをエラーとして処理します。”
NFSのオプションで、hard, soft, intrというのがありますが、そ.. – 人力検索はてな
noatime ファイルにアクセスしたとき、ファイルに最終アクセス日時を記録するんだけれど、それを無効化。早くなる・・・はず。
nfsv3 nfsのバージョン3を利用
-w=32768, -r=32768 書き込み、読み込みの最大転送サイズ。solarisだとデフォルトでこの値。

 

3. このオプションの効果

上のオプションで試した人がFreeBSDフォーラムにいたぽい。

I did some benchmarks today of reading and writing to a 1 gig file with various rsize and wsize options in my FreeBSD guest.
As was to be expected, results were sort of all over the map since in a VM environment there are many variables and things competing for resources simultaneously.
However, as a general ballpark, I actually found entering no rsize and wsize options produced the best results. There may have been a wsize that was slightly faster, but it was in the ballpark of using the server defaults, and using the server defaults clearly resulted in faster reads.
So, I’m going to stick with the server defaults…

fstab NFS mount option recommendations – The FreeBSD Forums

で、この人曰く、1GBのファイルの転送をrsize、wsizeを変えてやってみたらしいんだけど特に早くならなかったらしい。だからデフォルトに戻そうかと。残念。

次いで自分でも過去にnoatimeとか試してみてた。

うーん、変わらず、noatimeってあまり効果が出ないのか・・・。

nfsのアクセスが遅そうなので調べてみた | L2TP

結局意味ないのかな、と思いながらも、先述のオプション”rw,tcp,intr,noatime,nfsv3,-w=32768,-r=32768”でいこうと決めてみた。

4. deprecated

早速上記オプションで試してみた

mount -a

-w deprecated, use -o wsize=<value>
-r deprecated, use -o rsize=<rsize>


上記の警告はFreeBSD 8.2で出てきた。どうやらオプションの項目名が変わったらしい。

ということで下記の通りオプションを使った。

rw,tcp,intr,noatime,nfsv3,wsize=32768,rsize=32768

ちなみに FreeBSD 7.3だと逆に上記のオプションだとダメぽ。

shell> mount -a
mount_nfs: -o wsize=: option not supported

7.x以下は-wと-rを使うことにする。

コメントを残す