QNAPのNASはQTS4.0.5からSMB2を有効に出来るらしいのですが、私のTS-112(QTS4.2.0)のには設定項目が存在しません。SMB2.0の利用を諦めていましたがCLIでは専用のコマンドが用意されているという情報を見つけたので試してみます。
GUIでのSMBバージョン設定箇所
QNAPのナレッジによるとSMB2設定は「ネットワークサービス」>「Win/Mac/NFS」>「Microsoft ネットワーキング >「高度なオプション」にあるはずですが、TS-112には項目が存在しません。
CLIでのSMBバージョン確認方法
ですが、Telnet/SSHでTS-112に接続すればCLI上で設定可能です。
まずは現在有効なSMBバージョンを調べる「smb2status」をTS-112上で実行してみます。
# smb2status smbd (samba daemon) Version 3.6.25 smbd (samba daemon) is running. max protocol SMB 1.0 enabled.
TS-112はSMB1.0で動作していることがわかりました。
Windows8以降のOSは、管理者権限のPowerShellで「Get-SmbConnection」を実行することでNASに接続しているSMBバージョンを確認できます。
PS C:\WINDOWS\system32> Get-SmbConnection
ServerName ShareName UserName Credential Dialect NumOpens
---------- --------- -------- ---------- ------- --------
192.168.28.250 home PC\user PC\user 1.5 2
192.168.28.250 Multimedia PC\user PC\user 1.5 1
Dialectの値がNASに接続しているSMBバージョンです。SMB1.5なんてバージョンは無かったはずですが、SMB1.0系であることは間違いないでしょう。
SMB2.0を有効化する
SMB2.0までを有効化するコマンドは「smb2enable」です。
# smb2enable Shutting down SMB services: smbd nmbd. Shutting down winbindd services: winbindd. max protocol SMB 2.0 ... enabled. locks path was set to /share/HDA_DATA/.locks Shutting down winbindd services: winbindd. Starting winbindd services:Starting SMB services:. smbd (samba daemon) Version 3.6.25 smbd (samba daemon) is running. max protocol SMB 2.0 enabled. # smb2status smbd (samba daemon) Version 3.6.25 smbd (samba daemon) is running. max protocol SMB 2.0 enabled.
SMB2.0を有効にしてからWindows側でGet-SmbConnectionを打ってみます。
PS C:\WINDOWS\system32> Get-SmbConnection
ServerName ShareName UserName Credential Dialect NumOpens
---------- --------- -------- ---------- ------- --------
192.168.28.250 home PC\user PC\user 2.0.2 4
192.168.28.250 Multimedia PC\user PC\user 2.0.2 2
Dialect2.0.2=SMB2.0になりました。
SMB2.1を有効化する
TS-112のQTS4.2.0はSMB2.0だけでなくSMB2.1も有効化することができました。SMB2.1を利用可能なのはWindows7以降ですが、後方互換性もあるのでSMB2.0を利用するVistaやSMB1.0クライアントも困ることはありません。
SMB2.1の有効化は「smb21enable」です。
# smb21enable Shutting down SMB services: smbd nmbd. Shutting down winbindd services: winbindd. max protocol SMB 2.1 ... enabled. locks path was set to /share/HDA_DATA/.locks Shutting down winbindd services: winbindd. Starting winbindd services:Starting SMB services:. smbd (samba daemon) Version 3.6.25 smbd (samba daemon) is running. max protocol SMB 2.1 enabled. # smb2status smbd (samba daemon) Version 3.6.25 smbd (samba daemon) is running. max protocol SMB 2.1 enabled.
WindowsでDialectを確認するとSMB2.1を利用しています。
PS C:\WINDOWS\system32> Get-SmbConnection
ServerName ShareName UserName Credential Dialect NumOpens
---------- --------- -------- ---------- ------- --------
192.168.28.250 home PC\user PC\user 2.1 5
192.168.28.250 Multimedia PC\user PC\user 2.1 2
なおsmb2enable/smb21enableで有効にした場合は、NASを再起動してもSMB2.0/SMB2.1は有効なままなのを確認しました。
SMB1.0/SMB2.0/SMB2.1の性能比較
Windows10でTS-112のSMBバージョン3種類を切り替えて性能を比較してみます。
まずはCristal Disk Markから。
SMB2.0はシーケンシャルRead性能が上がりましたがWriteが下がってしまいました。一方SMB2.1ならWriteの性能低下を起こさず、シーケンシャルReadが更に向上しました。
次にLan Speed Test(Lite)。
こちらでもSMB2.0は性能低下がありますが、SMB2.1はWrite/Readどちらも高速化しています。
既にディスコンなTS-112でもSMB2.1化によりシーケンシャルReadの性能向上を確認できました。より高速なTS-112Pや他の機種ならもっと高速化するはずです。
SMB1.0に戻すには
何らかの理由でSMB1.0に戻す必要ができた場合は「smb2disable」を利用します。
# smb2disable Shutting down SMB services: smbd nmbd. Shutting down winbindd services: winbindd. max protocol SMB 1.0 ... enabled. locks path was set to /share/HDA_DATA/.locks Shutting down winbindd services: winbindd. Starting winbindd services:Starting SMB services:. smbd (samba daemon) Version 3.6.25 smbd (samba daemon) is running. max protocol SMB 1.0 enabled.
※2017/5/28追記
SMB3の有効化も試して見ました。