雨ときどき晴れ

最近はC#やASP.NET MVCやってます。NetduinoやCerbuinoも活用できるようになりました。

FreeNASで転送速度を比較してみた。

最近、我が家のファイルサーバーは FreeNAS に移行しつつあります。
まあ、インストールや設定が簡単なので仕方ないですよね(笑)。

ということで、
今回は FreeNAS がインスト−ルされているパソコンの
「CPU やメモリ容量などのハードウェアの違いによって、ファイルの転送速度にどれくらい影響があるのか」
を調べてみました。

テスト方法

上記のネットワーク構成にて、PC - FreeNAS 間でファイルのコピーを行い、
コピーするファイルサイズ、メモリ容量、RAID方式を変化させた場合の転送時間を計測する。

FreeNAS で使用するサービスは、CIFS、iSCSI

コピーに使用するファイルは「Giga File Creator@Vector」を利用して作成しました。

テスト環境

PC
FreeNAS
Type OS CPU メモリ HDD RAID
1 FreeNAS 8.3.0 x64 Celeron 440 2.00[GHz] 1[GB] 1[TB]×3(SATA 3[Gb/s]) RAID-Z
2 FreeNAS 8.3.0 x64 Celeron 440 2.00[GHz] 4[GB] 1[TB]×3(SATA 3[Gb/s]) RAID-Z
3 FreeNAS 8.3.1 x64 AMD C-60 1.00[GHz] 8[GB] 150[GB]×2(SATA 1.5[Gb/s]) RAID-0
4 FreeNAS 8.3.1 x64 AMD C-60 1.00[GHz] 8[GB] 150[GB]×2(SATA 1.5[Gb/s]) RAID-1

CIFS メモリ 1[GB] vs 4[GB]

  • 使用した FreeNAS:Type.1, Type.2
コピーするファイルサイズ:1[GB]
コピー先 メモリ コピー時間 平均速度
PC -> NAS 1[GB] 25.0[s] 40.0[MB/s]
PC -> NAS 4[GB] 20.3[s] 47.8[MB/s]
NAS -> PC 1[GB] 16.4[s] 62.5[MB/s]
NAS -> PC 4[GB] 14.9[s] 67.1[MB/s]

メモリ4[GB]の方が良い感じ。

  • PC -> NAS:約20[%]の時間短縮
  • NAS -> PC:約9[%]の時間短縮
コピーするファイルサイズ:10[GB]
コピー先 メモリ コピー時間 平均速度
PC -> NAS 1[GB] 209.8[s] 47.8[MB/s]
PC -> NAS 4[GB] 210.5[s] 47.5[MB/s]
NAS -> PC 1[GB] 232.1[s] 43.1[MB/s]
NAS -> PC 4[GB] 219.2[s] 45.6[MB/s]

どちらの場合でも、あまり差はなし。

iSCSI メモリ 1[GB] vs 4[GB]

  • 使用した FreeNAS:Type.1, Type.2
コピーするファイルサイズ:1[GB]
コピー先 メモリ コピー時間 平均速度
PC -> NAS 1[GB] 18.0[s] 55.6[MB/s]
PC -> NAS 4[GB] 17.7[s] 56.5[MB/s]
NAS -> PC 1[GB] 14.3[s] 69.9[MB/s]
NAS -> PC 4[GB] 12.0[s] 83.3[MB/s]

NAS -> PC でメモリ4[GB]の方が良い感じ。

  • NAS -> PC:約16[%]の時間短縮
コピーするファイルサイズ:10[GB]
コピー先 メモリ コピー時間 平均速度
PC -> NAS 1[GB] 209.8[s] 47.8[MB/s]
PC -> NAS 4[GB] 210.5[s] 47.5[MB/s]
NAS -> PC 1[GB] 174.0[s] 57.5[MB/s]
NAS -> PC 4[GB] 145.8[s] 68.6[MB/s]

NAS -> PC でメモリ4[GB]の方が良い感じ。

  • NAS -> PC:約16[%]の時間短縮

CIFS RAID 0 vs 1(ストライピング vs ミラーリング

  • 使用した FreeNAS:Type.3, Type.4
コピーするファイルサイズ:1[GB]
コピー先 RAID コピー時間 平均速度
PC -> NAS 0 15.1[s] 66.2[MB/s]
PC -> NAS 1 25.2[s] 39.7[MB/s]
NAS -> PC 0 12.9[s] 77.5[MB/s]
NAS -> PC 1 12.8[s] 78.1[MB/s]

PC -> NAS で RAID1 に比べ RAID0 が遅い。

  • PC -> NAS:約67%の時間延長
コピーするファイルサイズ:10[GB]
コピー先 RAID コピー時間 平均速度
PC -> NAS 0 178.4[s] 56.1[MB/s]
PC -> NAS 1 198.9[s] 50.3[MB/s]
NAS -> PC 0 149.4[s] 66.9[MB/s]
NAS -> PC 1 155.0[s] 64.5[MB/s]

PC -> NAS で RAID1 に比べ RAID0 が少し遅い。

  • PC -> NAS:約11%の時間延長

CIFS おまけ:最近組み立てた NAS

組み立て記事はこちら

FreeNAS Type.5
  • OS:FreeNAS 8.3.1 x64
  • CPU:AMD C-60 1.00[GHz]
  • メモリ:8[GB]
  • HDD:3[TB]×2(SATA 6[Gb/s], RAID-1)
コピー先 コピーするファイルサイズ コピー時間 平均速度
PC -> NAS 1[GB] 16.2[s] 61.7[MB/s]
NAS -> PC 1[GB] 12.8[s] 78.1[MB/s]
PC -> NAS 10[GB] 164.0[s] 61.0[MB/s]
NAS -> PC 10[GB] 194.0[s] 51.5[MB/s]

RAID1 でも SATA 6[Gb/s] であれば、RAID0, SATA 1.5[Gb/s] 程度の速度が出るみたい。

コピー中の FreeNAS の状態

ファイルコピー中の FreeNAS の状態を「vmstat -w 1」で計測したものをグラフ化してみました。
各項目の説明については「FreeBSDドキュメント jman VMSTAT」を参考にしてください。

Type.1 のメモリ容量1[GB]のフリーなメモリがコピー開始してしばらくすると、ほぼ枯渇状態となっているのがよく分かります。

FreeNAS Type.1

FreeNAS Type.2

テスト結果

PC -> NAS

NAS -> PC


  • 利用するPCが少ないときは CPU はそれほど影響なし。
  • メモリ容量を増やすことである程度は速度上昇することが分かった。
  • PC->NAS のHDD書き込みに比べ、NAS->PC のHDD読み込みは1.5倍くらいの速度が出るらしい。
  • CIFS より iSCSI の方が全体的には良い感じ。
  • RAID 1, 0 ではHDD書き込み時に大きな差が発生した。
  • やっぱり、SATA 1.5[Gb/s] より SATA 6[Gb/s] にした方がいい。

まとめ

全体的に CIFS に比べ iSCSI の方が良好な結果を得られました。
ただ、iSCSI はファイル共有として使用できるわけではないため、普通は CIFS でいい感じ。

メモリ増加による転送速度上昇の恩恵は、ファイルサイズが大きい場合だとあまり頑張ってくれないみたいです。
HDD書き込み、読み込み時間のバッファーとしてメモリが有効活用される場合に転送時間にいい影響を与えているようです。

CPU については、コピー中 80[%] 程度の使用率ですが、まだ余裕がある感じ。
暗号化や重複除外機能を有効にすると、この辺りは変わってくるのかな?


まあ、こんな感じであまり頑張らなくても普通に動くファイルサーバーが作れるようになったのは良いことだ〜。