X

オラクルエンジニア通信では、オンプレミスからクラウドまで、オラクルテクノロジーの最新情報をお届けします

ExadataX8Mの永続メモリー

※本ページは、"Persistent Memory in Exadata X8M"の翻訳です

永続メモリー (パーシステント・メモリー PMEM) の導入は、コンピューティング業界における革命の始まりを示しています。コンテンツが揮発性でバイト・アドレス指定可能なシステム・メモリーと、データが永続的でブロック指向のストレージとの間には常に分離がありました。永続メモリー (Intel Optane DC Persistent Memoryなど) は、バイト・アドレス可能であると同時に永続的であるため、ストレージとメモリーの間の境界線を曖昧にします。

この新しいクラスの不揮発性メモリーは、DIMM (Dual Inline Memory Module) フォームファクタで従来の(揮発性)DRAMと一緒に動作するのに十分な速度です。DIMMスロットのシステムに統合することは、永続メモリーがディスクやSSDなどの従来のブロック指向ストレージとは大きく異なる役割を果たすことができることを意味します。

この記事は、永続メモリーと、オラクルがこのテクノロジーを使用してデータベース・システムに革命を起こす方法をカバーするシリーズの第2回です。Exadataは、永続メモリーを活用し、Oracle Databaseのパフォーマンスを高速化すると同時に、ユーザーがミッションクリティカルなシステムに必要とする完全な冗長性とデータ保護を提供するように特別に設計された市場初のシステムです。

永続メモリー入門の記事をまだ読んでいない場合は、この記事で概説されている基本事項のいくつかをここで必ず学んでください:https://blogs.oracle.com/oracle4engineer/persistent-memory-primer-jp

Oracle Exadata X8M
Exadata X8Mには、プラットフォームの最新のパフォーマンスの向上を推進する3つの大きな変更があります。これらの変更は、以下の赤で強調表示されています。

内部ファブリックは、40Gbps (ギガビット/秒) InfiniBandから100Gbps RDMA over Converged Ethernet(RoCE)ファブリックに変更されました。このネットワークファブリックのRDMA (リモート・ダイレクト・メモリー・アクセス) 機能は、永続メモリーを最大限に活用するために重要です。もちろん、Exadataの永続メモリーはストレージ・サーバーに存在します。つまり、完全に冗長であり、永続メモリーの量はシステムの拡張に応じて拡張されます。Exadata内のLinux KVM (Kernel Virtual Machine) は、仮想化のオーバーヘッドを削減し、データベース・サーバーあたり1.5TBのサポートされている最大のメモリー構成でシステムを構成できるようにします。これらの新機能を組み合わせることで、Exadataはデータベースのパフォーマンスと価格/パフォーマンスの競争をはるかに上回ります。Exadata X8Mの詳細については、以下を参照してください。https://www.oracle.com/jp/engineered-systems/exadata/

RoCEとPMEMの組み合わせ
Exadataの最新のパフォーマンスの向上は、RoCEと永続メモリーの組み合わせに依存しています。これらのテクノロジーはそれぞれ単独でメリットを提供しますが、Exadataプラットフォームのパフォーマンスを次の飛躍に導くには、これらのテクノロジーを組み合わせる必要がありました。

永続メモリーのパフォーマンスは、マイクロ秒、さらにはナノ秒で測定されるようになりました。これは、I/Oスタックの他の部分がはるかに重要になったことを意味します。コンバージド・イーサネット・ファブリック全体のRDMAにより、Exadataは永続メモリーのパフォーマンスを最大限に活用できます。これを説明する最良の方法は、永続メモリーがRoCEなしでExadataに導入された場合に何が起こるかを調べることです。

RoCEなしの場合の永続メモリー
永続メモリーは、8Kブロックのデータを処理するために、6µsec (マイクロ秒) の範囲の内部応答時間を提供する必要があります。この応答時間は、既存のI/Oパスで費やされた時間が全体の時間のかなりの部分になりつつある範囲に入りつつあります。Exadataは、長年にわたり、他のストレージソリューションよりも高速なI/O応答時間を提供してきましたが、これは、オラクルの開発チームがパフォーマンスを大幅に改善する機会を提供します。

通常、Exadata Storage Server内から永続メモリーにアクセスするには、約6マイクロ秒 (6,000ナノ秒) の読み取り待ち時間が予想されます。ただし、この低遅延は、ソフトウェアのレイヤー、コンテキスト・スイッチ、およびネットワークプロトコルのオーバーヘッドによって影が薄くなります。次の図では、Exadata X8Mで実行されている古いバージョンのOracle Database (19cより前) を示しています。データベースは通常どおりExadataストレージからI/O要求を行いますが、データは永続メモリーにキャッシュされます。


Exadata Storage Server は、使用されているデータベースのバージョンに関係なく、ホット・ブロックをキャッシュします。古いバージョンのデータベース(19cより前)は、従来のExadata I/Oパスを使用します。ただし、Oracle Database 19c(およびそれ以降のバージョン)は、従来のI/Oパスを使用するのではなく、RDMAを使用して永続メモリー内のデータに直接アクセスします。データベースとストレージ間のこのレベルの統合は、Exadataのソフトウェア/ハードウェアの緊密な統合によってのみ可能です。この新機能は、Exadata X8M永続メモリ−・データアクセラレータとして知られています。

永続メモリー・データ・アクセラレータ (Persistent Memory Data Accelerator)
Oracle Exadata X8Mは、永続メモリーを (内部で) 使用して、劇的に高いI/Oレートと、業界をリードする低レイテンシのストレージアクセスを実現します。Oracle Exadata Storage Softwareは、永続メモリーと完全に統合されており、上記のトピックに対応すると同時に、Exadata X8Mが永続メモリーのパフォーマンスを最大限に活用できるようにします。Exadata X8Mは、1つのラック内で19µsec (マイクロ秒) 未満のストレージ遅延と1,600万IOPS (1秒あたりの入出力操作) を実現できます。お客様は、Exadata X8Mで永続メモリーを構成、調整、または選択する必要はありません。永続メモリーはすべてのExadataシステムに自動的に含まれ、構成または管理するものはありません。

 

Exadata X8M内のRoCEネットワークは、コンバージド・イーサネット・ファブリックを介したRDMAを有効にし、永続メモリーにあるデータにアクセスします。このテクノロジーの組み合わせにより、Exadataは、完全に冗長化され、障害から完全に保護されたストレージで、メモリーに近い速度を実現できます。

永続メモリ−・コミット・アクセラレータ (Persistent Memory Commit Accelerator)
Exadataの永続メモリーは、Oracle Databaseでのコミット処理も高速化します。データベースでのコミット処理は、特にOLTPシステムの場合、パフォーマンスのボトルネックになります。コミットが遅い場合、システム全体のすべてのユーザーとトランザクションでデータベース全体の速度が低下する可能性があります。RDMAと組み合わせた永続メモリーは、Exadata X8Mでのログ書き込みを高速化するために使用されるため、コミットのパフォーマンスが向上します。

Exadata X8Mは、すでに市場で最速だった前世代のExadataよりも最大8倍高速なログ書き込みを提供します。データベースのパフォーマンスメトリックを確認するだけで、PMEMの実際の劇的な効果を確認できます。

Exadata上でPMEMの動作を確認してみるには?
RoCEとPMEMの組み合わせにより、他のストレージソリューションよりも劇的に高速な応答時間と、はるかに高いIOPS(1秒あたりの入出力操作)が実現します。ExadataでのPMEMのこの最初のリリースでは、卓越したパフォーマンスが最大のメリット領域に焦点を当てています。これは、最高のIOPSをもたらすデータベース操作です。シングルブロック読み取り(single block read)は、Oracle Databaseで最も高いIOPSイベントです。これは、Exadataでは「セル単一ブロックの物理読み取り(cell single block physical read)」と見なされます。これは、Exadata以外のシステムでの「dbファイルの順次読み取り(db file sequential read)」に相当します。次のAWR(自動ワークロードリポジトリ)レポートのスクリーンショットは、これが実際に動作していることを示しています。

Exadata System Softwareは、最も頻繁に読み取られるデータのブロックを永続メモリーにキャッシュします。これらのブロックは、既存のExadata I/Oパスを介して Oracle Database 19cより前のデータベースからアクセスされますが、Oracle Database 19c以降のデータベースはリモート・ダイレクト・メモリー・アクセス(RDMA)を使用してこれらのブロックにアクセスします。現在、永続メモリーはライト・スルー・キャッシュとして使用されているため、データは常にフラッシュとディスクに永続化されます。

Exadataはまた、永続メモリーを使用してコミット処理を高速化します。これは、ワークロードに関係なく、データベースの中で最もパフォーマンスに敏感な操作の1つです。Oracle Databaseは、コミット・レコードをREDOログに外部化し、アプリケーションに制御を戻す前にそれらのレコードがストレージに永続化されるようにする必要があるため、コミット処理を高速化すると、データベース全体のパフォーマンスが向上します。コミット処理に関連する2つの主要なOracle Databaseパフォーマンス・メトリックは次のとおりです。

  • ログファイルの同期(log file sync)
  • ログファイルの並列書き込み(log file parallel write)

これらのイベントをAWRレポートで表示して、Exadata X8MのRoCEおよびPMEMの利点を確認できます。これにより、以前のX8リリースよりも最大8倍高速なコミット処理が実現します。

ExadataのPMEM利用時のデータの整合性の実現
Exadataは、MOS Note#2608116.1 (File Systems and Devices on Persistent Memory (PMEM) in Database Servers May Cause Database Corruption ) で概説されているデータ整合性の問題に悩まされていないことに注意することが重要です。Exadata System Softwareは、永続メモリーの動作によって提示されるデータ整合性の課題に対処するように設計されています。Exadata System Softwareは、devdax (Device Direct Access) モードを使用してApp Directモードで永続メモリーを使用し、データの整合性を確保するためにデータが永続メモリーに書き込まれる方法を直接管理します。また、Exadata System Softwareは、ストレージ・セル全体のデータへのすべての書き込みをミラーリングして、障害が発生した場合のデータ損失から保護します。オラクルは、最高の保護を提供し、メンテナンス中の冗長性を確保するために、トリプル・ミラーリング、またはExadataで高冗長性構成を推奨しています。

まとめ
Exadataは、Exadataストレージ・レイヤーの永続メモリーとコンバージド・イーサネット・ネットワークを介したリモート・ダイレクト・メモリー・アクセス (RoCE) の組み合わせを使用して、お客様がExadataプラットフォームに期待するデータの整合性と可用性で前例のないパフォーマンスを提供します。

Be the first to comment

Comments ( 0 )
Please enter your name.Please provide a valid email address.Please enter a comment.CAPTCHA challenge response provided was incorrect. Please try again.