NFSとiSCSIのVM内アクセス速度比較

NFSとiSCSIのVM内アクセス速度比較メモ

検証機

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

NAS4FREE側
CPU : Intel Pentium G4620
メモリ : 32GB
NIC : Intel I219-V
HDD : WD40EZRZx4
OS : NAS4FREE 11.0.0.4 rev4141(FreeBSD 11.0-RELEASE-p8)

ESXi機とNAS4FREE機はGbE(1000BASE-T)を直結して1対1接続していて
NAS4FREEの設定はHDD4台でのRAIDZ2を構成(dedup off)
iSCSIはファイルエクステント形式で50GBを割り当て
NFSは同じRAIDZ2内にフォルダを作りNFS共有に割り当て
NFSv4は無効
MTUは標準の1500のまま

計測用VM

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

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

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

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

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

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

計測結果1

CrystalDiskMarkを使って計測
NAS4FREE側の通信・CPU負荷も掲載

NFS

NFS GbE – Win10 Pro 64bit CrystalDiskMark

NFS – NAS4FREE側の負荷

iSCSI

iSCSI GbE – Win10 Pro 64bit CrystalDiskMark

iSCSI – NAS4FREE側の負荷

計測結果2

次にCrystalDiskMarkではなく通常のファイルコピーでどうなるか
VM外にある共有フォルダからVM内のデスクトップへ
4GB超えのファイルをコピーしてみました

NFS

NFS – ファイル転送 1

NFS – ファイル転送 2

iSCSI

iSCSI – ファイル転送

NFSの書き込みが遅い件

これを見て誰もがNFSの書き込みが異常に遅いと思うでしょうが
これは同期書き込み云々が原因で設定で回避できるらしく
「esxi nfs 書き込み 遅い」とかでググればいっぱい設定例でます
今回は最初からiSCSIを利用する予定だったので
とりあえず設定しないとこうなるケースもあるよ的な意味で掲載していて
NFSなんかゴミだからって言いたいわけではありません

そして読み込みに関してはどちらにしてもGbEがボトルネックなので
差が出てません

感想

GbEのTCP/IP理論値がMTU1500で118.6MB/sということなので
Intel NIC同士の直結だけあって速度自体はGbEのほぼ限界まで出てくれてます

NAS4FREEもGbE程度じゃG4620でもCPU負荷が半分にも行かずかなり余裕です

ESXiもNFSだけでなくCIFS/SMBをデータストアとして使えるならかなり便利なのですが
現状NFSかiSCSIしかないのでiSCSIが手軽で技術もいい具合に枯れていて安心です

NFSv4に関してですがESXi側が実装したてなのもあって
細かい制約条件が多く、本番で使うほどまだ信頼できないので今回は使ってません
しかしNFSv4はマルチパス対応など速度面でもかなり進化してるので
枯れるのを待っている状態で今後に期待です