先般、 NAS4Free v9.3 系へアップグレードしたとき、 NFS の設定が原因で安定しなかった反省から、 Samba と NFS の設定を見直してみることにしました。

 一度、設定が安定してしまうと、オペレーティングシステムを入れ替えても、 Samba などの設定はそのまま引き継ぎ、 使い続けている傾向にあるので、いい機会だと腰を落ち着けてやってみました。

 いろいろ試行錯誤はあったのですが、その過程はすっ飛ばして、 まず NFS の設定から。
 うちでは Samba を動かしている CentOS から NAS4Free で管理しているストレージに NFS でマウントをかけています。
 /etc/fstab に記載して起動時にマウントがかかるようにしてあり、 今回の見直しによって以下のようになりました。
192.168.0.1:/mnt/mnt_zfs/Lib /mnt/mnt_nfs nfs rw,noatime,tcp,intr 0 0
 ずいぶんすっきりしました。
 読み込み・書き込み時のバッファサイズの指定がなくなったこともそうですが、 ファイルロックの無効化 (nolock) も外しました。
 これはあとで書きますが、 Samba のオプション指定を増やして、 Windows 端末からのファイル書き込み時のエラーを回避できるようになったからです。

 次にその Samba の設定ですが、 CentOS 7 になってから Samba のバージョンが 4.1 系になっており、 SMB2 が明示的に指定しなくても最初から有効になっていることを知りました。
 つまり Samba 4.1 系なら、 Mac 0S X 10.9 Mavericks 以降、 Mac でもファイル共有のための最優先プロトコルとされた SMB2 を、 何も指定しなくてもしゃべってくれます。
 よって max protcol オプションをわざわざ記載しなくてもよくなりました。

 逆にうちでは SMB2 をしゃべることができない端末はなくなったので、 min protcol オプションというのがあって、試しにこれを設定してみたのですが、 Samba (CentOS 7) サーバーが ネットワークコンピューターに表示されなくなってしまったのでやめました。
 Samba 4.1 からは プロトコル関係のオプションは設定しない方がすっきりするようです。

 また NFS でマウントした領域を Samba で共有すると Windows 端末の書き込みでエラーになるために、 これまで kernel oplocks オプションでわざわざ無効にしていましたが、 いろいろ調べる内に oplocks/level2 oplocks オプションを無効にするという方法を見つけて、 実際、設定してみると NFS の nolock オプションはなくても問題なく Windows 端末から書き込みができ、 また kernel oplocks の初期値は no と言うことを知るにいたって、 うちの環境に依存した部分を除くと、最終的に global セクションに特別な設定は以下のようなものだけが残りました。
[global]
:(略)
  oplocks = No
  level2 oplocks = No
:(略)
 以上のように見直して、まだ約三日目ですが今のところ快調です (^^)b
 問題が起きたらまた報告します (_ _;A

 最後に格言、「わからないんだったらデフォルト(初期値)が一番!」
 あしからず m(_ _)m
Sambaのすべて
高橋 基信 著
( 翔泳社 )
¥575
Ellinikonblue.com Weblog
「 NAS4Free v9.3.0.2.1213 が安定したという話」
「 NFS でマウントした領域を Samba(CIFS) で公開してはいけないらしい」
「 Samba の SMB2 有効化で Mac OS X 10.9 Mavericks のファイル共有高速化!」