今回はストレージの高速化について述べようと思う。これには幾つかの視点がある。
まずクラウド利用か否かは別として、ストレージそのものの高速化がある。もうひとつはクラウドでの対応だ。後者は次回以降に回すとして、今回は前者の代表的な技術Flash SSDについて触れてみようと思う。このコア技術であるFlash Memoryは東芝に在籍していた舛岡富士雄氏が発明(NOR:1980年、NAND:1986年)したものである。
=ムーアの法則 .vs. ニュートンの法則=
Source: Wikipedia |
翻って、ストレージの進展はどうであろうか。
ストレージの代表格HDDは、MPUがIntelの開発史であったようにIBMから始まった。最初に登場したのはIBM 350、1956年のことである。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 DigitalやSeagate Technologyが市場に参入、より一層の小型化、低価格化が進んだ。PC成長の裏側でメインフレームが後退、替わって登場したコモディティ技術のサーバー向けHDDも急成長。この流れは、読み取り精度の向上を目指したThin Film HeadやAMR/GMR Headなどの改良が進んだことで弾みがついた。この時期までNewton's Lawは順調に見えたが、時の流れの中で、HDDの成長は物理的装置であるが故の壁に突き当たる。下図(SNIA)で解るように、今後、まだ面密度(Areal Density)向上の余地は残されているものの、回転数はもうこれ以上あがり難く、よってSeek Timeも速くはならない見通しだ。
Source:SNIA |
=Flashの時代へ=
Intel SSD 730 |
=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
◆ Array with Flash Tier
次にHDDアレイの高速化のためにFlashをキャシュとして組み合わせたものが“Array with Flash Cache”。このタイプの製品はHybrid Storageとして多くの製品が出荷されている。歴史的に見ると、まずHDDアレイの高速化としてSDRAMキャシュがコントローラ内に登場し、その拡張やリプレースとして大容量のFlashが採用されてきた。この方式はパフォーマンス改善には非常に効果的でIOPSは確実に1桁改善される。
さらに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を利用したストレージアーキテクチャ(前述)の見直しが始まった。今後、どのような形に収斂するのか注視したい。