RaspberryPiのファイルサーバ(Samba)をSMB2対応で高速化


RaspberryPi に、なんと 2TBで8000円だったUSB HDD を付けて、ファイルサーバ(NAS)として活用している。
 
RaspberryPi は消費電力が3.5W程度と、たいそう省電力でお気に入りだ。
加えて、省電力の工夫として、使わない時はHDDの回転を停止している。
ただ、Raspberry Pi はCPUがARM1176JZF-S 1コア(700 MHz)と非力で、
かつ、NICも100Mbpsとギガビットに対応しておらず、転送速度が遅いという課題がある。
そこで、今回はこの転送速度を改善することを試みる。
私は、接続端末としてMacBookを使っている。
そのため、これまではファイルサーバとして、Samba(SMB) と AFP を併用していたが、
Mac OS X 10.9(Lion)以降からは、
AFP(Apple Filing Protocol)ではなく、Samba(SMB2.0)を優先的に使うことになったとのことなので、
Samba(SMB)から、Samba(SMB2.0)に移行することにした。
ちなみに、SMB2.0 はSMBから下記のアップデートがあり、転送速度が向上している。
(1)TCP/IPパケットのオーバーヘッド削減
(2)バッファサイズの拡大
(3)同時接続クライアントの最大値撤廃
(特に、(1)(2)は高速化が見込まれる)
では、SMB2.0への対応方法を記す。
ず、SMB2.0に対応したSambaかを確認する。

  $ smbd -V
  Version 3.6.6
Sambaバージョンが3.6以降は、SMB2.0プロトコルに対応しているので問題ない。
では、次に、SMB2.0を利用するようにSamba設定を変更。

  $sudo vim /etc/samba/smb.conf
 
  [global]
  max protocol = SMB2
 
このように、[global] に max protocol = SMB2 を書き加える。
(ちなみに、security = share になっていると、SMB2が有効にならないので注意)
これだけで、転送速度は1.5倍程度に高速化した。
加えて、sambaのログをSDカードに出力する場合、
SDカードのWrite速度はそれなりに遅いので、ボトルネックになる可能性がある。
そこで、ログ出力レベルを下げることで、高速化が図れる。
  $sudo vim /etc/samba/smb.conf
 
  [global]
  log level = 1 ★←「2」から「1」にする
上記設定を行うだけで、かなり快適になった。
BuffaloのNASを買おうか迷っていたが、環境にも優しいし、静音なので
もうしばらく Raspberry Pi をファイルサーバとして使うことにする。

シェアする

  • このエントリーをはてなブックマークに追加
  • Evernoteに保存Evernoteに保存

フォローする