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

RaspberryPiをファイルサーバに

RaspberryPi に、なんと 2TBで8000円だったUSB HDD を付けて、ファイルサーバ(NAS)として活用している。


 
RaspberryPi は消費電力が3.5W程度と、たいそう省電力でお気に入りだ。
加えて、省電力の工夫として、使わない時はHDDの回転を停止している。

RaspberryPi外付けUSB HDDを停止して省電力化する方法
RaspberryPiに接続したUSB HDDを、使っていない時は回転を停止(spindown)できないかチャレンジ

Raspberry Piのファイルサーバを高速化

ただ、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)は高速化が見込まれる)

参考:http://itpro.nikkeibp.co.jp/article/COLUMN/20070712/277389/

では、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 をファイルサーバとして使うことにする。

コメント