ファイルサーバを FreeBSD10 + Samba4 にしてからというもの、Mac からマウントしてもしばらくすると勝手に切断される、というトラブルにずっと悩まされています。
〜が使用中なため、操作は完了できません っていうエラーも多し。
ルータも FreeBSD を入れているマシンも、FreeBSD のバージョンも (9→10)、Samba のバージョンも (3→4)、まとめて変えてしまったので、原因の切り分けが面倒で困ったなと。。。
ググってもあまり情報もないし。
Windows からは問題ないので、やはり SMB2 での Apple の独自実装が問題ぽい。
しばらく放置していたんですが、先程なんとなく Samba4.2 について調べていたら、Apple 製品との互換性が向上しているとのこと。
これか?と思って pkg でインストールしてみました。4.2.2 です。
ところが、
Performing sanity check on Samba configuration: FAILED
が出て起動できませんでした。
# /usr/local/bin/samba-tool testparm --suppress-prompt --verbose --configfile=/usr/local/etc/smb4.conf
して、
Traceback (most recent call last): File "/usr/local/bin/samba-tool", line 33, in <module> from samba.netcmd.main import cmd_sambatool File "/usr/local/lib/python2.7/site-packages/samba/__init__.py", line 50, in <module> from samba._ldb import Ldb as _Ldb ImportError: /usr/local/lib/libtdb.so.1: version TDB_1.3.0 required by /usr/local/lib/samba/libtdb-wrap-samba4.so not found
と出たのを見ると tdb 1.3.0 が必要なようですが、一緒に入らなかったので、ついでに tdb も更新しています。
また、設定ファイル (smb4.conf)に
/usr/local/bin/samba-tool testparm --suppress-prompt --verbose --configfile=/usr/local/etc/smb4.confvfs objects = catia fruit streams_xattr
を追記しています。
しばらく様子見して追記します。
[8/1 追記]
改善したように見えない上に、smbd がバカみたいに CPU と メモリを食うようになったので、fruit は読み込まないようにしました。
起動ディスクの USB メモリが逝って普通にハードディスクにしたり、ついでに ZFS プールを圧縮/非圧縮2つのファイルシステムに分けていたのをプール直下・非圧縮に統合したりした結果、少しましになりましたが。
最近満足にバックアップしておらず緊急事態だったので1つ1つ比較する余裕がありませんでした。
サーバの CPU が非力なのも影響しているとは思う。
[8/16 追記]
接続断の直接の原因はやはり過負荷っぽい。
ついでに ZFS プールを圧縮/非圧縮2つのファイルシステムに分けていたのをプール直下・非圧縮に統合したりした結果、少しましになりましたが。
これにより現在は比較的安定しています。都合により pool が変な構成になっているのも一員か?
次はもう少し性能の良いマシンで普通の raidz2 pool を組もう。
[8/16 追記2]
Samba 4.2.3 では、fruit を有効にしても大丈夫そうです。
# pkg upgrade samba42