FreeNASとNAS4Freeの速度比較

FreeNASとNAS4Freeの速度比較メモ

検証内容

前回、NFSとiSCSIのVM内アクセス速度比較という記事をあげたので
ついでにFreeNASも速度計測してみました
NAS4Freeも同一環境ですが改めて測定してますので
結果の数値も微妙に変わってます

今回測定する項目はSMB・NFS・iSCSIの速度です

検証機

ESXi側
CPU : Intel Core i7-4770
メモリ : 32GB
NIC : Intel EXPI9301CT(Intel 82574L)
OS : VMware ESXi 6.0.0 Build 5224934

NAS側
CPU : Intel Pentium G4620
メモリ : 32GB
NIC : Intel I219-V
HDD : WD40EZRZx4 RAIDZ2 (dedup off)

ESXi機とNAS機はGbE(1000BASE-T)で直結
MTUは標準のまま(1500)

FreeNASとNAS4Free両方とも同じように
HDD4台でRAIDZ2を構成
全領域を使った単一ZFSプールを作成しSMB領域を割り当て
その中にiSCSIとNFSフォルダを追加し各サービス割り当て
iSCSIはファイルエクステント形式で100GB割り当てた
OSやSMB・NFS・iSCSIの設定は基本的に全て標準のまま使用
記載した項目以外はそのままと思ってください

NAS側のOSインストール先はUSBメモリではなくSSDを使用
前回のVM内アクセス速度比較の記事ではUSBメモリでしたので
どちらでも利用速度に影響がないのがわかるかと思います

NAS機のOS

2017/04/12時点の最新版を使うことにしました

FreeNASはver10系となるFreeNAS Corralの10.0.3を採用
リリース日は2017/04/06です
本当はCorralとともに従来のFreeNAS 9.10も検証しようしたのですが
Kaby Lake世代にはまだ対応できておらず正常に動作させることができなかった
この件に関しては別記事でメモする予定

FreeNAS Corral 10.0.3
FreeNAS-Corral-10.0.3 (4845fa74c)

[root@freenas] ~# uname -a
FreeBSD freenas.local 11.0-STABLE FreeBSD 11.0-STABLE #2 r313908+8c2aa153653(secret_stable): Wed Apr  5 19:29:47 PDT 2017     root@bob.ixsystems.com:/build/build/_BE/objs/build/build/_BE/os/sys/FreeNAS.amd64  amd64

NAS4Freeは11系の11.0.0.4のrev4141を採用
リリース日は2017/03/27です

NAS4Free 11.0.0.4.4141
NAS4Free 11.0.0.4 – Sayyadina (revision 4141)

nas4free: ~# uname -a
FreeBSD nas4free.local 11.0-RELEASE-p8 FreeBSD 11.0-RELEASE-p8 #0 r315989M: Sun Mar 26 19:41:54 CEST 2017     root@dev.nas4free.org:/usr/obj/nas4free/usr/src/sys/NAS4FREE-amd64  amd64

共にベースとなるFreeBSDは11.0を使っているので同じですが
FreeNASはSTABLE版つまり開発ブランチ版
NAS4FreeはRELEASE版つまり安定版を使ってるようです

NFS・iSCSI計測用VM

ゲストOS指定 : Windows10(64bit)
CPU : 1
メモリ : 8192MB
HDD : 50GB, LSI Logic SAS, シン・プロビジョニング
仮想デバイスノード : SCSI

実際にインストールしたのは
Windows10 Pro 64bit
バージョン 1607 ビルド 14393.969
2017/04/12時点でのWinUpdate済状態

VM・OSともに設定は標準のままいじらず

NFS・iSCSIは別々の仮想マシンを同じように新規で作成
(VMコピーしたりはしていない)

NFS・iSCSIともに今回の計測時は1VMしか作成しておらず
複数VMによる同時アクセスは今回の計測には考慮されていない

インストールはCドライブへ50GB全て割り当てて
計測もOSと同じCドライブで計測

SMB速度

最初にSMB経由での速度です
計測PCはWin10 ProでIntel I219-VのNICを使用
ネットワークドライブ割り当て後にCrystalDiskMarkを使って計測

FreeNAS Corral 10.0.3

SMB計測 – FreeNAS

NAS4Free 11.0.0.4.4141

SMB計測 – NAS4Free

ネットワークドライブ越しでも空き容量は6.80TBで
CrystalDiskMarkのドライブ指定でも6967GiBになってるのが確認できる
容量・速度ともにOS差は見られず

NFS速度

ESXiにデータストアとして登録し
VM上でCrystalDiskMarkを走らせ計測しました

FreeNAS Corral 10.0.3

NFS計測 – FreeNAS

NAS4Free 11.0.0.4.4141

NFS計測 – NAS4Free

NFSを何も設定せずにESXiから使うと
書き込み速度がひどいです
見てわかる通りOS固有問題ではありません

NFSv4速度

FreeNAS・NAS4Free側の設定でNFSv4オプションを有効にしてみました

FreeNAS Corral 10.0.3

NFSv4計測 – FreeNAS

NAS4Free 11.0.0.4.4141

NFSv4計測 – NAS4Free

NFSv4にしたところでReadもGbEで頭打ちなので
結果は変わらず
Write値もNFSv4にしても解決しません

NFS速度 sync=disabled

NFSのWriteの速度が出ない問題での対処法として
一番ベストなのはZIL用のSSD追加ですが
次によく出てくるsync=disabledを試してみました

sync=disabledは同期書き込みをオフにする方法で
NFSというよりZFSの設定を変えることになります

FreeNAS・NAS4FreeともにSSH接続してコマンド実行すれば
再起動も不要で即反映されます

FreeNAS

[root@freenas] ~# zfs get sync
NAME     PROPERTY  VALUE     SOURCE
zpool01  sync      standard  default
[root@freenas] ~# zfs set sync=disabled zpool01
[root@freenas] ~# zfs get sync zpool01
NAME     PROPERTY  VALUE     SOURCE
zpool01  sync      disabled  local

[root@freenas] ~# zfs set sync=standard zpool01
[root@freenas] ~# zfs get sync zpool01
NAME     PROPERTY  VALUE     SOURCE
zpool01  sync      standard  local

NAS4Free

nas4free: ~# zfs get sync
NAME      PROPERTY  VALUE     SOURCE
zpool01   sync      standard  default
nas4free: ~# zfs set sync=disabled zpool01
nas4free: ~# zfs get sync zpool01
NAME      PROPERTY  VALUE     SOURCE
zpool01   sync      disabled  local

nas4free: ~# zfs set sync=standard zpool01
nas4free: ~# zfs get sync zpool01
NAME      PROPERTY  VALUE     SOURCE
zpool01   sync      standard  local

zpool01のところを各自の環境に合わせてください
最初のコマンド3つでstandardからdisabledに変更されたのが確認できます
下2つは元に戻す方法です

sync=disabledを実行した結果がこちら

FreeNAS Corral 10.0.3

NFS計測 sync=disabled – FreeNAS

NAS4Free 11.0.0.4.4141

NFS計測 sync=disabled – NAS4Free

SMB同様に書き込みも速度が出るようになりました
しかしはっきりいってオススメはしません
SSD追加が許されるならZILを追加すべきです
しかしZILも物理メモリも半分の容量しか使われない縛りがあるので
ZILを使えない or ZILじゃ容量足らないならおとなしくiSCSIを使いましょう

iSCSI速度

NFSと同じくESXiにデータストアとして登録し
VM上でCrystalDiskMarkを走らせ計測しました

FreeNAS Corral 10.0.3

iSCSI計測 – FreeNAS

NAS4Free 11.0.0.4.4141

iSCSI計測 – NAS4Free

こちらはNFSと違いsyncをいじらなくても普通に速度が出ます

感想

OS差を確認しようにもGbE環境はそれ以前の問題で
WD40EZRZみたいな倉庫向けHDD(5400rpm)と
パリティ計算が重いとか速度がRAID10より遅いといわれるRAIDZ2という
速度重視ではない構成ですらGbE環境ならば簡単に頭打ちになります

ちなみにCPU使用率はベンチ中でも10%台でした

ハードウェアが同一なのに消費電力に差があったのが意外で
両方アイドル状態でFreeNAS Corralは43W NAS4Freeが39Wでした

消費電力関連の設定を変更したりはしていないので
デフォルト設定の違いが結果として出てるのではないかと思います
HDDは両方スピンダウン設定せず常時回転状態ですし
4Wも差が出るということはCPUの制御周りですかね