仮想化通信

日本仮想化技術株式会社の公式エンジニアブログ

Samba 3.6.0のSMB2ではまる

Samba 3.6.0が8月9日にリリース[1]されました。 リリースノート[2]をみると、今回のバージョンは初めてSMB2をフルサポートしたバージョンで、早速使ってみた人の話によると、「ファイルのアップロードのパフォーマンスがかなり上がって感動もの」とのこと。
「これは使ってみるしかない」と思い立ち、新しい物大好きな私は早速テストサーバーを立てて試してみることにしました。なお、テストサーバーはUbuntu Server 11.04のKVM環境上で動かしました。実機やXen環境上で同じテストを行うともう少し良い結果が出るかもしれません。
現在、Samba 3.6.0を通常の方法で利用できるディストリビューションはないため、外部リポジトリwingリポジトリ[3]を使って、CentOS 5.6にSamba 3.6.0をインストールすることにしました。

wingリポジトリの設定をして、いざSambaのインストールだ!と思いきや、早速つまずきました。
wingリポジトリsambaのインストール時、依存関係でいくつかのパッケージを更新するらしく、yum-prioritiesパッケージを導入してwingリポジトリのpriorityを低く設定してしまうとインストールできないようです。いつもの癖でpriorityを設定したらこんな罠が待っていたとは(^^;
wingのpriorityをとりあえず1に設定していざインストール開始! ...っとその前に、samba関連のパッケージを削除する必要があります。

$ sudo yum erase samba samba-common samba-client


古いSambaパッケージの削除が終わったら、新しいSambaパッケージを導入します。

$ sudo yum install samba36 samba36-common samba36-client



インストール後はいつものようにsmb.confの設定[4]を行います。 ただ、これまでと違うのは、[grobal]セクションに以下のように記述する必要がある点です。

[global]<br>
max protocol = SMB2


これで、対応しているクライアントのアクセスの場合、SMB2プロトコルが使われます...と、ところが!
SMBの認証モードの設定で「security = share」と設定すると、SMB2プロトコルで通信してくれないようです。Web検索して見つけたページ[5]を元に「security = user」に設定したところ、SMB2プロトコルで通信してくれるようになりました(3日、これで悩みました)。


さて実際の使用感ですが、当然「SMB2」に設定した方が速いという結果が出ました。 以下の比較をみてください。
[8/29 修正]
エクスプローラによる大容量のファイルコピーは時間がかかることがあるらしく、ROBOCOPYコマンドを使い、再度速度を測定してみました。その結果は以下の通りです。
LAN環境でのisoイメージ(673MB)を転送した場合の速度(有線LANアクセス時)
SMB2
速度: 13M バイト/秒
速度: 726.394 MB/分
SMB
速度: 10M バイト/秒
速度: 580.364 MB/分

▲SMB2とSMBの転送速度の比較。SMB2の場合、SMBと比べ約30%速度が向上している

合計5MBのファイルを転送した場合の速度(e-moblileでVPNアクセス時)

SMB2  110KB/秒(平均)
SMB    70KB/秒(平均)


▲SMB2とSMBの転送速度の比較。SMBでは100KB/秒を超えることはなかったが、 SMB2では最大で130KB/秒を超えることもあった。転送速度は確実に上がっていることがわかる
これはアップグレードする価値がありますね!
今回の教訓 これを機会に、security=shareを使うのはやめましょう。
参考サイト - [1] http://sourceforge.jp/magazine/11/08/10/0413213 - [2] http://samba.org/samba/history/samba-3.6.0.html - [3] http://wingse.blog57.fc2.com/blog-entry-216.html - [4] http://www.tooyama.org/samba33-pass.html - [5] http://help.lockergnome.com/linux/Samba-Windows-smb2-connect-guest--ftopict525251.html