オールフラッシュストレージの特性を理解する4つのポイント -2-

ポイント3 NANDフラッシュメモリ独自の「読み書きの性質」を理解する

単にHDDをSSDに置き換えただけではSSDのメリットを享受できず、弊害を引き起こす可能性があると前述しました。この問題は、HDDとSSDの扱うデータの単位に起因します。HDDの多くはセクター(*3)と呼ばれる512バイトの単位でデータを扱います。従来型のストレージはこのセクターサイズを基準にファイルシステムのブロックサイズ(数KB)やRAIDのストライプサイズ(数百KB)を決めていました。

対してSSDは、現在では8KBや16KBのページサイズを読み書きの最小単位とし、書き換え消去には512KBから2MB程度のブロックサイズを最小単位としています。

例えばHDDの時と同じようなRAIDストライプサイズでSSDのRAIDを構成した場合、書き込みの度に全SSDのブロックの消去の処理が重なり、性能は低下し、早期に製品寿命を迎えます。よって、オールフラッシュストレージには、HDDのセクターと比べて大きなSSDのページサイズ、およびブロックサイズを考慮した設計が求められます。

(*3)セクター:磁気ディスクや光ディスクなど、円盤状の記憶装置における最小の記録単位

NANDフラッシュメモリ独自の「読み書きの性質」を考慮して設計されたオールフラッシュストレージは、下記のような仕組みを実装し、SSDのメリットを最大限に活かし、デメリットを克服しています。
・NVRAM,NVDIMM(*4)に書き込みデータをキャッシュ (直接SSDに書かない)
・インラインの重複排除/圧縮(SSDへの書き込み回数を削減)
・NANDフラッシュ、SSDに最適なストライプサイズでの書き込み(NANDブロックの一部書き換えを行わない)
・一度書いたストライプの部分書き換え要求を排除(パリティ再演算を行わない)
・格納されているデータの巡回チェック(読み取りエラーを事前に自動で修正する)

(*4)NVRAM,NVDIMM:NVRAMはSASよりも高速なPCIExpress(PCIe)に接続する不揮発性メモリであり、SSDよりも高速な読み書きを実現している。また、NVDIMMはDRAMを挿すDIMMスロットに接続する不揮発性メモリでPCIe以上に高速な読み書きを実現する。 ともに、キャパシタに蓄えた電荷を用いて隣接するNANDフラッシュメモリにデータを退避させる機能を持ったメモリ(DRAM)。 ストレージアプライアンスの書き込みデータのキャッシュのために多く用いられ、SSDやディスクには非同期にデータを書き込む。また、急な電源断時やフェイルーオーバー時にも書き込みデータを保持して整合性を維持する。

TCO(総所有コスト)削減の観点からも、こうした機能の有無は重要です。MLC/TLCの普及やインライン重複排除技術が、オールフラッシュストレージのエンタープライズ分野での適用を促進しているといっても過言ではありません。

HDDとSDDの単位。HDDとSSDではデータの読み出し/書き込みの内部構造が異なるため、単位も異なる
HDDとSDDの単位。HDDとSSDではデータの読み出し/書き込みの内部構造が異なるため、単位も異なる

ポイント4 仮想化環境に最適化された製品を理解する

最後に仮想環境について見てみましょう。オールフラッシュストレージは、デスクトップ仮想化(VDI)システムのストレージに適しているとよく言われます。デスクトップを一斉にブートするような環境でも、I/O性能が高いので余裕を持って対応できるのです。また、仮想デスクトップ環境は同じようなデータが多いため、重複排除率も高く、容量を削減するとともにフラッシュへのアクセス回数を抑えるというメリットもあります。

しかし、「オールフラッシュストレージだから仮想環境に最適である」とは一概にも言えません。確かに高速なオールフラッシュストレージを使用することによって、全体的な性能の課題は改善できるでしょう。しかし、ある特定の仮想マシンのI/Oで、ほかの仮想マシンが影響をうけるという課題はオールフラッシュストレージでも変わりません。

複数の仮想マシンが存在する環境では、データがランダムアクセスになります。さまざまな仮想マシンが個別にデータのI/Oを発生させ、ストレージに対して断片的なI/O要求になります。

また、ある仮想マシンがバックアップなどの継続的な処理を実行すると、CPU性能もI/O要求もバックアップに取られてしまい、他の仮想マシンのパフォーマンスが低下することもあります。仮想化環境の規模が大きくなるほど、多種多様なアプリケーションが混在し、さまざまなワークロードが発生します。ワークロードには優先度があったとしても、ストレージ側が把握できなければ、来たものから順にI/O処理を行ってしまいます。

あらゆるI/O要求がサーバーからストレージに押し寄せる状況においては、アクセスしてくる個々の仮想マシン(アプリケーション)の読み書き性質を認識し、自動的に最適化するストレージが望まれます。

こうした思想に基づき設計されているのが、Tintriの仮想化専用ストレージ「Tintri VMstore」です。Tintri VMstoreに搭載されているオペレーティングシステムである「Tintri OS」には、仮想マシンごとに、稼働状況に合わせたストレージ性能を自動的に割り当てる機能が搭載されています。また、I/O渋滞を回避するため、各仮想マシンに専用の「データレーン」を用意し、仮想マシン単位で、サーバーやVDIに対して最適なアプリケーションのI/Oを実現しています。これにより、常にシステム全体を安定稼働させることができるのです。

従来型のストレージ(左)はワークロードの優先度に関係なくI/O処理を行うため渋滞が発生する。Tintri(右)は各仮想マシンに専用の「データレーン」が用意されるのでI/O渋滞が発生しない
従来型のストレージ(左)はワークロードの優先度に関係なくI/O処理を行うため渋滞が発生する。Tintri(右)は各仮想マシンに専用の「データレーン」が用意されるのでI/O渋滞が発生しない

※本ページは、『マイナビニュース』へ掲載された記事広告を転載しています。