前回紹介したSSDやネットワークRAID型ストレージについて、ベンチマークを基に仮想化環境におけるストレージの「I/O性能」を検証してみた。その結果は、これまで仮想化に不向きと考えられていた高負荷なデータベース(DB)でも、仮想化の対象となり得ることを示している。

宮原 徹
日本仮想化技術

 仮想化環境では、計算性能に対するI/O性能不足が以前よりも大きくなっているため、CPUの性能を100%引き出そうとすると、ものすごく巨大なストレージが要求されてしまい、現実的ではない。それに対してSSDを使うと、更新処理を実行してもCPUを結構使い切れる。つまり、計算性能とI/O性能のバランスがよくなるわけだ。

 今回は、更新処理を含むTPC-Bベンチマークを実施した。サーバーのテスト環境は、AMD Opteron 2435(6コア、2.6GHz動作)を2個搭載したサーバー・マシン上で、Windows Server 2008 R2、Hyper-V 2.0、SQL Server 2008 SP1を稼働させた。1つの仮想マシン(VM)には4つの仮想CPUを割り当て、仮想マシンの数を変えながらSQL Serverに対するトランザクション処理性能を計測した。

 このサーバーに2種類のストレージを接続して性能を検証した。1つはネットワークRAID型のiSCSIストレージである日本ヒューレット・パッカード(HP)の「LeftHand P4000 SAN」。特徴は、複数のストレージノード間でネットワークミラーリングができる点だ。ノード単体でもRAIDで冗長化されているが、1つのノードが障害でダウンしても、別のノードにデータが残っている。保存すべきデータ量に対して2~3倍のストレージ容量が必要になるが、データを確実に保護できる。

 もう1つは、同じく日本HPの「StorageWorks IOアクセラレータ」というSSDストレージである。ブレードサーバーのメザニン(拡張スロット)に挿して使う。SSDというと、一般には2.5インチのハードディスク形状のものを思い浮かべるかもしれないが、StorageWorks IOアクセラレータはそれを10個くらいボード上に並べ、内部でミラーリングしたものと考えてもらいたい。PCI Expressに接続して、ハードディスクと同じように使える。通常のハードディスクを8台並べたときのI/O性能は数百~1000 IOPS(入出力回数/秒)ぐらいだが、このカードは1枚で10万IOPSくらいの性能が出る。

SSDストレージの性能は驚異的

 これら2種類のストレージを使ってデータベースのベンチマークを実行したところ、図1のような結果となった。比較対象として、2.5インチの単体SSDをローカル接続した場合の計測結果を添えている。

図1●仮想化環境向けストレージの性能比較
図1●仮想化環境向けストレージの性能比較

 図1の真ん中にある、3VM(12仮想CPU)構成時のグラフを見てほしい。緑と青のバーがiSCSIストレージ「LeftHand」を使用したときの性能を示している。性能の高い方(青のバー)は、ネットワークミラーリングをしていない状態、つまり単独ノードで使っている場合である。ネットワークミラーリングをONにした場合(緑のバー)では、当然書き込んだデータを別のノードにレプリケーション(複製)する必要があるため性能は落ちるが、そのオーバーヘッドはだいたい10%ぐらいとみられる。

 ストレージを冗長化して、ノード障害に対して回復できる意味では、10%ぐらいのオーバーヘッドは許容範囲なのではないだろうか。似たような製品の中には、レプリケーションによりIOPSが半分くらいになってしまうものもあるが、それらと比べれば非常に高速に処理してくれる。これだったら安心料ということで、レプリケーションを検討する価値が十分あるのではないか。

 また、ノードを追加することで、容量やI/O性能をスケールアウトできるのがネットワークRAID型ストレージのメリットだ。仮想マシンの数が増えていったとき、こうした機能の必要性が高まっていくと考えている。

 ストレージを共有しないと割り切れるなら、単独ノードの性能としてはSSDストレージの「StorageWorks IOアクセラレータ」がものすごく速い。ネットワークミラーリングしたLeftHandと比べ2.5倍以上の性能を発揮する。これまで、「更新処理の性能が要求されるデータベースサーバーは、なかなか仮想化するのが難しい」と考えられてきたが、必ずしもそうではなくなった。

 比較のために調べたSSD単体の性能を見ると、どんな場合でも速くなるとは限らないことが分かる。SSDもそれなりに数を並べ、コントローラーの性能が高くないと、なかなか性能が出ない点に注意してほしい。今、ストレージ各社がSSDを使ったストレージオプションを出しているが、コントローラーなどが専用設計となっているため、それなりの値段がついている。それが本当に必要かどうかはシビアに見極める必要があると思うが、仮想化環境向けのストレージとしてSSDの利用もぜひ検討してもらいたい。