衛星アンテナ

ホワイトペーパー

NVMe SSDの書き込み性能

概要

BittWareのデータレコーダリファレンスデザインは、最大200Gb/sの高速センサーデータをNVMeソリッドステートドライブ(SSD)に取り込みます。このため、ユーザが必要とするあらゆるデータ・レコーダー・システムを構築するためのオープン・アーキテクチャが提供されますが、よく聞かれる質問は、"ある持続的なデータ・レートに何台のドライブが必要なのか "というものです。

SSDベンダーの書き込み速度に関するドライブ仕様を見て、アプリケーションに必要な最大持続帯域幅を割り出し、少しマージンを加えれば、必要なRAID0(ストライプ)ドライブ台数が算出されるからです。しかし、SSDのスペックシートに記載されている書き込み速度の数値は、ハイパフォーマンスなお客様の長い記録時間に対して、決して持続可能な数値ではないということが課題です。

ここでは、一般的なSSDドライブの種類を使用した実際のパフォーマンス数値を見て、持続的な書き込みが読み取り速度ほど単純でない理由を掘り下げてみましょう。最後に、当社のData Recorderリファレンス・デザインを用いて、所定の速度に対応するドライブ・アレイの推奨事項を説明します。この設計は、TeraBoxサーバーと250-SoC FPGAカードを使って、必要に応じて簡単に拡張できるのが良いところです。

本ホワイトペーパーのPDF版

U2モジュール搭載サーバー

SSDドライブの評判

NVMeインターフェースを持つソリッドステートドライブは、非常に高速であることで知られています。実際、特定のワークロードについては、従来のハードディスクドライブ(HDD)よりも高速である。具体的には、SSDは書き込みよりも多くの読み出しとランダムアクセスに最適化されています。もちろん、データレコーダーの場合は、逆にシーケンシャルな書き込みに重点が置かれます。

もう1つの課題は、NVMe SSDの最大「ストリーミング書き込み」帯域幅の仕様が、持続的な書き込みを行う際にドライブ容量のごく一部に制限されることが多いことです。長時間の持続的な書き込みの大部分は、この数値を大幅に下回ることになり、ドライブのサイズが大きくなるにつれて、さらに悪化します。その理由を知るために、SSDでビットがどのように保存されるかを簡単に見てみましょう。

大型SSDでは、書き込み持続性能が低下する傾向があります。

SSDの密度を高めることは、新しい技術に移行することを意味しますが、その分、持続的な書き込みが遅くなることもあります。これらのSSD技術の世代は、市場に登場した順にSLC、MLC、TLC、そして最後にQLCと呼ばれ、これも低密度から高密度の順になっています。SSDの設計者は、時間の経過とともにストリーミング書き込みが遅くなっていることを強く意識しています。そのため、最新で最も高密度のSSDであっても、その一部を旧来のSLCモードで動作するように予約することがよくあります。これにより、ドライブのその部分が一杯になるまでは、旧来の高速な速度で書き込みを行うことができます。その後、書き込みの速度はドライブの残りの部分でサポートされる速度に低下します。

SSDドライブの性能劣化の閾値について

最初の3つの閾値については、「ベンチマーク」のセクションで詳しく説明しています。

  • 最高性能は、SLCキャッシュが一杯になるまで発揮されます。様々なドライブでそれがいつ起こるかについての詳細は、ベンチマークセクションをご覧ください。
  • その後、ドライブが容量しきい値に達するまで性能が低下し、SLCキャッシュのサイズを縮小し始めます。
  • SLCキャッシュの縮小にはバックグラウンドコピーが必要で、さらに速度が低下する。

レコーダーが古いデータを新しいデータで上書きし始めると、さらに別の減少が発生することがあります。これについては、次のセクションで説明します。

データの上書きによる性能低下

データを上書きするとパフォーマンスが低下する理由

  • SSDは、書き込みを行う前にページをゼロにする必要があります。
  • このため、1バイトだけ変更すると、SSDコントローラは過去にゼロにしたページを探し、その上に1バイトを変更したページ全体をコピーします。
  • SSDは、1ページをゼロにすることはできません。その操作は、ページのブロックを使用します。
    • SSDごとに異なりますが、例としてSamsung 840 EVOの場合、2048Kbのページがあります。このようなページが1ブロックに256個あります。
  • ページのゼロ化は、NVMe Trimコマンドが特定のブロックが使用されなくなったことをSSDに伝える際に、バックグラウンドで発生する比較的低速な操作である。
  • ディスクレコーダでは、ディスクがいっぱいになるとラップするリング状のデータ構造にデータを取り込むことが多い。
    • この場合、事前にトリミングを行う機会はありません。また、アプリケーションがトリミングを発行したとしても、SSDレコーダーは忙しくてゼロ処理を行うための空き時間を確保できないこともあります。
    • 数ページ書き込むごとに、別のページブロックがゼロになるまでの間、一時停止すると、パフォーマンスが著しく低下します。

FPGAでこれを回避する方法

  • アプリケーションは、ディスクが一杯になったときに、折り返すのではなく、停止することができます。
  • あるいは、トリムコマンドを発行して、各ドライブがゼロブロックまで少し性能に余裕があるくらいのNVMeドライブを用意することも可能です。

SSDドライブベンチマーク

ドライブベンチマーキングの手法

  • SPDKを使用してNVMeドライブの性能をベンチマークしています。
  • ファイルシステムのオーバーヘッドを除去する
  • バッファをキャッシュラインに合わせることでDMA効率を最大化
  • 専用スレッドを使用し、NVME DMAコントローラが常に書き込みコマンドを処理できるようにすることで、空のドライブを可能な限り高速で完全に充填します。

テストカテゴリー

特定のドライブをベンチマークするのではなく、コンシューマー市場とエンタープライズ市場から事例を選ぶことを目標としました:

  • コンシューマー市場:TLC with SLC
  • コンシューマー向け市場:SLCを使用しないMLC
  • エンタープライズ市場:SLCのないTLC
  • エンタープライズ市場3D XPoint

コンシューマー市場:TLC with SLC

テストしたドライブ例Samsung 970 Plus、1 TB

これは、SLCキャッシュを搭載した典型的なTLCコンシューマーレベルのドライブです。

  • データシートには、ストリーミング書き込みは「最大3.3GB/秒」と記載されています。
  • SLCキャッシュが満杯になるまで2.7~2.8GB/秒を計測しました
  • その後、およそ1.6GB/秒まで低下しました。
  • 古いデータの上書きを開始しても、ドライブは同じ速度で書き込みを続けることができた。

100Gレコーダーの性能を実現する:

RAID 0構成では最低8台のドライブが必要です

エンプティ

970プラス 1TB 空

フルドライブを書き換える

970 Plus 1TB---フル・ドライブの書き換え

コンシューマー向け市場:SLCを使用しないMLC

テストしたドライブ例:Samsung 970 Pro、512GB

SLCキャッシュを搭載しない、コンシューマー市場をターゲットとしたMLCドライブです。

  • データシートには、ストリーミング書き込みは「最大2.3GB/秒」と記載されています。
  • このドライブには、SLCキャッシュはありません。2.2GB/secの速度が計測され、低下することはありませんでした。
  • 古いデータの上書きを開始しても、ドライブは同じ速度で書き込みを続けることができた。

100Gレコーダーの性能を実現する:

RAID 0構成では最低6台のドライブが必要です

970 Pro 512GB

エンタープライズ市場:SLCのないTLC

テストしたドライブ例サムスン1725b、1.6 TBM

SLCキャッシュを搭載しない、コンシューマー市場をターゲットとしたMLCドライブです。

  • データシートでは、ストリーミングライトは "2.0GB/sec "とされています。
  • ほとんどの場合、このドライブは1.7GB/秒を実現しましたが、時折1.3GB/秒に低下することがありました。
  • これは、エンタープライズ市場をターゲットにしたTLCドライブで、SLCキャッシュを搭載していません。

100Gレコーダーの性能を実現する:

RAID 0構成では最低10台のドライブが必要です

サムスン 1752b 1.6TB

エンタープライズ市場3D XPoint

テストしたドライブ例:Intel Optane、480GB

Optaneドライブは3D XPointメモリ技術を使用し、従来のSSDドライブよりも耐久性が大幅に向上しています。しかし、従来のNVMeドライブ技術のような大容量での利用はできません。

  • データシートでは、2.2GB/秒のシーケンシャル書き込み帯域を指定しています。
  • 2.2GB/s以上を安定的に実現。

100Gレコーダーの性能を実現する:

RAID 0構成では最低6台のドライブが必要です

インテル・オプタン480GB

エンタープライズ市場:Gen4 3D TLC

テストしたドライブ例:Intel SSD D7-P5510 3.84TB

PCIe Gen4を採用したドライブは、性能が大幅に向上しています。最適化されたデータ移動エンジンを活用するため、256KB以上の大きなバッファサイズを使用しました。

  • データシートでは、3.3GB/秒のシーケンシャル書き込み帯域を規定しています。
  • 3.2GB/s以上を安定的に実現。

100Gレコーダーの性能を実現する:

RAID 0構成では最低5台のドライブが必要です

NVMeパフォーマンスチャート

ベンチマークの概要

ドライブサイズを大きくするためにマルチセルアーキテクチャを使用することは、長時間の書き込みを持続させるという代償を伴います。この影響が最も大きいのは、コンシューマー向けSSDです。謳われている最大値に匹敵する現実のストリーミング書き込み速度が最も優れているのはIntel Optaneドライブですが、これはドライブサイズが最も制限されているものでもあります。

持続的な書き込みのためにシステムを指定する場合、重要なのはターゲット・ドライブで実世界のベンチマークを取得または実行することです。100Gb/sでの持続的な書き込みに関する上記の推奨事項は、このような実世界のテストデータに基づいています。

それでも、SSDへの書き込みにはさらに考慮すべき点があるので、次に取り上げます。

駆動寿命

書き込み性能で最後に考慮すべきは、ドライブの寿命です。SSDへの書き込みは、SSDを消耗させます。特にデータレコーダーのアプリケーションは、ドライブの寿命にストレスを与える可能性があります。

  • SSDの寿命は、保証期間中のDWPD(Drive Writes Per Day)として規定されています。
    • SSDの寿命には大きなばらつきがありますが、期待値として、1DWPDのドライブは1,800回の上書きが可能であることに注意してください。

エンタープライズ」SSDは、より長い寿命(より大きなDWPD)を可能にするために、追加のフラッシュセル(オーバープロビジョニング)を含んでいます。

  • 100GbEのディスクレコーダでは、最大12.5GB/secのパケットデータを生成することができます。
    • メタデータ(PcapNgのパケットヘッダ)は含まれない
  • パケットレコーダが高価な30TBのエンタープライズSSDを12台使用している場合、アレイは100GbEのトラフィックを約8時間保持できることになります。DWPDが1であれば、アレイは1.5年強で消耗してしまう。

ただし、この例は例示であり、現実的なものではありません。

  • 100GbEリンクが24時間365日、トラフィックで飽和状態になることはありません。
  • 商業用のサイバーセキュリティ設備では、8時間だけでなく、7~10日分のトラフィックを保持したいと考えています。

結論

SSDは従来のハードディスクドライブに比べて素晴らしい性能をもたらしますが、その向上はアプリケーションに特化したものであり、場合によっては性能が低下してしまうこともあります。

データキャプチャーやレコーダーのように、持続的に書き込みを行うアプリケーションでは、最大持続書き込み仕様以外にも考慮すべき点がいくつかあります。

ストレージアクセラレーション およびセンサープロセッシングの製品およびソリューションの詳細については、BittWare までご連絡ください。