2014年5月27日火曜日

VMセントリックストレージのTintri!       -SDS10-


Tintriの設立は2008年。Tintriとはアイルランド語で稲妻(いなずま)、まさにFlashを意味する。同社はSSDとHDDを使ったティアリングのVMセントリックストレージを開発した。Tintri CTOで共同設立者、そして初代CEOでもあったKieran Harty氏はEVPとしてVMwareのエンジニアリングを引っ張ってきた。その彼には、長い間気になっていることがあった。ラックマウントやブレードなどのコンピュータとSAN/NASなどのストレージ間に横たわるギャップについてである。


=VMセントリックなストレージとは何か!VM Aware=
両者は長足の進歩を遂げてきた。しかし、エレクトロニクスのCPU速度と物理的なディスクアクセスには大きな差がある。この差は物理サーバー全盛期にはあまり気にならなかった。しかしVMwareなどのハイパーバイザが登場して、無数の仮想マシン(VM)が1台の物理マシン上で動き出すと問題は顕在化した。こうなればVMセントリックなストレージを開発する以外に道は無い。彼は疑わなかった。沢山のVMの中にはI/O要求が極端に多いもの、そうでないものがある。特定のVMのI/Oに引きずられるとストレージI/O性能の波が安定しない。これを解決するにはハイパーバイザから得られる情報を使い、それをもとにVMのI/O動作を分析・制御する。ストレージにはHDDFlash SDDを組み合わせてハイブリッドとし、徹底した低価格化を実現する。これがVMに目覚めたストレージのVM Awareというコンセプトとなった。

=支えるソフトウェア、Tintri OS=
VM Awareを具現化する道具は2つ。ソフトウェアとハードウェアだ。
そのソフトウェアの柱がTintri OSである。ストレージがVMの動きを理解し、能動的に環境にフィットさせる。そのためにVMware ESXiとAPIでネイティブに接続する。これによって仮想化構成要素のすべてが可視化され、変化の兆しを迅速に把握して、VM単位の性能予約へ結びつける。後はルールに従って自動的に実行するだけだ。勿論、この過程でVMの履歴を管理し、これも性能予約に反映させる。こうしてVM毎に必要な性能を確保することで円滑な実行が保証される。Tintri OSの構造(下図)はフロントエンドとバックエンドからなる。フロントエンドにはNFSなどのプロトコルMgrとリソースパフォーマンスマネージメント(RPM)がある。Tintri OSはESXiと高速接続されたストレージの性能を最大限に引き出すために、このRPMに並行処理のレーンを用意。VMからの個々のI/O要求はこのレーンに割り当てられ、重複排除(Deduplication)とデータ圧縮(Compress)が同時並行的に行われる。これによって本来のデータは大幅に圧縮されて、ストレージのROIを大きく改善する。バックエンドは“Tintri Hybrid Filesystem”として、ホットデータのSSDとコールドのHDDを制御し、さらにVM単位のスナップショットやクローンなどの諸機能を実行する。

=コントローラはどうか=
TintriのVMセントリックストレージは、これまで述べてきたように大きくソフトウェアに依存している。一方、ハードウェアの方は市販品に徹しているようだ。勿論、SSDもHDDも市販品。SSDの前に1次キャッシュとして不揮発性メモリーのNVRAMを内臓している。サーバーからの書き出し“Write”要求は、このNVRAMにデータを書き込めばすぐにOKを返す。なぜならNVRAMは電源が落ちても消えないからだ。後は非同期でSSDに書き出す。通常のハイブリッドではSSDでのヒット率は読み書き平均で40~50%だが、Tintriの場合はこの2段階キャッシュのお陰で99%のヒットが得られるという。同社はコントローラについて詳細情報を開示していないが、想像するに特別なものではないらしい。冗長度対応はどうなっているのだろう。同社によると出荷時の設定はデフォルトでRAID6、そしてTintriの1筐体が1ボリューム、1LUNとなっている。これによって、これまでのストレージ管理の煩わしさはなく、VMから見ると必要なサイズのみが重要となる。

=最大のウリはコストパフォーマンスだ!=
Back View of T600 Series
同社のウリは何と言ってもコストパフォーマンスである。狙いは既設のHDDアレイをTintriでリプレースすることだ。VMセントリックの使い勝手を武器に費用対効果で市場開発を進める。現在、リリースされている製品は3つ。 下位モデルのT620は総容量19.44TB (6x 240 GB SSD + 18x 1 TB HDD)、中位のT540は同26.4 TB (8x 300 GB SSD + 8 x 3 TB HDD)、最上位機のT650は同 9.32 TB (9x 480 GB SSD + 15x 3 TB HDD)となっている。Tintriは現在、ハイパーバイザとしてVMwareのみをサポートしているが、KVMについてはここ2ヶ月以内、Hyper-Vについても今年下半期にはリリースされる予定だと聞く。

2014年5月12日月曜日

Flashストレージへの期待!              -SDS9-

SDS(Software-Defined Storage)を議論する際の論点は初回で述べた。 
今回はストレージの高速化について述べようと思う。これには幾つかの視点がある。
まずクラウド利用か否かは別として、ストレージそのものの高速化がある。もうひとつはクラウドでの対応だ。後者は次回以降に回すとして、今回は前者の代表的な技術Flash SSDについて触れてみようと思う。このコア技術であるFlash Memoryは東芝に在籍していた舛岡富士雄氏が発明(NOR:1980年、NAND:1986年)したものである。 

=ムーアの法則 .vs. ニュートンの法則= 
Source: Wikipedia
MPUの進化がMoore’s Lawに準じているという話は有名だが、HDDはディスク回転やアーム移動などの可動部改良が鍵となることからNewton’s Lawに従っているようだという説がある。周知のようにIntelのMPU開発は1971年に始まった。ビジコンから派遣された嶋正利氏とIntelチームが開発したIntel 4004である。1978年には現在の原型となる8086が登場し、DOS用80286(1982)、Windows用386(1985)が生まれ、その後Pentiumへ、さらにRISCや64ビット化、マルチコア化を取り込んで現在に至っている。
翻って、ストレージの進展はどうであろうか。
ストレージの代表格HDDは、MPUがIntelの開発史であったようにIBMから始まった。最初に登場したのはIBM 3501956年のことである。IBM 350は表面が100トラックの24インチディスク50枚からなり、記憶容量は4.8メガバイト。その後、中型商用コンピュータ(IBM 1401)向けにIBM 1405(1960)が登場、ディスクは25枚と50枚の両面使用の2モデルで容量は10MBないし20MB。1973年、System/370用に読み書きアームとディスクが一体となったリムーバブルWinchester DriveIBM 3340が開発された。これはディスクパックのモデルにより容量は35MBないし70MB。こうしてHDDはIBMと共に成長して容量を増やしてきたが、1981年のIBM PCの登場によって大きな変革期へと入った。

=成長から成熟へ=
80年代前半、PCによるコモディティ化でWestern DigitalSeagate Technologyが市場に参入、より一層の小型化、低価格化が進んだ。PC成長の裏側でメインフレームが後退、替わって登場したコモディティ技術のサーバー向けHDDも急成長。この流れは、読み取り精度の向上を目指したThin Film HeadやAMR/GMR Headなどの改良が進んだことで弾みがついた。この時期までNewton's Lawは順調に見えたが、時の流れの中で、HDDの成長は物理的装置であるが故の壁に突き当たる。下図(SNIA)で解るように、今後、まだ面密度(Areal Density)向上の余地は残されているものの、回転数はもうこれ以上あがり難く、よってSeek Timeも速くはならない見通しだ。

Source:SNIA
HDDのコモディティ化がはっきりすると、生みの親のIBMは、2002年、その技術を日立に売却、Hitachi Global Storage Technologies(HGST)となった。同社は激しい競争の中で小型HDDを断念してやっと黒字化。2011年3月、Western Digitalに再売却。同年12月にはSeagate TechnologiesがSamsung ElectronicsのHDD事業部門を買収して2強時代となる。

=Flashの時代へ=
Intel SSD 730
その後、HDD市場は主力の3.5inと2.5inが両輪となって成長したが、スマホとiPadの登場で状況は一変した。これらはSSDではないが同じNAND Flash Memoryを搭載し、その高速性と静音、省電力には目を見張った。以降、HDDと同型で同じSATAなどのインターフェースを持つSSDが次々に製品化され、コンピュータを少し弄った人なら自分でPCのHDDリプレースが可能となった。しかし課題もある。HDDの数倍という価格だ。普及による量産化と技術革新で徐々に下がっているとは言うものの、HDD陣営の追い上げ努力も大きく、激しい競争が続いている。

=Flashをどう使うか=
これまで普及してきた廉価なHDDに対して新たなFlashをどう使うか。
新たなストレージシステムを組み上げる主要コンポーネントは、コントローラ、NANDメモリ(Flash)、キャッシュ用SDRAM 、それにストレージアレイ(HDDないしSDD)。コントローラにはサーバとのインターフェースを担当するフロントエンドポートとストレージ接続を行うバックエンドポート、そしてキャッシュが内臓されている。キャッシュにはSDRAMかFlashが採用され、2層となる場合もある。バックエンドのストレージは廉価なHDDか高速のFlash SSDだ。一般にサーバからのデータ読み込み要求は、まずキャッシュでヒットさせ、ミスヒットの場合はストレージから読み込む。ストレージ書き込みの方法には2つある。サーバからの書き出し要求をキャッシュを通してストレージまでをひとつの流れとする “Write Through”方式。一方、キャッシュまでの書き込みとストレージへの書き出しを非同期で行う“Write  Back”方式がある。これらの制御はすべてコントローラ上のソフトウェアが実行する。どのようなアーキテクチャで、どのようにFlashを位置づけて製品化するかはソフトウェア次第だ。幾つかのパターンを見てみよう。

Server-Attach PCI Flash
まずサーバーサイド利用の“Server-Attach PCI Flash”。これはFlash Memoryを搭載したカードをPCIeなどの標準インターフェースでサーバーに挿し込む。この場合、サーバーに挿入されたFlashは、外付けのHDDやFlash SSDと異って、RAMに準じるポジションとなり、サーバー内部に常にホットデータを保持することが可能となる。一般にメモリーが数GBなのに対し、この内臓型FlashはTB級の容量を持つことができるので、IOPSを大幅に向上させることができる。

Array with Flash Cache
次にHDDアレイの高速化のためにFlashをキャシュとして組み合わせたものが“Array with Flash Cache”。このタイプの製品はHybrid Storageとして多くの製品が出荷されている。歴史的に見ると、まずHDDアレイの高速化としてSDRAMキャシュがコントローラ内に登場し、その拡張やリプレースとして大容量のFlashが採用されてきた。この方式はパフォーマンス改善には非常に効果的でIOPSは確実に1桁改善される。
Array with Flash Tier
さらにFlash SSDとHDDアレイを組み合わせて階層化した製品が“Attach with Flash Tier”。この方式ではフロントはSSDでバックエンドはHDD。ここで良く利用するデータは“Hot”なものとしてフロントに置かれ、頻度の少ないものは“Cold”としてバックとなる。フロントにあったホットデータもアクセス頻度が落ちると自動的にバックに押し出され、逆にバックのデータもアクセス頻度が高くなるとフロントに引き上げられる。

All Flash
そして、今もっとも注目されているのが“All Flash”である。HDDは使わず全てがFlath SSDで構成される。コントローラはHDD転用のものもあるが、より効果的な新設計のものが多い。この専用コントローラと新開発ソフトウェアでFlash SSDアレイの高速化に伴うサーバー間のボトルネックを解消したり、データ圧縮によってHDDとの価格差解消を狙う。今後、さらなる量産化と開発が進めばHDDの置き換えが見えてくる。


=Flashはギャップ解消の切り札!=
これまでHDD市場は過去2桁成長を続けてきたが、2011年(約6億台)が頂点だった。理由はHDDそのものの技術的な壁だけではない。現代は大量コンテンツ時代、そしてBig Data時代だ。このような環境にあって、コンピュータのシステムメモリーとストレージの間には大きなギャップが存在する。実際のところ、プログラム実行時のDRAMアクセスからHDDアクセスに替わったとたん、データ待ち時間が1~2桁遅くなる。この差はボトルネックとなってシステム性能を落してしまう。このギャップを埋める期待がFlashだ。Flashを上手く使えばアクセス時間は大幅に向上し、ユーザのストレスは解消される。こうして、Flashを利用したストレージアーキテクチャ(前述)の見直しが始まった。今後、どのような形に収斂するのか注視したい。