2014年1月27日月曜日

EMC ViPRとVMware Virstoは補完するか!  -SDS6-

今回はEMCのViPRとVMwareが買収したVirstoを取り上げてみようと思う。
2つの製品は、親子関係にあるEMCとVMwareの間で重複するのだろうか、それとも補間関係にあるのか、今回はその辺りも整理したい。

=EMCが開発したViPR=
まず、ViPRについて見てみよう。ViPRが発表されたのは昨年5月、最初のリリーズ(Version1.0)は同9月だった。ViPRはProject Bourneとして始まったと伝えられている。EMCはこれまでオブジェクト対応の分散型クラウドサービスAtomosを提供してきたが、必ずしも上手く行っていない。Bourneはこれを引き継ぎ、新たなストレージ機能の提供を目指すのではないかと噂されてきた。そして登場したのがViPRだ。ViPRはコントローラ(ViPR Controller)とデータサービス(Data Services)に分かれる(下図参照)。このコントローラに接続するストレージは基本的に何でも良いが、ViPRが提供するAPIでConnector Pluginを開発しなければならない。現在のところ、同社ストレージシステムのVMAXVNXIsilon、アプライアンスのVPLEXRecoverPointが接続できる。またNetApp7-Modeを使えばかなりの種類のNetApp製品が接続可能だ。現行バージョンではデータサービスとして、オブジェクト対応が優先し、AWS S3OenStack SwiftNAS上に展開できる。次期版ではHDFS(haddop Distributed File System)がリリース予定だ。その後、ブロックIOやファイルIOへの対応も進むものと見られる。

以上のように、ViPRは異種ストレージを共用プール化するストレージハイパーバイザーである。ViPRはVMwareのアプライアンスとして稼動し、ストレージ管理のコンソール機能を備え、ストレージシステムから各種データを受け取ることが出来る。しかし、EMC製品は良いとして、問題は他社製品だ。

=VMwareの目指すもの=
さてVMwareが目指す方向はどこか。VMwareがVirsto Softwareを買収したのは昨年2月のことだ。つまり時期的にみればViPR開発とこの買収はオーバーラップしている。そしてEMCはストレージの巨人として、VMwareは仮想化の雄として、共に将来的な技術をリードできる立場にある。これらのことから、両社が連携していないわけはない。買収時のプレスでVMwareは2つの計画を発表した。1つはVirstoの販売を継続して、VMwareユーザのストレージ効率向上に寄与すること。もうひとつはVirstoの技術を将来のVMware 製品に統合することだった。

=Virstoとは何か=
Virstoの設立は2007年。同社創設メンバーや顧問には仮想化業界の関係者が多く、当時から何か凄いことをやるのではないかと期待されていた。そして2010年初め、ステルスモードから抜け出て市場に参入した。彼らが目をつけたのは、これまで誰も手をつけなかった仮想マシン(VM)のディスクI/Oの効率化だ。言い換えればVMのための真のストレージとは何かを追及するものである。発表されたVirsto One(version 1)はハイパーバイザーのI/Oストリーミングをハイジャックして、I/Oシーケンスの最適化や重複排除を行い、これによってパフォーマンスを向上させる。

VirstoはWindows ServerではHyper-VのParent Partitionの中に展開するが、VMwareの場合は上図のようにVSA(vSphere Storage Appliance)として稼動し、ESX/ESXiのI/Oをインターラプトして、独自方法で実行する。ここでVirstoの扱うストレージとは、事前にSANBlock Storage上にNFSデータストアとしてRDM化したものである。Virstoはこれに膨大な数の階層型ストレージプールとなるvSpaceとログファイルのvLogを作成する。実際のところ、VirstoはこのvSpaceにvDiskを作成するがvSphereからはVMDKのように見えるので、その運用は標準VMware Workflowで対応が可能となる。
さて、I/Oの観点から見るとどうか。まず全ての“Read”要求は、vSpaceを参照する。VirstoはVMのそれぞれについて、vSpaceに参照の位置情報を用意しており、これによって、殆どの場合シーケンシャル処理が可能となる。VMからの“Write”の場合は、その情報をサイクリックにvLogに記録し、直ちに完了を返す。こうしてVM上のアプリケーションは次のステップに進む。もし複数のサーバーがあれば各々のvLogはVirstoによって統合され、その後、アプリケーションとは非同期でvLogから vSpaceにデータが書き出される。この際、I/Oの効率化のため、隣接配置にしたり、重複排除などを行い、その後、実際の処理を行う。これをデステージ(Destage)という。勿論、スナップショット(vSnap)やクローン(vClone)も非同期で取ることが可能だ。このようなことから、vLogや上位のvSpaceはSSDが望ましい。 

=これからどうなるのだろう=
Virstoは、2010年初めのWindows Server版に続き、2012年初頭、vSphere対応製品を出荷した。Virstoの採用によって、VMのI/Oは大幅に改善されると言う。VMwareが同社を買収した理由はここにある。仮想化技術は成熟したが、この技術が適用できれば新たな差別化となる。そしてVMwareは約束通り、Virsto製品をVMware Virsto 2.2として販売を継続させた。しかし、それも昨年末で中止となった。そろそろVMware製品への正式統合が近そうだ。
以上見てきたように、EMC ViPRとVMware Virstoは共にストレージハイパーバイザーである。しかし、その立ち位置は違う。ViPRはまず、自社内ストレージシステムの共用プール化を進め、そして他社製品の取り込みも目指す。しかし、これはある種の囲い込みであって、同社による他社ストレージ向けConnector Plugin開発はそう容易なことではない。またViPRが完成すれば、これを適用した次世代Atomosの登場も予想される。一方、VirstoはVMセントリックである。最上位のVMから攻めるVirsto、下のストレージから攻めるViPR、これなら完全に技術としても、製品としても補完する。さすがの戦略と言えそうだ。