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を利用したストレージアーキテクチャ(前述)の見直しが始まった。今後、どのような形に収斂するのか注視したい。