新春特別企画

2012フラッシュストレージ新時代

皆様、新年あけましておめでとうございます。

gihyo.jp恒例の新年企画「今年の○○はどうなる?」として記事を書く機会をいただきました。お題は「フラッシュメモリ」ということで、その中でも、ここ数年関心が高いコンピュータ用フラッシュメモリの方向性についてご紹介します。

ところで……コイツ誰だ?と思われている方も多いと思います。エンジニアなら知っておきたい仮想マシンの仕組み……とご説明するとおわかりの方もいらっしゃるかもしれません。2011年6月より、フュージョンアイオー株式会社のセールスエンジニアとして、エンタープライズクラスのNANDフラッシュストレージのプリセールスに従事しております。

というわけで、ストレージ業界に足を突っ込んでただ7ヵ月たらずなのですが……、私が見ているNANDフラッシュストレージの最前線についてお話したいと思います。

今回のテーマ
  • PCI ExpressネイティブなNANDフラッシュメモリデバイス
  • キャッシュデバイスとしてのNANDフラッシュメモリ
  • SCSI Express
  • アトミックライト

PCI ExpressネイティブなNANDフラッシュメモリデバイス

ところでPCI ExpressネイティブなNANDフラッシュメモリデバイスがどのように違うのか、皆様ご存じでしょうか?ハードディスクは、主にデータを記憶するためのディスクが搭載されており、磁気ヘッドを使ってデータを読み書きします。これに対して、現在よく見かけるSSD(Solid State Disk)とは、ハードディスクからメカ部分を取り除き、ディスクを不揮発なフラッシュメモリを置き換えることによりシーク時間を削減できるため、I/Oの時間待ちが減るという仕組みになっています。

図1 ハードディスクとSSDの違い
図1 ハードディスクとSSDの違い

SSDは、インターフェースは従来のディスクデバイスを同じもの、つまりSerial ATA(SATA)やSerial Attached SCSI(SAS)を利用しています。しかし、これらのインターフェースは昔ながらのSCSIに由来する古いデザインのため、コンピュータからフラッシュメモリにアクセスするためのインターフェースとしては、必ずしも最適な解ではありません。これらフラッシュメモリにとって⁠足枷⁠となっているインターフェースを使わずに、PCI Expressに接続する、PCI ExpressネイティブなNANDフラッシュメモリデバイスが存在します。

Fusion-ioの製品のアーキテクチャは「システムメモリの次に高速なNANDフラッシュメモリを用意し使い分ける」という考え方が基本思想になっており、これをioMemoryと呼んでいます。このような設計見直しにより、同じNANDフラッシュメモリを使っても、従来のSSDと比べ2~3桁のレイテンシ改善や、何倍ものIOPS/帯域幅の改善が実現できるのです。

図2 ioMemoryの設計思想
図2 ioMemoryの設計思想

キャッシュとしてのNANDフラッシュメモリ

2012年のフラッシュ利用法のトピックとしては、NANDフラッシュメモリをキャッシュデバイスとして利用していくトレンドが非常に高まると感じています。自作PCがお好きな方なら、インテルのZ68チップセットに搭載されたSSD Cachingと呼ばれる機能を耳にしたことがあったり、もしくは使っている方もいるのではないでしょうか?これはデスクトップPCに限らず、エンタープライズシステムでも同じ傾向にあり、今年はフラッシュメモリをキャッシュとして本格的に利用する年になりそうです。

「なぜ高価なフラッシュメモリをキャッシュに使うの??⁠

─なぜなら、NANDフラッシュメモリはシステムメモリとして使われるDRAMと比べ低価格&大容量だからです。

たとえばFusion-ioの場合、VMware ESX環境で利用できるキャッシングソフトウェアioTurbine、およびWindows/Linux用のキャッシュソフトウェアdirectCacheを提供しています。これらのソフトウェアは、オペレーティングシステムによるI/Oを自動的にキャプチャしティアリングするものです。これらのキャッシングの仕組みを利用することで、ハードディスクの容量とフラッシュメモリの高速性を両立できるのです。

図3 ioTurbineのアーキテクチャ
図3 ioTurbineのアーキテクチャ

SCSI Express

さて、PCI ExpressネイティブなNANDフラッシュメモリデバイスが高速だとしても、皆さんご存じのとおり、システムボード上のPCI Expressのスロットには限りがあります。

しかし、PCI Expressバスのスロット数は論理的な制限ではありません。バスにたくさんのデバイスを接続できれば良いのです。そこで今後期待されるのが、SCSI Expressと呼ばれる規格です。SCSI Expressは、従来のSATAやSASと同様、SFFコネクタを通してコンピュータとデバイスを接続します。しかしSCSI Expressは、物理層はそのまま、論理的なインターフェースは新しいものに置き換えることで、デバイスのI/O性能を一気に引き上げるのです。

昨年、インテルがDisplay Portと同じ物理層に別のプロトコルも流せるようにしたThunderboltを発表しましたが、ストレージでも同様の方向性になっていると言えます。

現在、高速なNANDフラッシュメモリ製品といえばPCI Express型というイメージがありますが、SCSI Expressもしくは同様のインターフェースのデバイスが提供されるようになれば、これまでのストレージのように、2.5インチのベイにフラッシュメモリを並べて利用できるようになるでしょう。

アトミックライト

フラッシュメモリはハードディスクと異なる特性をもつため、そのデバイス開発に様々な課題があります。しかし、その特性をうまく活かすと、これまでのハードディスクでは考えられなかったような新アーキテクチャに結びつく可能性をもっています。その一例として、現在進行中の話題であるアトミックライトについて紹介しましょう。

MySQLなどのデータベースミドルウェアでは、データに変更を加える時には変更前のデータと変更後のデータを同時にストレージデバイスを書き込みます。万が一途中で処理が停止した場合には、変更前のデータにロールバックすることでデータの一貫性を保証します。この仕組みをダブルライトと呼びます。しかし、ダブルライトはその名前の通り⁠データを二度書き⁠するため、性能面の影響以外にも書き込み量が増えNANDフラッシュメモリの寿命を縮める仕組みと言えます。

これに対して、アトミックライトは、アプリケーションから要求された書き込み要求をひとつのグループとして書き込みます。アトミックライトで書き込み前後の整合性を保証できれば、ダブルライトのようにデータの二度書きをせずとも一貫性を保証できます。このため、書き込むデータの絶対量が減少し、結果としてNANDフラッシュデバイスのI/Oパフォーマンス向上と長寿命化につながります。

NANDフラッシュメモリデバイスは、ほぼ全てがログファイルシステム風の内部データ構造を用いています。このため、ユーザから見ればランダムライトでも、デバイスはデータをシーケンシャル化して書き込みます。アトミックライトは、ハードディスクと全く異なるフラッシュメモリデバイスの書き込み特性を活かし、書き込みデータにグループ化の情報を同時記録することで機能を実現しています。

図4 アトミックライト
図4 アトミックライト

おわりに

今回は、私が見ている今後のNANDフラッシュメモリの動向についてご紹介しました。今回ご紹介したテクノロジのうち幾つかは2012年中に皆様のお手元に届くと思いますし、もしかすると一部は来年以降のことになるかも知れません。しかし、今年はNANDフラッシュメモリがこれまでのシステムの常識を打ち破る年になると感じています。

2012年もよろしくお願いいたします。

おすすめ記事

記事・ニュース一覧