SSDキャッシュ(flashcache)の効果をベンチマークソフトIOzoneで検証してみました

ミニタワー型のシステムPOWER MASTER NAS M8170へは最大2台の2.5インチHDD/SSDの追加搭載が可能で、2.5インチHDD/SSDを追加するとOS用ドライブ、SSDキャッシュ用などに用途に合わせて色々な使い方が出来ます。

POWER MASTER NAS M8170へSSDキャッシュを追加した場合の効果を簡単に調べてみました。

SSDキャッシュには色々な種類があり、ここでいくつかの例を紹介しています。用途や求める性能、予算により選択することが出来ます。

  • RAIDコントローラやS-ATAコントローラへSSDを取り付ける方法(LSI CacheCade、HighPoint Rocket Hybrid)
  • Intel製チップセットの機能を利用する方法(Intel Smart Response Technology)
  • ソフトウェアのみでSSDキャッシュとして利用する方法(flashcache)

POWER MASTER NAS M8170標準構成では、NAS専用OS「FreeNAS」をインストールしており、FreeNASでもSSDキャッシュを利用出来ます。
用途に応じてOSを変更することも出来るので、今回、CentOS6.5へ変更しFlashcacheを利用しました。

Flashcacheのバージョンは、昨年秋に公開されたバージョン3系最新版です。
https://github.com/facebook/flashcache/

◎ 検証で利用した環境

POWER MASTER NAS M8170には3.5インチHDDを4台搭載出来るので、HDD1にはOSをインストールし、HDD2~HDD4でソフトウェアRAID5構築(EXT4でフォーマット、/mntへマウント)しました。
2.5インチHDD/SSDの追加スペースにはSSDを1台取り付け、ソフトウェアRAID5ボリュームのSDDキャッシュとして設定しました。(キャッシュモードはwriteback、キャッシュサイズは40GBで構築しました。)

  • Xeon E3 1230V3
  • メモリ 4G
  • HGST HDS723020BLA642 x1個 (OSインストール)
  • Intel 520 x1個(キャッシュ用SSD)
  • HGST HDS723020BLA642 x3個 (ソフトウェアRAID5)
# mdadm –create /dev/md0 –level=5 –raid-devices=3 /dev/sd[cde]
# mkfs.ext4 /dev/md0
# flashcache_create -p back -s 40g cachedev /dev/sdb /dev/md0
# mount /dev/mapper/cachedev /mnt

falashcache設定後、ベンチマークソフトIOzoneでRandom Read / Random Write を計測してみました。

# iozone -I -i 0 -i 2 -s 1024 -r 4 -f /mnt/test_file1
# iozone -I -i 0 -i 2 -s 16382 -r 4 -f /mnt/test_file2

IOzoneでは指定ファイルサイズまで、指定レコードサイズで繰り返し読み込み/書き込みを行いますので、上記のコマンドでは、

  • 4Kレコードをファイルサイズ1024kになるまで繰り返す、
  • 4Kレコードをファイルサイズ16382kになるまで繰り返す、

動作が行われます。

◎ 結果
Random Writeでは、”flashcacheあり”の場合/”flashcacheなし”の場合とで顕著な差がみられました。
Random Readでは、ファイルサイズ1024kの場合で”flashcacheあり”の方が速い結果となりましたが、ファイルサイズ16382kの場合では”flashcacheなし”の場合とほぼ同じ結果となりました。
flashcacheを利用していても、16382kファイルサイズ/4kレコードサイズのRandom Readでは、ハードディスクから読み出しがされていたと思われます。

簡単な検証でしたが、flashcacheを利用するとSSDキャッシングの効果により速度アップがみられました。ただ、読み書きするファイルサイズ/レコードサイズによってはSSDキャッシュの効果がみられない場合もありました。利用するアプリケーションでSSDキャッシュの効果がみられるか検証が必要かと思います。