特別企画

コンパクトな筐体で高性能と大容量を実現する新世代のハイブリッド型ストレージ「Nimble Storage」

OpenStack基盤のストレージとしてNimble Storageをいち早く採用したヤフーにも取材

 近年では、フラッシュ技術を採用したストレージシステムが続々と登場している。このようなストレージ(筐体タイプ)には、HDDとフラッシュメモリを組み合わせたハイブリッド型ストレージと、データ領域としてフラッシュメモリのみを搭載したオールフラッシュストレージがある。

 性能を徹底的に重視する場面ではオールフラッシュストレージが適しているが、大容量を実現しようとするとコストがかかりすぎる。高性能、大容量、低コストという3つの要件をバランスよく満たしたければ、ハイブリッド型ストレージのほうが現時点では有利だ。

 今回取り上げる米Nimble Storageの「Nimble Storage」は、独自のアーキテクチャによってハイブリッド型ストレージとしての完成度を一段と高めた製品である。ここでは、Nimble Storageの心臓部となる高速化技術「CASL」について解説するとともに、自社のOpenStack基盤にNimble Storageを採用したヤフー株式会社にも取材協力を依頼し、Nimble Storageの強みをユーザー目線から語っていただいた。

Nimble Storage CSシリーズ

優れた性能と大容量を低コストで実現するハイブリッド型ストレージ

 従来型のアーキテクチャを採用したディスクストレージは、HDDの種類と台数、そしてRAIDレベルの組み合わせによってストレージ全体の性能を調整する。例えば、IOPS(単位時間あたりのI/O回数)を追求する場合には、回転速度が高速なFCドライブもしくはSASドライブをできる限り多く搭載することで厳しい性能要件を満たしている。

 しかし、このような高速化のアプローチでは、ストレージ筐体が大型化してラックスペースや消費電力を増加させたり、ドライブ故障率を増長させる原因となりかねない。また、必要以上のディスク容量が搭載されることで、投資の無駄にもつながる。

 近年、こうしたディスクストレージの問題を解消する救世主として、フラッシュメモリを搭載した新世代のストレージシステムが登場している。このようなストレージ製品には、サーバー本体に内蔵するPCI Expressカードタイプと従来のストレージと同様に外部接続する筐体タイプがあるが、今回はとりわけ後者に焦点をあてよう。

 そして、この後者の筐体タイプも、HDDとフラッシュメモリを組み合わせたハイブリッド型ストレージと、データ領域としてフラッシュメモリ(通常はSSD)のみを搭載したオールフラッシュストレージに細分化される。オールフラッシュストレージは性能を徹底的に求める用途に適しているが、大容量を同時に実現しようとすると、現時点では極めて高額になる。このため、幅広い用途に適合する優れた性能と大容量を低コストで両立させるのであれば、ハイブリッド型ストレージのほうが有利だ。

 ハイブリッド型ストレージは、大容量のデータ領域を提供するHDDに加え、超高速のフラッシュ領域としてPCI Expressカード型のフラッシュメモリやSSDをさらに搭載している。記憶階層の考え方に従えば、利用頻度の高いデータを高速フラッシュ領域に、利用頻度の低いデータをHDD領域に配置すればよい。現在発売されているハイブリッド型ストレージの多くは、おおむねそのような使い分け方がなされている。

 ただし、フラッシュメモリとHDDは、アクセスパターンによって性能特性が異なるだけでなく、書き換えに対する耐久性や容量あたりの単価など、それぞれに長所と短所を併せ持つ。だからこそ、高速・低速というおおざっぱな区分けで使い分けるのではなく、もっと幅広い視点で両者の特徴をとらえ、それぞれの長所を最大限に引き出すことが重要だ。

 そして、そのような緻密な計算のもとに作り上げられたハイブリッド型ストレージが、Nimble Storage社の「Nimble Storage」である。Nimble Storage社は、2008年に米国カリフォルニア州で設立されたエンタープライズ向けストレージ専業ベンダーで、2010年からストレージ製品(Nimble Storage CSシリーズ)の出荷を開始している。

多くのベンダーが採用しているハイブリッド型ストレージの基本設計(出典:Nimble Storage社 技術解説ビデオ「Nimble Storage CASL Architecture Technical Deep Dive」より抜粋)。この図を見ても分かるように、ハイブリッド型ストレージの多くは、フラッシュメモリをフロントエンドに据え、読み書き双方を同時にさばいている。高速なアクセスが保証される一方で、フラッシュメモリへのダメージも大きく、それに対処する目的から耐久性に優れたフラッシュメモリを搭載したり、RAID構成にしてデータ保護を行う必要が出てくる。Nimble Storageは、そのようなフラッシュの実装にNoを突きつけた

シーケンシャルアクセスであれば実用的な性能が得られるHDD の特性に注目

 Nimble Storageは、高性能と大容量を単純に両立させているだけでなく、それを最小3Uサイズという省スペースの筐体で実現している。こうしたNimble Storageならではの独自性を支えているのがCASL(Cache Accelerated Sequential Layout)である。

 ハイブリッド型ストレージの多くは、読み出し/書き込み、ランダム/シーケンシャルを問わず、HDDへのアクセスを最小限に抑え、フラッシュメモリへのアクセスに振り向けるようなアーキテクチャを採用している。これに対し、Nimble Storageは、フラッシュメモリとHDDの両方に対して積極的にアクセスするという独特の考え方を持つ。

 フラッシュメモリは、どのようなアクセスパターンでも優れた性能を発揮する反面、容量あたりの単価が高く、書き換え回数にも大きな制約がある。一方のHDDは、容量あたりの単価が安く、書き換え回数にもほぼ制約はない(磁気記録の原理からすれば半永久的)。しかも、シーケンシャルアクセスであればそれなりに高い性能を期待できる。

 そもそもHDDが低速といわれるゆえんは、ディスクとヘッドを組み合わせた機械的な構造にある。ディスク上に分散した小ブロックのデータを読み書きするランダムアクセスは、シーク動作や回転待ちによるレイテンシが頻繁に発生し、アクセス性能の劇的な低下を招く。しかし、連続的に並ぶ大きなブロックを順次読み書きしていくシーケンシャルアクセスであれば、機械的動作によるレイテンシを最小化に抑えられるため、結果的にHDDでも実用的な性能が得られるのだ。

 CASLは、こうしたHDDならではのメリットもきちんと踏まえながら設計されている。具体的には、インライン圧縮とデータ配列技術の組み合わせによって、フラッシュメモリとHDDがそれぞれ得意とするアクセスパターンを引き出している。

 Nimble Storage社は、CASLを「特許技術」としてアピールしている。興味本位で米国の特許を調査してみたところ、「Flash memory cache for data storage device」(公告番号US8285918 B2、公開日 2012年10月9日)を筆頭に、計5件の特許が見つかった。これらは、CASLを支える基礎技術に関するものがほとんどだ。インターネット上でも入手可能なので、興味のある方はぜひ参考にしていただきたい。

Nimble Storageの内部アーキテクチャ(出典:Nimble Storage社 技術解説ビデオより抜粋)。フロントエンドで受け取ったデータブロックをインラインで圧縮し、さらにこれらのブロックを一列に並べてシリアル化する。これにより、HDDが得意とするシーケンシャルアクセスで読み書き可能な形を作り上げている。また、SSDからなる高速フラッシュ領域は、メモリセルへのダメージが少ないリード専用キャッシュとして用いられる

フラッシュメモリとHDDがそれぞれ得意とするアクセスパターンを引き出す

 書き込み動作では、フロントエンドに据えたNVRAM(不揮発性メモリ領域)にデータを書き込み、可変サイズブロックによるインライン圧縮を行いながら、その配下にあるDRAM領域へと圧縮済みのデータブロックを次々と送り込んでいく。

 Nimble Storageは、アクティブ・スタンバイによるデュアルコントローラ構成をとっており、アクティブ側コントローラのNVRAMに書き込まれたデータは、スタンバイ側コントローラのNVRAMにも速やかにコピーされる。

 NVRAMに関する仕様は公表されていないが、DRAM領域より上位のレイヤに位置付けられること、またNimble Storage社が提供する技術解説ビデオにおいて、NVRAMのサイズが1GB(旧モデルに関する情報であり、現行モデルはそれより大きいと思われる)と説明されていることを考えると、スーパーキャパシタを搭載して不揮発性を持たせた(おそらくより高速な)DRAMだと推察される。

 インライン圧縮には、適度な圧縮率と高速処理を両立するLZ4アルゴリズムを採用し、元データに対して平均30~70%のデータ削減効果を発揮する。マルチコアプロセッサの処理能力を最大限に活用することで、DRAM領域が持つ帯域幅をきちんと使い切れるように圧縮や解凍のスループットが設定されているという。

 DRAM領域に書き込まれた圧縮済みのデータブロック群は、4.5MBのストライプとして1つに束ねられ、配下にある大容量の3.5インチSATA HDDへと書き込まれる。このように大きなブロックサイズへと配列し直すことで、SATA HDDへの書き込みがほぼ理想的なシーケンシャルアクセスとなる。この結果、アクセス性能を損なうことなく、大容量・低コストというSATA HDDならではのメリットも同時に引き出せるわけだ。なお、SATA HDD群は、すべての重要なデータが保管される領域となることから、極めて堅牢な三重パリティによるトリプルパリティRAIDが採用されている。

 そして、SATA HDDへの書き込みと並行し、特にアクセス頻度の高いデータ(キャッシュする価値のあるデータ)やメタデータについては、2.5インチSSD(比較的安価なMLCタイプ)からなる高速フラッシュ領域へと書き込まれる。

 この高速フラッシュ領域は、キャッシュされるデータを書き込んではいるものの、フラッシュメモリの書き換えブロックサイズを考慮し、最小限の書き込み回数に抑えている。また、読み出しに特化したキャッシュとして用いることで、書き換えの耐久性が低いMLCタイプでも十分な信頼性を確保している。さらには、SSD群に対するRAIDをあえて採用せず、これによってRAID処理を起因とする性能や容量面でのオーバーヘッドも回避している。

 書き込み動作は以上のような流れとなるが、一方の読み出し動作は、NVRAM、DRAM領域、高速フラッシュ領域(SSD)、SATA HDDの順番で読み出したいデータがあるかどうかを次々とチェックしていく。高速フラッシュ領域だけでも95%以上のキャッシュヒット率を達成しているため、ほとんどのデータはNVRAMから高速フラッシュ領域の中に配置されていることになる。運悪くこれらの高速領域から見つからなかった場合にだけSATA HDDから読み出される。また、SATA HDDから読み出されたデータのうち、キャッシュに適したものは高速フラッシュ領域にも転送される。

Nimble Storageを支えるデータ処理の仕組み(出典:Nimble Storage社 技術解説ビデオより抜粋)。NVRAM(不揮発性メモリ領域)がデータアクセスのフロントエンドとなり、インライン圧縮やシリアル化が行われたデータはDRAM領域に保管される。シリアル化されたすべてのデータがSATA HDDに、そのうちキャッシュする価値のあるデータのみが高速フラッシュ領域(SSD)に送り込まれる

スケールアップとスケールアウト双方の拡張スタイルで幅広い要件に応える

 Nimble Storageは、ストレージの実効容量やターゲットとする処理能力の違いによって、ローエンドモデル(CS210/CS215)、ミッドレンジモデル(CS300)、ハイエンドモデル(CS500/CS700)が取りそろえられている。サーバー群との接続インターフェイスは、Gigabit Ethernet(iSCSI)もしくは10Gigabit Ethernet(iSCSI)、16Gbps Fibre Channelから選択可能だ。つまり、ストレージプロトコルとしてiSCSIとFCPのみをサポートする、純然たるブロックストレージという位置付けにある。

 Nimble Storageの筐体は、すべてのモデルにおいて3Uサイズで共通化されている。筐体内には最大16台のドライブを収容でき、ドライブがフルに搭載された構成では12台がSATA HDD、4台がSSDとして割り当てられる。

 また、SASポート経由で外部に接続できる拡張筐体として、容量を増やすHDD拡張シェルフ(ES1-H)と、キャッシュヒット率を高めるキャッシュ拡張シェルフ(ES1-AFS)がそれぞれ用意されている。またコントローラをアップグレードすることにより、性能を向上することもできる。これらの拡張機能を活用することで、容量と性能の両面でスケールアップを図れる。さらには、最大4セットのNimble Storageを束ねてクラスタ構成もとれることから、スケールアウト型の拡張スタイルにも対応可能だ。

 こうしたスケールアップとスケールアウト双方でのシステム拡張を通じて、他社であればまったく異なる製品ラインを選ばなければならないような、リアルタイム(に近い)分析システム、データベース、仮想化基盤といった性能重視の用途からバックアップやアーカイブといった容量重視の用途まで、極めて幅広い要件に応えられる。

Nimble Storageの充実した拡張スタイル(出典:Nimble Storage社 技術解説ビデオより抜粋)。あらかじめ選択される製品グレードでベースラインの性能と容量が決まり、そこにHDD拡張シェルフを追加すれば容量を拡張でき、キャッシュ拡張シェルフを追加すれば性能を強化できる。また、データ移行を行うことなく、FRU(現場交換可能ユニット)として上位グレードのコントローラにも交換可能だ。さらに、最高4ノードのクラスタ構成にも対応し、スケールアウト型の拡張スタイルもとることができる

自社のOpenStack基盤にNimble Storageを取り入れたヤフー株式会社

 日本最大級のポータルサイト「Yahoo! JAPAN」を運営しているヤフー株式会社(以下、ヤフー)は、Nimble Storageを本格的に取り入れている代表的な国内企業である。

 同社は、これまで以上に高い俊敏性と柔軟性を備えたインフラを実現し、同時に日々拡大を続けるインフラの運用管理を効率化していく目的から、2013年8月にOpenStack基盤を構築している。Nimble Storageは、このOpenStack基盤を支えるストレージとして新たに採用されたものだ。

 既存のOpenStack基盤では、他社のスケールアウト型ストレージを組み合わせているが、規模の拡大とともにストレージシステムが数十セットにまで増え、ストレージシステムの管理負荷が新たな課題として浮上していた。

 システム統括本部 サイトオペレーション本部 インフラ技術1部 ストレージ リーダーの篠原純哉氏は、「既存のストレージシステムは、クラスタを構成するコントローラ群に1台ずつログインし、個別に設定変更を行う形がとられます。さすがに数十セットまで膨れあがると、そのような作業はかなりの負担になります。当社には、OpenStack基盤のストレージも含めれば数百セットものストレージシステムがありますから、ストレージにかかわる運用負荷をこれ以上増やすわけにはいかなかったのです」と説明する。

 また、既存のストレージシステムは、多数のディスクドライブに頼ってアクセス性能を確保するアーキテクチャを採用していた関係から、コントローラやディスクシェルフの設置スペースがかなり大きい。このため、コンピュートノードとなる物理サーバーとストレージシステムを同一のラックに混在させることが難しく、同社のOpenStack基盤でもサーバー用ラックとストレージ用ラックを分けて運用している。しかし、このようなラックの配置が、システムの柔軟な増設・撤去を阻害する原因にもなっていた。

ヤフー株式会社 システム統括本部 サイトオペレーション本部 インフラ技術1部 ストレージ リーダーの篠原純哉氏

Nimble Storage本社との協業で作り上げられたOpenStack専用ドライバー

 ヤフーは、データセンター全体のライフサイクル管理をさらに強化する目的から、ラックスペースを消費しないコンパクトなストレージシステムを探し始めた。その際には、OpenStack Block Storage(開発コード名:Cinder)に対応した専用ドライバーが提供されていることも必須の条件とした。そこで出会ったのがNimble Storageだった。

 同社は、ストレージ製品を選定する際に、ベンダーが提供するOpenStack専用ドライバーのプログラムコードもチェックしている。システム統括本部 サイトオペレーション本部 インフラ技術1部 部長の伊藤拓矢氏は、「OpenStackの世界では、ベンダーが作成したコードを誰もが閲覧できます。このため、コードをきちんとレビューすれば、ベンダー自身の思想やエンジニアのスキルレベルもすぐに分かります。今回は、Nimble Storageの導入にあたって、本社の技術スタッフとも実際に対面し、当社のレビュー結果に基づいたドライバーの改善要求なども積極的に行っています」と述べている。

 ヤフーは、2014年8月にOpenStack基盤を支える新たなストレージとしてNimble Storageの運用を開始している。その後、Nimble Storageの増設も順調に進み、2015年2月時点では、HDD拡張シェルフを備えたNimble Storage CS700とNimble Storage CS300の両機種がサービスインを果たしている。

 Nimble Storageを組み合わせたOpenStack基盤は、主に開発環境と社内サービス向けのプロダクション環境で活用されている。また、OpenStack基盤の運用監視にかかわる可視化ツール(Graphite)向けとして、5万以上に及ぶ全インスタンスのメトリックスDB(40~50項目を1分間隔で取得)をNimble Storage上に蓄積している。

 同社は、Nimble Storageの導入を決めた当初から、本社の技術スタッフとOpenStack専用ドライバーの開発に関して協業を重ねてきた。昨秋には、Nimble Storageが備えているストレージ機能をさらに活用できるようなドライバーの改善要求も伝えている。そのひとつが、OSイメージの高速コピー機能である。

 伊藤氏は、「OpenStack Image(開発コード名:Glance)が持つ機能の一部もNimble Storage側にオフロードするように改良してもらいました。こうすることで、データコピーがNimble Storageの中で完結され、データのコピー中に過大なネットワークトラフィックが発生しなくなります。ひな形となるOSイメージから20~30秒で500以上のインスタンスを立ち上げられますので、スピード感を強く求める当社のOpenStack基盤では特に大きな効果をもたらしています」と説明する。

ヤフー株式会社 システム統括本部 サイトオペレーション本部 インフラ技術1部 部長の伊藤拓矢氏

コンパクトなストレージ筐体を生かしてラック1台で最小構成単位を実現

 ヤフーは、日常的なストレージの運用管理に、Nimble Storage社が提供するクラウド型の分析・管理ソリューション「Nimble Storage InfoSight」も活用している。

 InfoSightでは、世界中に設置されているNimble Storageの稼働データを5分間隔で取得し、クラウド上のInfoSightサーバーへと転送している。個々のNimble StorageからInfoSightサーバーへと稼働データを定期的に送ることで、ストレージ本体のハートビート(正常に動作していることを示す心臓の鼓動に相当するもの)も兼ねている。

 InfoSightサーバーに収集されたデータ群は、独自の統計・予測アルゴリズムに基づいて高度な分析が行われ、顧客ごとのレポートやアラートが提供される。これにより、システムの一部で故障が予測される場面や、性能・容量の増強が必要とされる場面をいち早く察知でき、ストレージのライフサイクル全体でプロアクティブな管理体制が実現される。

 同社は、InfoSightでストレージ環境の性能や容量の推移を監視しているほか、システム増強と故障の予兆通知、OSバージョンアップやリリースノートのチェックなどにもInfoSightを役立てている。

 システム統括本部 サイトオペレーション本部 インフラ技術1部 ストレージの小林慶太氏は、「中長期的には、日本中のお客さまに使っていただくサービス向けのプロダクション環境など、さらにクリティカルな用途でもNimble Storageの活用を検討しています。このように用途が広がってくれば、InfoSightが持つ多様な機能をもっと生かせるようになるはずです。例えば、InfoSightのレポート機能を用いて問題の切り分けや原因究明を迅速に行ったり、ストレージ本体へのリモートログイン機能を通じて、Nimble Storage社に遠隔サポートを依頼することも可能です」と語る。

 同社は、Nimble Storageを活用してラック内のハードウェア配置もさらに最適化していく計画である。省スペースと省電力を実現したNimble Storageなら、1台のラックに物理サーバーとストレージシステムを共存させやすく、OpenStack基盤のシステム構成単位(ポッド)がラック1台で完結する。

 篠原氏は、「当社では、Nimble Storageを組み合わせたラック1台分のポッドで、1,000インスタンス以上が収容される形を目指しています。データセンター内で稼働するさまざまなシステム基盤は、立ち上げが容易なだけでなく、老朽化してから迅速に撤去できることも重要です。ラック1台でポッドが構成されれば、OpenStack基盤でもラック単位での増設と撤去が可能になります」と説明する。

ヤフー株式会社 システム統括本部 サイトオペレーション本部 インフラ技術1部 ストレージの小林慶太氏

****

 同社は、Nimble Storageを新たな武器としながら、OpenStack基盤の俊敏性と柔軟性、さらにはデータセンター全体の運用効率をさらに高めていく意向である。Nimble Storageは、登場して間もない新興のストレージ製品だが、ヤフーの導入事例を見ても分かるように、OpenStackのような『花形』の分野でも採用が進んでいる。競合がひしめくハイブリッド型ストレージの世界で、Nimble Storageがこれからどのような躍進を遂げていくのかとても興味深い。

伊勢 雅英