Home Enterprise MemVerge メモリ マシンのレビュー

MemVerge メモリ マシンのレビュー

Supermicro sys-2029U-Tn24R4t Memverge プロジェクトのクローズアップ

メモリは常に、驚異的な速度を約束するハードウェアの 3 つのタイプでした。いくつかの欠点があります。高価で、容量が限られており、永続的ではありません (データを維持するには、メモリの電源をオンにする必要があります。メモリは定期的にリフレッシュする必要があるため、さらに問題になります)。 Intel と Micron は、永続メモリへの第一歩となる XNUMXDXPoint テクノロジーを約 XNUMX 年前に発表しました。このテクノロジーはメモリほど高速ではありませんが、フラッシュ ストレージよりもはるかに高速で、コスト効率がはるかに優れています。永続メモリの可能性に着目し、この可能性を実現するために MemVerge が立ち上げられました。

メモリは常に、驚異的な速度を約束するハードウェアの 3 つのタイプでした。いくつかの欠点があります。高価で、容量が限られており、永続的ではありません (データを維持するには、メモリの電源をオンにする必要があります。メモリは定期的にリフレッシュする必要があるため、さらに問題になります)。 Intel と Micron は、永続メモリへの第一歩となる XNUMXDXPoint テクノロジーを約 XNUMX 年前に発表しました。このテクノロジーはメモリほど高速ではありませんが、フラッシュ ストレージよりもはるかに高速で、コスト効率がはるかに優れています。永続メモリの可能性に着目し、この可能性を実現するために MemVerge が立ち上げられました。

私たちが見た最初の 3D XPoint デバイスは、ストレージをよりターゲットにしていました。時間が経つにつれ、Intel は 3D XPoint 永続メモリ (PMem) を活用して、より高速な SSD を作成しました。その後、Intel は、DIMM スロットに装着され、DRAM の拡張として機能する永続メモリ モジュールを発表しました。以前は、メモリは高速なニーズに対応し、ストレージは大きなニーズに対応すると考えられていましたが、PMem ではその境界線があいまいになり始めました。 MemVerge は、大容量と永続性を備えた DRAM パフォーマンスを可能にすることで、両方の長所を融合しようとしています。

MemVerge は永続メモリの状況を調査し、PMem をキャッシュ、スピード ティア、またはメモリ エクスパンダとして活用するのではなく、その可能性を発揮できるようにするソフトウェアを開発してきました。同社は、ビッグ メモリ コンピューティングと呼ばれるものを使用して、DRAM のみの環境を低コスト、さらに重要なことに、DRAM と PMem の両方を活用した高密度メモリ環境に変換します。これは、この 2 つをソフトウェア デファインド メモリのプールに仮想化し、ソフトウェア デファインド サービスも提供することによって実現されます。上記に加えて、このソフトウェアは抽象化レイヤーを提供し、データセンター内のすべてのアプリケーションが新しいタイプのメモリ、メモリ相互接続、プロセッサ、およびメモリ アロケータから恩恵を受けて、最新の新しいアプリケーションやワークロードに対応できるようにします。

昨年の 9 月に、MemVerge はメモリー マシンの一般提供をリリースしました。。このソフトウェアは 2 種類で提供されます。標準バージョンはバイトアドレス指定可能な DRAM および PMem メモリを仮想化し、アプリの高速化とコストの削減を実現しますが、永続性は実現しません。 AdvancedVersion は、永続性が有効になっている上記のすべてと、ZeroIO インメモリ スナップショットに基づくエンタープライズ クラスのメモリ サービスです。

ZeroIO インメモリ スナップショットは、その名前が示すように、ストレージへの zeroIO を使用した DRAM および PMem のスナップショットを可能にします。これにより、通常は揮発性で可用性が低い DRAM が高可用性層になります。 ZeroIO スナップショットでは、いわゆるタイム トラベルも可能になり、以前のスナップショットにロールバックできます。クラッシュが発生した場合にアプリを前のスナップショットにロールバックする自動保存機能があります。スナップショットにより、メモリ リソースをさらに使用せずにシン クローンを作成できます。また、スナップショットは他のサーバーに移行し、新しいアプリ インスタンスの作成に使用できます。

MemVerge メモリ マシン管理

MemVerge Memory Machine は非常に洗練された GUI を備えています。グローバル ダッシュボードには、ストレージに期待される要素が表示されます。この場合の違いは、DRAM と PMem が監視される主な要素であり、使用状況がここで簡単に確認できます。上部には、ホスト、アプリ インスタンス、スナップショット、アラートのタブがあります。

左側のホーム ボタンをクリックすると、システムに関する基本情報 (IP アドレス、OS、カーナル バージョン、CPU) に加えて、メモリと PMem の使用状況とパフォーマンスの詳細が表示されます。

ユーザーは、メモリ レポートを取得してメモリをさらにドリルダウンして、時間ごとの使用量を確認できます。これは、PMem と DRAM のタイプも強調します。

また、ユーザーは Memory Machine の RESTful API を確認したり、構成したりできます。

スナップショットは Memory Machine の重要な部分を占めていますが、これについてはパフォーマンスのセクションで説明します。

 

私たちのラボでは、次の仕様の Supermicro SYS-2029U-TN24R4T で MemVerge メモリ マシンを利用しました。

ハードウェアモデル スーパーマイクロ SYS-2029U-TN24R4T
CPU 2x Intel(R) Platinum(R) 8270 CPU @ 2.70GHz、26 コア
DRAM DDR4 192GB
PMem 12x128GB
OS SSD 1TB SATA SSD
OS CentOS 8.2.2004
カーネル 4.18.0-193.19.1.el8_2.x86_64

MemVerge メモリ マシンのパフォーマンス

MemVerge Memory Machine はメモリ内で実行する必要があるワークロードとアプリケーションを対象としているため、通常の一連のテストはここでは意味がありません。当社のベンチマークは通常、IT 運用中に実際に見られるような、通常から高ストレスのワークロードとみなされます。代わりに、ここではいくつかの異なるテストを見ていき、特に DRAM 対 PMem 対 DRAM + PMem などのことと、それぞれがどのように影響を受けるかを見ていきます。このレビューでは、KDB パフォーマンスの一括挿入と読み取りテストの両方に加え、ZeroIO スナップショットを使用した Redis Quick Recovery と ZeroIO スナップショットを使用した Redis Clone を使用します。

KDB パフォーマンス テスト

Kx の kdb+ は、時系列のインメモリ データベースです。そのスピードと効率性で知られており、そのため金融サービス業界で非常に人気があります。 kdb の大きな制約の 10 つは、DRAM 容量の制限です。 MemVerge メモリ マシンはここに完全に適合するため、kdb は PMem を最大限に活用して、DRAM と同様のパフォーマンスでメモリ領域を拡張できます。バルク挿入テストでは、単一のインサート、100、1000、10000、15000、20000、25000、および XNUMX のインサートを調べ、XNUMX 秒あたり数百万のバルク挿入で測定しました。

KDB 一括挿入を使用すると、いくつかの興味深い結果が得られます。 10,000 回の挿入では、XNUMX つすべてが同様の結果になりました。より小さいバッチサイズでは、DRAM が最高のパフォーマンスを発揮すると考えられます。バッチ サイズが XNUMX を超えると、Memory Machine が DRAM よりもリードし、PMem が各バッチの最後に追いつくことがわかります。

次に、読み取りテストで kdb+ を調べました。ここでのテスト設定は少し異なります。読み取りテストは全体で同じですが、今回は DRAM のみ、PMem のみ、そして 20 GB または 40 GB の DRAM キャッシュを備えた PMem を調べました。 DRAM のみが 4.2GB/s に達することができ、PMem は 2.9GB/s に達するだけで、20GB の DRAM キャッシュがあり、Memory Machine は 3.9GB/s と 40GB のキャッシュでのみ DRAM とほぼ同じ速度に達することができました。最高のパフォーマンスは 4.8GB/s でした。さらに注目すべき点は、最後の XNUMX つは依然として他のタスクに十分な DRAM を使用できることです。

Redis スナップショットのテスト

Redis は、データベース、キャッシュ、メッセージ ブローカーとして使用されるオープンソースのメモリ内データ ストアです。これは非常に人気があり強力であるため、MemVerge メモリ マシンのベンチマークに最適なプログラムです。 Redis が MemVerge Memory Machine 上で実行されると、DRAM と PMem が Redis に割り当てられます。次に、MemVerge ZeroIO スナップショットは、ストレージ IO 操作を行わずにアプリケーションのメモリ ページを保存します。 Redis がクラッシュしても、PMem へのすべてのデータ スナップショットは永続的になります。クラッシュ リカバリでは、ストレージからのデータのリフト アンド シフトを行わずに、PMem 内の既存のデータを単にポイントするだけです。

このセクションでは、迅速な回復のために MemVerge ZeroIO スナップショットをテストします。

まず、ZeroIO スナップショットを使用した Redis Quick Recovery について見ていきます。パフォーマンスのベンチマークとは異なり、ここでは機能と使いやすさを示します。 Redis がインストールされ、データベースが実行されたら、Memory Machine にログインして、PMem の使用量などを確認します。

[アプリケーション] タブで、Redis サーバーが実行されていることがわかります。

実行中に、スナップショットをいくつか撮ります。明らかに、スナップショットが作成されていない場合、スナップショットから復元することはできません。

安全のためには決して問題はありません。スナップショットを撮ったことを再確認してください。

それらがあることがわかったら、Redis DB 障害をトリガーします。スナップショットを選択して復元し、少し停止した後、再び起動して実行します。

ZeroIO スナップショットを使用した Redis クローン

ここでは、上記と同じ手順をいくつか実行します。スナップショットを取得した後、新しい名前空間と新しい IP アドレスを持つクローンとして復元できます。別のホストからクローンに接続すると、ほぼ同じメモリを使用していることがわかります。

上記のすべては、必要に応じて CLI プロンプトを使用して実行することもできます。

まとめ

MemVerge Memory Machine は、メモリのパフォーマンスと PMem の永続性を組み合わせることを目的とした SDS です。 PMem は通常、ストレージを高速化するためのキャッシュとして使用されます。これはストレージにとっては多くの場合に利点ですが、インメモリ アプリケーションにはキャッシュではなくメモリのパフォーマンスが必要です。 MemVerge は、DRAM と PMem の両方を、ソフトウェア定義サービスを使用してソフトウェア定義メモリのプールに仮想化します。 Memory Machine は、zeroIO インメモリ スナップショットを使用して DRAM を高可用性層に変えます。 ZeroIO を使用すると、メモリ リソースに負担をかけずにシン クローンを作成できます。

新しいカテゴリに進出する際には、新しいパフォーマンス テストとベンチマークを採用する必要があります。インメモリ SDS を通常のベンチマークでテストすることは、その目的ではないため役に立ちません。代わりに、KDB パフォーマンスを一括挿入と読み取りテストの両方に加え、ZeroIO スナップショットを使用した Redis Quick Recovery と ZeroIO スナップショットを使用した Redis Clone を活用しました。テストは Supermicro SYS-2029U-TN24R4T サーバーで実行されましたが、Intel Optane PMem モジュールをサポートする検証済みサーバーでも動作するはずです。

KDM バルクでは、DRAM、PMem、および Memory Machine による 20 つの組み合わせを調べて複数のバッチ サイズをテストしました。バッチが小規模で開始されたため、DRAM が最高のパフォーマンスを発揮することは驚くことではありませんでした。見ていて本当に興味深いのは、テストでリソースへの負担が大きくなるにつれて、MemVerge の成績がどんどん向上していったことです。 KDM の読み取りでも、同様の傾向が見られました。 DRAM のパフォーマンスは非常に優れており、驚くことではありません。 PMem は正常に動作しましたが、DRAM を十分に下回っていました。 Memory Machine を使用した DRAM のキャッシュは 3.9GB のみで、DRAM 単体の 4.2GB/s と比較して 40GB/s でパフォーマンスが向上しました。 MemVerge にキャッシュ用に 4.8GB の DRAM を与えると、全体として XNUMXGB/s という最高のパフォーマンスが得られましたが、それでも他のタスク用に十分な DRAM を残しました。

パフォーマンス テストの 2 番目の部分は、ZeroIO スナップショットを使用した Redis Quick Recovery と ZeroIO Snapshot を使用した Redis Clone でした。ここでは、機能性と定量化可能なパフォーマンスについて詳しく説明しました。基本的に、私たちはすぐにスナップショットを取得し、障害を引き起こし、すぐに再起動して実行することができました。

Intel の PMem は非常に興味深いテクノロジーですが、モジュールを簡単に導入して適切に活用する方法が限られているため、導入にはやや時間がかかりました。 MemVerge を使用すると、組織は PMem が提供する機能を、特にこのテクノロジーを念頭に置いて構築されたソリューションで活用できます。 PMem が提供する大規模で回復力のあるメモリ フットプリントの恩恵を受けるアプリケーションを使用している人にとって、MemVerge は間違いなく評価する価値があります。

メムバージ

StorageReview と連携する

ニュースレター | YouTube |ポッドキャスト iTunes/Spotifyは | Instagram | Twitter | Facebook | RSSフィード