SSDの性能と特性を把握
クラウドを加速させるSSD技術(前編)

松本直人
仮想化インフラストラクチャ・オペレーターズグループ チェア
さくらインターネット研究所 上級研究員
2012/1/12

SSD性能を測るベンチマーク手法

 次にストレージのベンチマークツールについて見ていきましょう。

 ストレージの負荷状況をより細かく確認するために、ここではfioをScientific Linux 6.1上にインストールする例を示します。

 fio実行のために足りないライブラリを足した上でコンパイルを行いインストールします。コンパイルに必要なソフトウェア群がない場合には、あらかじめインストールしておきましょう。

・fio-1.58.tar.gz を入手し、必要なライブラリを追加する

# yum -y install gcc libaio-devel
# tar xzvf ./fio-1.58.tar.gz
# cd fio-1.58
# make
# make install

 インストールが完了したら、実際に動作を確認してみましょう。ここでは4Kバイトのブロックサイズで、1Gバイトのファイル3つをディスクへ直接書き込むベンチマークを行っています。詳しいfioの設定方法などはfioのmanを参照ください。

・fioの実行

# fio --directory=/home/test/ --direct=1 --rw=write --bs=4k --size=1G --numjobs=3 --runtime=100 --group_reporting --name=seq-write

 fioは実行中の状況をリアルタイムで表示してくれますので、ベンチマークの進行状況を確認しながら作業を進めるといいでしょう。

 特に注目すべきは、実行中のベンチマーク表示で、秒単位でのバイト性能(K/s)や秒単位でのI/O性能(IOPS)が示される点です。fioの実行結果レポートにもこれらは反映されますが、リアルタイムで体感速度を感じておくことで、従来のHDDとの違いや今後も出てくる、より高速なストレージとの比較を感じやすくなります。

・fio実行中の表示

Starting 3 processes
seq-write: Laying out IO file(s) (1 file(s) / 1024MB)
seq-write: Laying out IO file(s) (1 file(s) / 1024MB)
seq-write: Laying out IO file(s) (1 file(s) / 1024MB)
Jobs: 3 (f=3): [WWW] [17.8% done] [0K/7459K /s] [0 /1821 iops] [eta 01m:23s]

 実行結果レポートにはさまざまな情報が掲載されています。総実行時間あたりのI/O処理数から平均I/O性能、平均IOPS性能、CPU利用時間の詳細など、システム特性を理解する上で、どこにボトルネックが発生しているかを俯瞰するには、とても良い情報が表示されています。

 特にディスク性能を知る上で重要な結果として、秒単位での平均バイト性能(KB/s)や秒単位での平均I/O性能を見ておくとよいでしょう。

・fio実行レポート結果

seq-write: (groupid=0, jobs=3): err= 0: pid=18098
  write: io=667532KB, bw=6674.8KB/s, iops=1668 , runt=100009msec
    clat (usec): min=432 , max=1070.3K, avg=1794.80, stdev=15217.13
     lat (usec): min=432 , max=1070.3K, avg=1795.08, stdev=15217.13
    bw (KB/s) : min=    4, max= 3808, per=34.02%, avg=2270.65, stdev=451.52
  cpu          : usr=0.21%, sys=1.79%, ctx=168462, majf=0, minf=73
  IO depths    : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
     submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     issued r/w/d: total=0/166883/0, short=0/0/0
     lat (usec): 500=60.60%, 750=36.90%, 1000=0.73%
     lat (msec): 2=0.68%, 4=0.26%, 10=0.02%, 20=0.01%, 50=0.01%
     lat (msec): 100=0.05%, 250=0.73%, 500=0.01%, 750=0.01%, 1000=0.01%
     lat (msec): 2000=0.01%

Run status group 0 (all jobs):
  WRITE: io=667532KB, aggrb=6674KB/s, minb=6834KB/s, maxb=6834KB/s, mint=100009msec, maxt=100009msec

Disk stats (read/write):
  dm-0: ios=0/167046, merge=0/0, ticks=0/1265109, in_queue=1265238, util=100.00%, aggrios=0/166930, aggrmerge=0/134, aggrticks=0/488618, aggrin_queue=488545, aggrutil=99.99%
    sdb: ios=0/166930, merge=0/134, ticks=0/488618, in_queue=488545, util=99.99%

SSDが抱える問題と新技術

 SSDはHDDに比べて価格が高く、容量が少ないという欠点があります。最大容量でTB(テラバイト)級のSSDも確かに存在しますが、HDD比較してとても高価であることには変わりはありません。クラウド環境などの場合には「I/O性能は高く、容量も大きく」というニーズが根強くあり、改善が求められていました。

 この問題を解決する技術の1つとして、ここでは「SSD Caching」について見ていきましょう。

図4 SSD Caching

 SSD CachingはSSDとHDDを連携させて実現する技術で、データの書き込み・読み込みを一時的にSSDで受け付けることでI/O性能を向上させます。データは最終的にHDDに書き込まれるため、システム側から見るとI/O性能はSSDと等しく、ストレージ容量はHDDと等しくなります。

 実装としてマザーボードのチップセットに取り入れられたIntel Rapid Storage Technology(RS)のほか、追加チップやPCI Expressカードとして実装されたMarvell HyperDuo、RAIDを拡張したLSI Cachecade Pro 2.0などがあります。これ以外にも新興ストレージベンダからは同様の製品投入が発表されており、今後も製品が増えていくことでしょう。

画面3 Intel RSTおよびMarvell HyperDuo設定画面

画面4 LSI CacheCade Pro2.0設定画面

 しかしSSD Cachingと一言でいっても、実装により管理できるSSD Caching容量の上限や、性能面での制約、さらには構成できるRAID構成の制約などがあり、すべてが等しいわけではありません。

 特にIntel RSTやMarvell HyperDuoなどは、主にデスクトップ用途のSSD Cachingを意識した製品であり、SSDとHDDの2台構成でしかSSD Cachingを作れない実装も存在しています。データセンターで展開されるクラウド環境の用途としては、ストレージの冗長構成や全体容量も加味するとLSI CacheCade Pro2.0のようなRAIDカードを拡張したような実装が適しているといえます。

 このような今後の製品リリース状況をにらみつつ、最適なシステムを選択していくことが求められていくことでしょう。

 今回は、SSDとクラウドを取り巻く現状を俯瞰してきました。次回はより踏み込んで、SSDを取り巻くストレージの管理手法について見ていきます。次回をお楽しみにお待ちください。


クラウドを加速させるSSD技術(前編)
  SSDが必要とされる理由
ストレージ性能の最新動向
SSDに関するよくある「間違い」
クラウドを加速させるSSD技術
SSD性能を測るベンチマーク手法
SSDが抱える問題と新技術
「Master of IP Network総合インデックス」


Master of IP Network フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Master of IP Network 記事ランキング

本日 月間