2014年6月3日火曜日

最高速Flash ArrayならViolin Memoryだ! ーSDS11ー

Flashアレイには2通りある。ひとつはFlash SSDを用いる方法、Tintri既報Pure Storageなどだ。もうひとつはFlashをデバイスとして独自に組み上げる方法だ。一般的には、後者の方がアクセスは早いが価格も高い。Viloin Memory(以下Violin)は後者の方法でハイエンドストレージ市場の開拓を目指している。この分野にはTMSを買収して製品化したIBM FlashSystem 720/820やFlashデバイスを自製するHitachi VSP G1000などがいる。今回はチャレンジャのViloinについて紹介しよう。

=どうすれば早くなるか=
ViolinはDRAM の会社として2005年に設立。2009年に再投資を受けてFlashに転じた。Flashアレイの開発に当たってどうすれば最高速の製品が出来るか。共同設立者でCTOのJon Bennett氏はここが勝負だと考えていた。Flashの長所を活かし、欠点の寿命を改善したい。考え抜いた答えは、アクセスタイムを最小化するファブリック構造と新しいRAID技術だ。そのためにはアーキテクチャを一新し、コンポーネントを自社で設計する。要となるFlashは勿論SSDは使わず、デバイスを本家の東芝から調達して組み上げる。ここまでが初期のストーリーだった。その後、ラッキーなことに東芝の米子会社から投資を受け、共同開発へと進展した。こうして2011年9月、All FlashのViolin 6000シリーズが出来上がった。3Uの筐体には、①独自設計で高速アクセスを可能とするVIMM(後述)のMemory Fabric、②Flashの有効性を高める新たな冗長化技術(vRAID)のArray Controller(Array Control Module-ACM)が2つ、③ACMと対となってMemory Fabricを制御するvRAID Controller(vRAID Controller Module-VCM)が4つ、④Flashストレージ仮想化やLUN構成管理のGateway(Memory Gateway-MG)が2つ、⑤外部インターフェースのFibre ChanneliSCSIInfiniBandPCIeに対応するNetwork Interface(IO Module)が4つ、⑥Power Supplyが2つ収納されている。全てのコンポーネントは2重化され、かつホットスワッパブルの安全設計である。


=最高速を生み出す仕組み-メモリーファブリック=
このシステムは高速アクセスが可能なファブリック構造だと述べた。その要となるのは東芝から技術供与を受けて独自開発したVIMM(Violin Intelligent Memory Modules)だ。VIMMカードの裏表に16のFlashチップとFPGA実装、容量はSLCモデルで最大17.5TB、MLCモデルは最大70TBだ。1筐体に収納されるVIMMは64.うち60が実際のストレージに割り当てられ、残り4は障害時のスワップ用となる。2つのMGとACMを介して4つのVCMが60個のVIMMに並行アクセスする。MGではストレージで通常用いるLUNをFlashに適用し、ユーザはLUN数とサイズを決めれば良い。後はACMが独自冗長技術vRAID(特許取得済み)を自動的に適用する。もう少し補足しよう。ここでMGは実際のところ、OSこそ乗っていないがハードウェア的にはマルチコアのIntel Xeonと大容量メモリーが搭載さ れたブレードサーバーのブレードと同様である。Violin全体を運用管理するvMOS(後述)などのファームウェアは、このMG上と連携するACMで稼働する。次ぐにvRAID。これは同社がFlash専用に開発した冗長度技術だが、通常HDDで使われているRAID1~6とは関係がない。言い換えれば、vRAIDを適用すれば従来のRAID適用は不要となる。右下図ではVCMから5つのパスを使い、うち4つでLUNのデータを分割保存、残り1つで障害時の再生用パリティブロックを書き出す。これらは同時平行処理となる。 もし、パリティブロックの書き出し時にエラーが起こると、VIMM自体がECCCRC、さらに他領域への自動修復を試み、万一、それでもダメな時は4つある予備VIMMにホットスワップされる。これらによってFlash自体の寿命が高められる。ひとつのVIMMに実装されるFlashチップは16、1筐体に64のVIMM、合計1024個のチップが乗る。シャシー内の全てのコンポーネントはシステムレベルのスイッチングレイヤーによってPCIe相当の高速バスで相互接続されている。これら全てが連携しながら高速でメッシュのように動き出す。まさにファブリック、織物のようだ。この構造こそが、最高速を生み出す仕組みである。最上位モデルはViolin 6616(SLC)。容量は17.5TB、処理性能を示すIOPSは1,000K、遅延は~250μs。もうひとつ、MLCベースの最上位機Violin 6264は、70TB、750K IOPS、遅延は~500μsとなっている。 

=vMOSとは何か=
このFlashアレイを効果的に制御するのはvMOS(Violin Memory Operating System)だ。vMOSは前述のようにMGとACM上で稼動し、3つの機能を持つ。まず ①システム管理者向けの“System Operation”では、Flashシステムを管理運営するWebインターフェースやCLI、REST APIを提供。vMOSによって作り出されるダッシュボードではリアルタイムやインターバル設定によって各種情報がビジュアルに掌握できる。これらはモバイルからもチェックが可能だ。システム設定は、初期値を決めれば後は基本的に自動運用となる。次に ②LUN管理とメモリーファブリックの効率的な運用を司る“System Management”。 最後は ③スナップショットやクローンなどを管理する“Data Management”。vMOSはひとつの筐体内を管理し、大規模対応には複数のvMOSを束ねるViolin Symphonyも用意されている。

=ソリューションを追う!=
Violinのビジネスは順調に進み始めた。これからはソリューションの時代だ。製品開発が一段落すると、今度はデータベース分野の掘り起こしが始まった。
WFA(Windows Flash Array) ... 初めの大作業はMicrosoftとの協業だった。今年4月、やっとのことで作業が終わり、MG上にWindows Server 2012 R12を搭載することが出来た。これによってHyper-V上の仮想マシンでSQL Serverが動きだす。こうして世に出たWindows向けFlashアレイWFAはMicrosoftにとってもエンタープライズ向けAzureビジネスに役に立つ。
②SAP Adaptive Server Enterprise ... これに続き、今年5月初めには、SAP Sybase Adaptive Server Enterprise(旧Sybase)の製品認定を取得。
③ OpenStack Cinder ... さらにViolinは5月中旬、OpenStackにコーポレート会員として加盟し、Violin製品をOpenStack Block Storage Cinderと連携させるiSCSIプラグインを提供。これは現在βだが第2四半期中には正式リリースとなる。