はじめに – 高レジリエンスなSSDアーキテクチャーを実現する追加の要素が、FDPとLatency Monitorです。
最近私が書いたブログのうちの2つで取り上げた内容には一見関連性がありませんでしたが、その後、同業者と何度か話す機会があり、私が考えていたよりも関連性が高いことがわかりました。今回のブログでは、その関連性をさらに掘り下げていきます。レイテンシーの軽減について検討し、NVM ExpressのFlexible Data Placement(FDP)、OCP Storage WorkgroupのLatency Monitor(LM)という2つの戦略を、垂直統合型の高レジリエンスを構成する要素としてどう捉えたらよいかについて見ていきましょう。
振り返り - 垂直統合型レジリエンス
「シフトレフトアプローチでSSDのレジリエンスを革新する」と題したブログでは、高レジリエンスの実現に結び付くホストとストレージデバイスのあらゆる要素について概観を述べました。バージョン1のOCP SSD仕様から始まり、最新版となる3回目のリリース(バージョン2.5)に至るまで、レジリエンスの要素は徐々に増しています。パニック検出、パニックリカバリー、標準化テレメトリーについてはすでに述べました。ここでは、1) Flexible Data Placement、2) Latency Monitorの2つについて詳しく掘り下げたいと思います。
図1 - 垂直統合型レジリエンスの機能概要
レイテンシーを軽減して垂直統合型レジリエンスを強化するNVM Express™ Flexible Data Placement(FDP)
書き込み増幅(WA)を低減するとホストアプリケーションの耐久性が向上するため、SSDのレジリエンスを強化するFDPは妥当かつ明白な選択肢でしょう。この点については業界でも、マイクロンブログの他の執筆者の記事でも広く取り上げられています。また、すでに述べているように、FDPを使ってパフォーマンスを改善できる場所はたくさんあります。これは驚くことではありません。ガベージコレクションの削減と同じように、業界で観測される実際的なワークロードの改善は可能です。
とはいえ、レイテンシーの異常値を低減することは垂直統合型レジリエンスの一機能と見なすことができるのでしょうか? また、FDPは役立つのでしょうか? 以前私が投稿したブログ記事「データセンターSSDのレイテンシーが重大である理由と、マイクロンがどのようにしてクラス最高になったのか」では、スケールアウトソリューションにおいてレイテンシーの異常値が大きな問題になる理由と、マイクロンが世界トップクラスのソリューションに実装した技術について説明しました。ただし、垂直統合と、垂直統合型FDPソリューションがさらにレイテンシーを改善する方法についての想定を述べていませんでした。
FDPの役割がガベージコレクション(GC)の回数を減らすことであるならば、FDPがレイテンシーの異常値も減らすことは明らかです。もちろん、GCがなくWAF=1の場合でも、ホストが開始した読み取り、プログラム、消去を行うさまざまなチャネルのダイや基板によるレイテンシーのばらつきは依然として存在します。ただし、書き込み増幅が約2~3、またはそれ以上の場合、衝突の可能性が高くなり、その結果、レイテンシーの異常値の影響が大きくなります。では、FDPはレイテンシーの異常値をどの程度改善できるのでしょうか。
図2 - NANDの動作に影響を与えるホストと内部動作の概要。こうした内部動作がトラフィックを増大させ、一般に「書き込み増幅」として測定される
レイテンシーに関する私のブログ記事で詳しく紹介した、業界で一般に使用されている方法を用いて、読み取り70%、書き込み30%の4KiBランダムワークロードという十分な負荷を想定し、読み取りレイテンシーの分布をプロットしてみましょう。FDP以外のケースは簡単で、業界慣行に従っています。FDPを使った最良の場合の代用データとして1というWAを測定するために、新しいネームスペースを作成し、総容量の一部のみ事前条件を整えてから、70/30のワークロードを実行しました。このケースでは、8TBのMicron 7500 SSDを1TBとして調整し、物理メディアがいっぱいになって、GCが開始するまで、IOをその1TBに制限しました(マッピングされていない論理ブロックアドレス(LBA)の読み取りを避けるため)。
図3は、最初に書き込み負荷のない場合の読み取りレイテンシーの分布を示し、次に継続的な書き込み負荷がある場合の分布を示しています。これまでに実施した多くの結果は、FDPのWAが約1であることを示唆しており、したがってテールレイテンシーの変動において最大30%の削減になると予想できます。
図3 - FDPによるガベージコレクション負荷の軽減で、テールレイテンシーの分布を大幅に低減することが可能。
SSDのレジリエンスを強化するOCP Storage WorkgroupのLatency Monitor
以前のブログでレイテンシーの軽減について述べた際、データベースのクエリが複数のサブクエリに分割されて並列で実行される場合、テールレイテンシーは、確率は低いながらも大きな影響を総レイテンシーに及ぼすと説明しました。同ブログでは、レイテンシーの異常値の原因を特定し、修正することがいかに困難であるかについても述べました。レイテンシーの異常値が想定どおりであることを証明する方法については触れていませんでした。FIOのようなツールは、システムレベルですべてのトランザクションにタイムスタンプを付与し、必要なレイテンシーヒストグラムを計算できます。ただし、数百万IOPSを扱える現在のドライブでは、実際のアプリケーションでシステムレベルのリアルタイムブロックトレースを作成して異常値を探す場合、計算にあまりにもコストがかかりすぎます。また、それを実行できたとしても、ホストが異常値を検知し、必要なデバッグデータとともにテレメトリーホスト開始リクエストを送信するまでに、SSDのデバッグ情報が消えてしまう可能性があります。
私はFMS 2017の論文に取り組んでいるときにこの問題に直面しました。そして、SSDコントローラは、すべてのコマンドの着信時刻と送信時刻を記録し、レイテンシーを測定し、詳細なヒストグラムを作成し、値が高すぎる場合にはアサートをトリガーするのに十分な計算能力があることを実証しました。このケースでは、データは後で抽出・分析できるように、内部で収集されました。提示したデータはすべて、SSD自体が内部で生成したものです。
その研究と、Metaが提示したいくつかの重要なニーズに基づいて、SSD Latency Monitorのコンセプトが正式に確立され、OCP Datacenter NVMe SSD Specificationのバージョン2に初めて盛り込まれました。大まかに説明すると、各コマンドが出力される際にタイムスタンプを付与し、関連する入力時のタイムスタンプと比較して、レイテンシーを算出します。ホストが構成可能な4つのヒストグラムバケットがタイムスタンプ付きで作成されます。ホストが要求するデバッグログに関連するレイテンシーに対処するため、コマンド出力時にコマンドのレイテンシーが閾値を超えた場合は、後でベンダーが分析できるように内部デバッグログが保存されます。また、OCP Storageの標準テレメトリーがさらに展開されると、レイテンシーの異常値に対するさらなるデバッグ情報を取得できます。
2022年のストレージ開発者会議で、Metaのヴィニート・パレク氏とヴェンカト・ラメーシュ氏は、自社のサーバー群へのレイテンシー監視の実装について述べ、明らかになった重要問題の例を紹介しました。両氏の指摘によれば、仮に1,000 IOPSのサーバー群全体が1秒のナインナインズ(99.9999999%)の異常値を発生させた場合、1日あたり5,000件を超えるレイテンシーイベントが発生することになります。パレク氏とラメーシュ氏は、問題のあるSSDドライブにLatency Monitorを導入した例を紹介しました。Latency Monitorを導入するまで数か月間、解決できなかったレイテンシーの異常値の問題を効率的にデバッグできたのです。以下の図4に、Latency Monitorのアーキテクチャーと、困難な異常値デバッグの成果をまとめました。
Latency Monitorの他のメリットとして、これまではストレージデバイスに原因があるとされていたホストレイテンシーの問題を特定できるという点が挙げられます。最近の例を2つ挙げます。1つは、レイテンシーの異常値が原因でNVMeの仕様強化を追加することになったLinuxでの問題に関連する例です。もう1つは、マイクロンのサヤリ・シロデが執筆したブログで紹介した例です。シロデは、測定されたレイテンシーの異常値を引き起こしたのが問題のSSDでは「なかった」ことを、Latency Monitorを使って明らかにしました。
図4 - 2022年のストレージ開発者会議でMetaが紹介したレイテンシー異常値のデバッグ例
結論 – マイクロンは高レジリエンスなSSDアーキテクチャーと設計を採用
2023年11月のブログでは、レジリエンス革命には「シフトレフト」が必要だとお伝えしました。このエコシステムには測定と検出が必要であり、ホストとベンダーの通信に対応するために垂直統合も必要です。パニックレポート、パニックリカバリー、テールレイテンシーの大幅な削減などの要素についてはすでに述べました。私はこれらの2つのアイデアを組み合わせた2つの要素について強調したいと思います。
- OCPのLatency Monitor機能は、SSDデバイスだけでなくソフトウェアエコシステムでもレイテンシーの異常値を排除するために不可欠です。
- データ配置(data placement)、特にFlexible Data Placement(FDP)は、耐久性とパフォーマンスを向上させ、レイテンシーの異常値を最大30%削減します。
最後に2つ追加します
- FMSでは、私が「ハイパースケールアプリケーション」に関するセッションの進行役を務めます。Metaはこのセッションで、Latency Monitorの導入拡大に関する経験について、さらに詳しく説明してくれる予定です。ぜひご参加ください。今秋のカンファレンスでは、FDPについての価値ある対話が交わされるでしょう。
- OCP StorageのNVMe-CLI用プラグインは、ベンダーに依存しないシームレスな方法で、FDPとLatency Monitorの双方を構成し、レポートを出力します。標準テレメトリーのデコードなど、その他の重要な入力も可能です。
謝辞
- FDPの実験計画を担ってくれたマイクロンのチャンドラ・グダと、テストの実行を支援してくれたジョン・マジーに感謝します。
さらに読む
シフトレフトのアプローチでSSDのレジリエンスに革命をもたらす | Micron Technology Inc.
データセンターSSDのレイテンシーが重大である理由と、マイクロンがどのようにしてクラス最高になったのか | Micron Technology Inc.
ハイパースケール環境で観測されたフラッシュの問題の大規模なデバッグ - SNIA SDC 2022(sniadeveloper.org)
ワークロードテストにおけるレイテンシーの異常値を特定する | Micron Technology Inc.
I/O決定論により、SSDにおけるコストのかかる読み取りレイテンシーの変動を回避する(flashmemorysummit.com)
Aerospikeを使用する実際のワークロードにおけるFDPのメリット | Micron Technology Inc.
I/Oブレンダーの排除:Flexible Data Placementがもたらすもの | Micron Technology Inc.