コメントスタートアップのPlexistor社のSDMソフトウェアは、キャッシュと階層化技術を用いることで、あらゆるアプリケーションをメモリに近い速度で実行できると言われています。DRAM、NVDIMM-N(メモリ空間に完全にマッピングされ、キャッシュライン単位でアクセスされるバイトアドレス指定可能なフラッシュDIMM)、NVDIMM-F(メモリバス上でブロックアドレス指定可能なフラッシュDIMM)、近々登場するXPoint、そしてSSDに対応するファイルシステムを備えています。
このオープンソースソフトウェアはLinux(Red Hat、CentOS、Ubuntu)上で動作し、メモリ(DRAMまたはNVDIMM-N)とPlexistor社によるフラッシュストレージを統合し、単一の統合メモリアドレス空間を提供します。DRAMとNVDIMM-NはTier 1を提供し、SSD/PCIフラッシュはTier 2を提供します。これはMongoDB、Cassandra、Couchbaseなどのアプリケーションでは依然としてメモリとして認識されます。
第2層は第1層の12.5倍の容量に制限されます。Plexistorは、第2層について「NVMeデバイスが推奨されますが、Linux LVM経由で複数のSSDを集約したり、AFA LUNを使用したりすることも有効な選択肢です」と述べています。
このソフトウェアは、OSとフラッシュメディアのブロック抽象化レイヤーを排除し、DRAM *にデータのコピーを追加することなく、アプリケーションがストレージメディアに直接アクセスできるようにすることで、レイテンシを短縮します。SDMのメモリ空間のフラッシュ部分への書き込みアクセスは、即座に永続化されます。
従来のLinux IOスタック。複雑さを実感してください
Plexistor のホワイト ペーパーには、同社のソフトウェア上で MongoDB を実行することについて次のように書かれています。
Plexistorのソフトウェア定義メモリ(SDM)は、一般的なLinuxオペレーティングシステムのI/Oスタックのオーバーヘッドや、置き換えが迫っている数十年前の従来型ストレージアーキテクチャの制約からMongoDBを解放することで、MongoDBのパフォーマンスを向上します。PlexistorのSDMとNVDIMM-Nメモリカードの革新的なアプローチにより、データの永続性や耐久性を確保するためにMongoDBのパフォーマンスを犠牲にする必要がなくなりました。
Plexistor SDM「IO」スタック
ロードマップ
PlexistorのCTOであるAmit Golander氏は、XPointがもし登場すれば、PlexistorのTier 1メディアとなるだろうと述べました。Tier 2には、NVME over Fabrics接続のオールフラッシュアレイを含めることができます。また、比較的コールドなデータ用のTier 3として、NFSディスクまたはAWSパブリッククラウドも用意されています。自動階層化はPlexistorのSDMデータサービスであり、SDMはNUMAに最適化されています。これらのサービスは拡張中です。
現在、SDM はバージョン 1.71 です。今月末にリリース予定のバージョン 1.8 では、将来の可用性の基盤としてミラーリングが導入されます。
今四半期の最新バージョンでは、ノード間のミラーリングに基づくクラスタ全体の高可用性(スライド11)が導入されます。非同期ミラーリングでは1マイクロ秒のレイテンシが追加され、同期ミラーリングでは3マイクロ秒のレイテンシが追加されます。ノード間の相互接続は100Gbit/sイーサネットで、スイッチはSDMソフトウェアを実行するサーバーと、いわゆる「PMおよびフラッシュブリック」(PMはPersistent Memory **の略)を相互接続します。
プレキシスタ高可用性スキーム
PM Brickは、RDMAアクセスを可能にするダムパッシブブリックで、NVME over Fabricアプライアンスとしてリモートメモリを提供します。Plexistor社は、そのためのプロトコルとライブラリの開発に取り組んでいます。メモリユニットの割り当てと解放のリクエストなどをサポートします。XPointと3D NANDのハイブリッドになる可能性があり、Golander氏によると、2MB単位のチャンクでデータの階層化が可能になるとのこと。
その後、単一の名前空間が続き、どこからでもデータやファイルにアクセスできるようになります。ゴランダー氏は次のように述べています。「レイテンシを抑えるため、コンピューティングとデータを同じノード上に維持したいと考えています。私たちのクラスタリング技術は、データとメタデータの局所性を重視しています。データはローカルノードにあると想定し、予測ミスがあった場合はノード外に移動します。」
バージョン2.0では、スナップショット、クローン、ミラーリングが導入され、Dockerとの統合に関するアイデアも盛り込まれています。強化された単一名前空間は後のバージョンで提供されます。バージョン1.8ではパブリックドメインテストが実施されます。バージョン2.0のミラーリングソフトウェアは、一部の顧客に限定されたテストとなる可能性があります。
Plexistorは、ストレージクラスメモリを提供するためのLinuxソフトウェアの開発を進めています。これは、Fusion-ioが最初に普及させたものの、ソフトウェア製品化には至らず、買収したSanDiskが事実上放棄したコンセプトです。だからこそ、私たちはPlexistorに多大な注目を払っていると言えるでしょう。®
* MongoDBでは、ストレージメディアがメモリよりも桁違いに遅いため、データ書き込みをメモリにバッファリングするWiredTigerと呼ばれるストレージエンジンが採用されています。データの2つ目のコピーは、永続性を確保するためにMongoDBジャーナルに保存されます。Plexistor社は、MongoDBがこれを回避できるように修正すれば、Plexistorが「そのままの状態」で達成している450%よりも19%高速化できると見積もっています。
** Amit Golanderらによる2015年12月10日付の米国特許出願番号14/658264を参照。この特許出願は、ファイルレベルの操作に基づくデータ配置手法について記載している。