コメントメモリベースのストレージですか? はい、ぜひ。ここで私が言っているのはフラッシュメモリのことではありません。少なくとも、私たちが通常フラッシュを使用するような意味でのフラッシュメモリのことではありません。
以前、インメモリストレージは理にかなっていると書きました。今では理にかなっているだけでなく、もはや必須のものになりつつあります。大容量メモリを活用するアプリケーションの数は、特にビッグデータ分析やHPC分野、そしてCPUにできるだけ近い場所で大量のデータを扱う必要があるあらゆるケースにおいて、爆発的に増加しています。
はい、記憶力はありますが、すべての人に当てはまるわけではありません
あらゆるアプリケーションはメモリ容量を増やすことでメリットを得られると言えるかもしれませんが、必ずしもそうとは限りません。アプリケーションによっては、利用可能なメモリをすべて活用するように設計されていないものや、アルゴリズムの性質上、メモリを必要としないものもあります。
スケールアウト型分散アプリケーションは、大容量メモリサーバーのメリットを最も享受できます。この場合、ローカルでアクセス可能なメモリが多いほど、リモートの低速リソース(別のノードや共有ストレージなど)へのアクセスの必要性が低くなります。
妥協
RAMは高速ですが、安くはありません。アクセス速度はナノ秒単位で測定されますが、GB単位ではなくTB単位で考えると、非常に高価です。
一方、フラッシュメモリ(NAND)はマイクロ秒単位のレイテンシをもたらしますが、はるかに安価です。しかし、もう一つ落とし穴があります。それは、不適切なインターフェースで使用すると、さらに速度が低下し、予測不能になる可能性があることです。
Intelは、フラッシュメモリよりも優れた性能、永続性、そして価格競争力(フラッシュメモリとRAMの間)を備えた新しい不揮発性ストレージ「3D Xpointメモリ」を近々投入すると約束しています。しかし、まだその段階には至っていません。
いずれにせよ、このゲーム全体は妥協の上に成り立っています。妥当なコストで100%のRAMを実現することは不可能であり、RAMを永続的なストレージデバイスとして使用することもできません。特に一時的なストレージを扱う場合、この種のシステムを実装するには、設計上の考慮事項がいくつかあります。
最先端のソリューション
ここでは、Diablo Technologies Memory1 と PlexiStor SDM という 2 つの例を挙げます。
一つ目はハードウェアソリューション、つまりNANDチップを使用したDIMMメモリです。外見は通常のDIMMと似ていますが、速度が遅いという点では変わりません。しかし、CPUに可能な限り近いDIMMであることに変わりはありません。
特別なLinuxドライバを使用し、スマートな階層化メカニズムによって、実際のRAMと「擬似」RAM間の速度差を緩和します。上の表ではできる限り簡略化を図りましたが、このオブジェクトの背後にある技術は非常に高度で(詳しくはSFDのビデオをご覧ください)、非常にうまく機能します。ベンチマークは驚異的で、より少ないサーバーで同じジョブをより短時間で実行することで、信じられないほどの節約効果も得られます。
PexiStorも同様のコンセプトを持っていますが、ソフトウェアソリューションとして実装されています。NVMe(またはそれより低速)デバイスはRAMとして認識されます。
繰り返しになりますが、これは簡略化した説明ですが、アイデアは伝わると思います。パフォーマンスは非常に良好で、全体的なコストはDiabloよりも低くなっています。これはソフトウェアのみなので、例えばAWSのフラッシュベースのEC2インスタンスで実行できます。そしてもう一つ良い点は、ソフトウェアが現時点では無料であることです。残念なのは、製品の成熟度が低いことです。しかし、Plexistorのコンセプトは非常に魅力的なので、今後も注目していきたいと思います。
洗練度、成熟度、パフォーマンスの予測可能性のレベルから見ると、これら 2 つの製品が現時点では 2 つの異なるタイプのエンド ユーザーをターゲットにしていることは明らかですが、私の観点からはどちらも同様に興味深いものです。
残りの我々はどうですか?
大容量メモリサーバーは、フラッシュメモリが途方もなく高価だった時代に、従来型ストレージへのアクセスを高速化するためのポイントソリューションとして始まりました。現在では、大容量ストレージシステム(スケールアウトNASやオブジェクトストレージなど)において、同様の機能を実現することが非常に興味深い機能になりつつあります。
すべてのアプリケーションが大容量メモリ サーバーを利用できるわけではないため、キャッシュは依然として適切なオプションです。
効率は劣りますが、上記と同様のメリットがあり、実装も容易でコストも抑えられます。例えば、IntelのCASソフトウェアをご覧ください。Intel製フラッシュドライブに無料で付属しており、非常に優れた機能を備えています。Intelが前回のTech Field Dayで示した、CASとCephを組み合わせた使用法に関するベンチマークは非常に印象的です。
円を閉じる
データの増加は管理が難しいですが、これらのソリューションは、少ないリソースでより多くのことを実現するのに非常に役立ちます。データをCPUに近づけることは、これまでも常に重要でしたが、少なくとも以下の3つの理由から、これまで以上に重要になっています。
- CPU はますます強力になってきており (先週発表された最新の最高クラスの Intel Broadwell CPU は、最大 22 個のコアと 55 MB のキャッシュを備えています)、これらのコアに常に最高速度で電力を供給したいとお考えではないでしょうか。
- 容量は他の何よりも急速に増加します。GBあたりのコストが低いことは必須であり、オールフラッシュシステムをあらゆる用途に使用できるわけではありません。実際、状況は全く逆です。フラッシュが現在のあらゆるプライマリデータニーズの解決に適しているとすれば、膨大なデータを扱うワークロードは依然として他の(低速な)ストレージ形式に依存しているのも事実です。繰り返しになりますが、多層ストレージ(HDD、フラッシュ、RAM、管理すべきホップ数が多すぎる)は十分な効率性を備えていません。むしろ、(比較的)非常に安価で超高速なローカルメモリの方が優れています。
- 1と2の結果として、大規模なオブジェクトストアとコンピューティングクラスターを、マルチクラウドまたはハイブリッドクラウド形式で一定の距離を置いて配置することが一般的になっています(例えば、Avereで何ができるかをご覧ください)。このシナリオではネットワークレイテンシが避けられないため、データをCPUに近づける手段が必要になります。ここでも、キャッシュとエフェメラルストレージが現時点で最適なテクノロジーです。®