デザインツール
ストレージ

Aerospikeを使用する実際のワークロードにおけるFDPのメリット

ジョン・マジー | 2024年3月

Flexible Data Placement(FDP)は、GoogleとMetaが提案した、NVMe™仕様1の一機能です。この機能の目的は、複数のアプリケーションが同じNVMe SSDにデータを書き込み、修正する際に、書き込み増幅(WA)を低減することです。両社にとってのWAの低減によるメリットには、(オーバープロビジョニングの必要性が低くなることによる)使用可能容量の増加や、(摩耗の低減による)デバイスの長寿命化などがあります。

マイクロンは、FDPがどの程度役立つかを判断するための実験を提案しました。このテストでは、7.68TBのMicron® 7450 PRO SSDを4つのネームスペースに均等に(1.92TB)分割し、Aerospike NoSQLデータベースの並列インスタンスを実行しました。AerospikeはSSDを使用するために高度に最適化し、デバイスへのシーケンシャルな書き込みのみ行います。これにより、1つのインスタンスの書き込み増幅率(WAF)は非常に低くなりますが、同じ物理デバイスで複数のインスタンスを実行すると、トランザクションが混在し、ワークロードにランダム性が生じます。

各Aerospikeインスタンスは、さまざまな顧客が仮想環境でスペースを共有している状況をシミュレートするために、さまざまなブロックサイズ(32KB、64KB、128KB、256KB)で書き込みを行うように設定しました。また、1.92TBずつ、4つに分割したMicron 7450 PRO SSDで個別にこれらのワークロードを実行します。FDPの最適な導入を想定して、すべてのアプリケーションデータが専用のNAND領域を受け取り、図1のようにデバイスでデータがインターリーブされないようにします。

図1:FDPを使用しないデータ形式(インターリーブ)

図2:FDPを使用したデータ形式(インターリーブ)

 

Aerospikeの最適化で私たちが予想したのは、アプリケーションの1つのインスタンスを専用のストレージデバイスで実行すると、WAFが1に近くなることでした。これは、ドライブが複数回埋まるまでYCSBワークロードA(読み取り50%/更新50%)を実行することで確認されました。理想的なシナリオでは、大型デバイス上の4つのネームスペースは、4つの単一デバイスと同じように動作します。このシナリオの形式を図2に示します。

FDPを使用せず、7.68TBのデバイスで複数のワークロードを実行すると、そのドライブはネームスペースごとにNANDを分けていないため、実行中のインスタンスのコンテキストでどのAerospikeデータを同じグループにしたらよいかを判断する方法がありません。図1に示すように、インターリーブとは、個々のワークロードがシーケンシャルでも、ドライブの観点ではワークロードが事実上、よりランダムになるということです。このランダム性の増加により、図3で示すように、単独の専用デバイスの1つのインスタンスでは1.08だったWAが、FDPを使用しないデバイスに配置された4つのインスタンスでは1.84に増加します。

図3:Aerospikeの書き込み増幅 – FDPを使用した場合と使用しなかった場合の比較

 

これは基本的な実験ですが、今後のデバイスにFDPを導入する場合の潜在的なメリットを示しています。また、できる限りシーケンシャルに書き込みを行うように設計された一部のアプリケーションが、同じドライブリソースで競う場合のFDPのメリットも示しています。

1 クリス・サボル氏(Google)とロス・ステンフォート氏(Meta)がNVM Expressに対するプレゼンテーションで紹介したその他の詳細については、https://nvmexpress.org/wp-content/uploads/Hyperscale-Innovation-Flexible-Data-Placement-Mode-FDP.pdf参照。

MTS, Systems Performance Engineer

John Mazzie

John is a Member of the Technical Staff in the Data Center Workload Engineering group in Austin, TX. He graduated in 2008 from West Virginia University with his MSEE with an emphasis in wireless communications. John has worked for Dell on their storage MD3 Series of storage arrays on both the development and sustaining side. John joined Micron in 2016 where he has worked on Cassandra, MongoDB, and Ceph, and other advanced storage workloads.