いまさらながら HotStrage2022 要約
ChatGPT先生に、HotStrage2022 を要約してもらった。
-
LambdaObjects: Re-aggregating storage and execution for cloud computing
- この発表では、クラウドコンピューティングのためのストレージと実行の再集約について提案しています。LambdaObjectsは、データと関数を一緒に束ねることで、オブジェクト指向プログラミングのクラスに似た概念を提供します。これにより、データ転送のコストを削減し、強い一貫性を実現します。また、プレリミナリな評価結果も示しています。
https://www.hotstorage.org/2022/slides/hotstorage22-paper4-presentation_slides.pdf
"Infusing Pub-Sub Storage with Transactions"という発表では、ストレージシステムに新しい機能を追加するためのフレームワーク、FDMI (Filter Driven Message Interface) を紹介しています。FDMIは、クライアント操作に対してプラグインが購読し、それに応じてストレージシステムの変更を行うことができます。プラグインのアクションはストレージの状態に依存し、トランザクションの結合を通じてプラグインの操作を原子的に実行することができます。
FDMIは3つのプラグインクラスを提供します:
- クラスA:クライアント操作がコミットされた後に通知を受け取り、ソースストレージシステムに何も追加または変更しません。
- クラスB:クライアント操作がコミットされた後に通知を受け取り、プラグインが成功した場合には追加のCORTXトランザクションをコミットすることが保証されます。
- クラスC:ソーストランザクション操作の通知を受け取り、クライアントと協力してトランザクションを更新およびコミットします。
このフレームワークは、プラグインの開発体験を改善し、プラグインを独立してスケーラブルにすることができます。また、幅広いストレージ機能のニーズを満たすためにこれらのプラグインクラスを使用します。ただし、I/Oパスに多くのホップを追加することでオーバーヘッドが生じる可能性があります。この問題は、FDMIソースでクライアントI/Oペイロードをキャッシュすることや、計算をFDMIソースにオフロードすることで最適化することができます。
https://www.hotstorage.org/2022/slides/hotstorage22-paper130-presentation_slides.pdf
F2FS(Flash-Friendly File System)がアドレスリマップと出会ったときの挙動について説明しています。主な内容は以下の通りです:
-
アドレスリマッピングとフラッシュストレージ:フラッシュストレージにおけるアドレスリマップコマンドの使用例が紹介されています。これには、ジャーナリング(冗長な書き込みの削除)やセグメントクリーニング(有効データの移動の削除)などが含まれます。
-
F2FSの欠点:F2FSはランダム更新性能を向上させるためにout-of-placeポリシー(OPU)を使用しますが、これにより無効なブロックが生成され、有効なブロックを回収するためにセグメントクリーニングが必要となります。また、OPUは最新のデータ位置を追跡するための追加のメタデータオーバーヘッドを生成します。
-
F2FSとアドレスリマッピングの組み合わせ:ランダム更新が集中するワークロード下でF2FSが重大なパフォーマンス低下を経験する可能性があります。これを緩和するために、データ書き込み直後にアドレスリマップを実行する新しいアイデアが提案されています。
-
リマップベースのインプレースアップデート(RM-IPU):データブロックを現在のセグメントに書き込み、更新ブロックのリマップコマンドを発行し、セグメントの書き込みを元に戻すという手順が説明されています。
-
パフォーマンス評価:FEMU(QEMUベースのNVMe SSDシミュレータ)を使用した評価セットアップと、FioベンチマークとTPC-Cベンチマーク(MySQL)を使用したワークロードが紹介されています。
-
結論と今後の方向性:RM-IPUは、ランダム書き込み集中ワークロード下でのF2FSの欠点を解決するために、ログ構造方式とアドレスリマップの利点を活用します。今後の方向性としては、他のワークロード、F2FSのアトミックライトとRM-IPU、F2FSの適応的な書き込みモード選択などが挙げられ
-
hotstorage22-paper94-presentation_slides.pdf
- このプレゼンテーションは、データセンターのストレージシステムにおけるデータの配置とアクセスパターンについて説明しています。特に、データの局所性とストレージデバイスの性能による影響に焦点を当てています。また、データ配置戦略の最適化と、データアクセスパターンの予測に基づくストレージシステムのパフォーマンス向上についても議論しています。
"https://www.hotstorage.org/2022/slides/hotstorage22-paper24-presentation_slides.pdf"
このスライドは、Zoned Namespaces (ZNS) SSDの内部並列性を利用するための2つのモジュールを提案しています。ZNSは、論理アドレス空間を複数のゾーンに分割する新しいストレージインターフェースです。各ゾーンは一つ以上のフラッシュブロックにマッピングされ、特定の制約(シーケンシャルライトとイレース(リセット)-ビフォア-ライト)があります。
提案された2つのモジュールは次の通りです:
-
Interference Profiler:このモジュールは、干渉を生成するゾーン間の関係を検出します。具体的には、読み取り要求を送信して帯域幅を測定し、帯域幅が低い場合は干渉が発生していると判断します。これにより、干渉を引き起こすゾーンのセット(Conflict Group)を特定します。
-
Interference-aware I/O Scheduler:このモジュールは、Interference Profilerから得られた情報を利用して、I/O要求の順序を調整し、ゾーン間の干渉のレベルを低減します。具体的には、異なるConflict Groupから来るI/O要求を可能な限りスケジュールします。
評価結果によれば、これらのモジュールを使用すると、帯域幅とレイテンシが大幅に改善することが示されています。具体的には、提案されたスケジューラ(zns_mq)は、平均で1.98倍の帯域幅の改善と、99.9%のタイルレイテンシが平均で11倍短くなることが示されています。
"https://www.hotstorage.org/2022/slides/hotstorage22-paper102-presentation_slides.pdf"
のスライドは、フラッシュメモリにおける読み書きの干渉を軽減するための「Fair I/O Scheduler」について説明しています。
フラッシュメモリでは、同じダイ(チップ内の領域)での書き込み操作が先行すると、読み取り操作が遅延します。これは、フラッシュチップ内の書き込み遅延が読み取りよりも10〜40倍長いためです。特に、Forced Unit Access(FUA)フラグが設定された書き込み要求は、読み書きの干渉を引き起こす可能性が高いとされています。
この問題を解決するために、著者は「TABS(per-Type fAir Bandwidth I/O Scheduler)」という新しいI/Oスケジューラを提案しています。TABSの目標は、各I/Oタイプ(読み取りとFUAフラグ付き書き込み)に対して公平な帯域幅を提供することです。これは、FUAフラグ付きの書き込みのディスパッチ率を制御することで達成されます。
TABSは次の2つのフェーズで動作します:
-
IDLE Phase:このフェーズでは、TABSは現在のワークロードのI/Oパターンを観察します。スケジューリングは無効化され、各I/Oタイプ(読み取りとFUA書き込み)のディスパッチされたI/O要求の数をカウントします。全体のI/Oディスパッチ率が閾値を超えると、フェーズはSCHEDに切り替わります。
-
SCHED Phase:このフェーズでは、TABSはFUAフラグ付きの書き込み要求をFUA遅延キューに挿入します。そして、FUA書き込みを「𝑁𝐹𝑈𝐴,𝑑𝑒𝑞𝑢𝑒𝑢𝑒𝑑」だけディスパッチします。ここで、「𝑁𝐹𝑈𝐴,𝑑𝑒𝑞𝑢𝑒𝑢𝑒𝑑」は「𝑇ℎ𝑟𝑜𝑡𝑡𝑙𝑖𝑛𝑔 𝐹𝑎𝑐𝑡𝑜𝑟 × 𝑁𝑟𝑒𝑎𝑑」で計算され、I/Oパフォーマンスを決定する主要な要素です。
"https://www.hotstorage.org/2022/slides/hotstorage22-paper12-presentation_slides.pdf"
このスライドは、Zoned Namespace SSD(ZNS SSD)上のLSM(Log-Structured Merge-tree)ベースのKey-Valueストアに対する「Compaction-Aware Zone Allocation」(CAZA)という新しいデータ配置アルゴリズムを提案しています。
ZNS SSDは、複数の論理ブロックをゾーンにグループ化し、各ゾーンはZNS SSDの消去ユニットとなります。ZNS SSDはシーケンシャルライトのみを許可し、同じ論理ブロック上の上書きを許可しません。これにより、ガベージコレクションの必要性がなくなりますが、データの配置(ゾーンの割り当て)とフリースペースの再利用(ゾーンのクリーニング)の責任がユーザーアプリケーションに移されます。
LSMベースのKey-Valueストア(LSM-KV)は、シーケンシャルI/Oパターンとアウトオブプレースの更新を持つため、ZNS SSDに適しています。LSM-KVは、データの更新をコンパクションを通じて行います。
ZenFSは、LSM-KVのユーザーレベルのファイルシステムで、RocksDBのバックエンドモジュールとして機能します。ZenFSは、LSM-KV内のデータのゾーン割り当てとフリースペースの再利用のためのゾーンクリーニングを担当します。しかし、ZenFSはどのSSTablesが一緒に削除されるかを正確に予測することができず、ゾーンクリーニング中に有効なデータのコピーを引き起こす可能性があります。
これに対して、提案されたCAZAは、一緒にコンパクションされるSSTablesを同じゾーンに割り当てることで、SSTablesのライフタイムを正確に推定します。評価結果によれば、CAZAは、ZenFSのLifeTimeベースのゾーン割り当て(LIZA)に比べて、書き込み増幅を7.4%低減し、ゾーンクリーニング中のデータコピーを2倍に減らすことができます。
https://www.hotstorage.org/2022/slides/hotstorage22-paper7-presentation_slides.pdf"
このスライドは、Zoned Namespace SSD(ZNS SSD)上のLSM(Log-Structured Merge-tree)ベースのKey-Valueストアに対する「Lifetime-Leveling LSM-tree Compaction」(LL-Compaction)という新しいコンパクションアルゴリズムを提案しています。
ZNS SSDは、論理アドレス空間を固定サイズのゾーンに分割し、各ゾーンはシーケンシャルに書き込まれ、再利用のために明示的にリセットされます。ZNS SSDはSSD側のガベージコレクションを行わないため、ホスト側でガベージコレクションを管理する必要があります。
LSMベースのKey-Valueストアは、シーケンシャルI/Oパターンとアウトオブプレースの更新を持つため、ZNS SSDに適しています。しかし、現在のLevelDBのコンパクションアルゴリズムでは、異なるライフタイムを持つレベル間でスペースの増大(Space Amplification)が発生します。
この問題を解決するために、提案されたLL-Compactionは、コンパクションポインタを保持するためにSSTをCPi+1で分割し、短命なSSTはホールを防ぐためにT-Zoneに書き込まれます。これにより、ZNS SSD上のスペースの増大を軽減し、パフォーマンスを向上させることができま
"https://www.hotstorage.org/2022/slides/hotstorage22-paper10-presentation_slides.pdf"
このスライドは、データ集約型アプリケーションのための「In-Flash Acceleration」、つまり「PiF(Processing-in-Flash)」という新しいストレージアーキテクチャを提案しています。
従来のストレージアーキテクチャでは、大量のデータ移動が必要であり、これがパフォーマンスとエネルギー効率のボトルネックとなっています。これに対し、PiFアーキテクチャでは、データが物理的に存在するフラッシュチップ内に計算を移動することで、データ移動を大幅に削減します。
しかし、PiF技術にはいくつかの課題があります。例えば、フラッシュからアクセラレータへの大量のデータ移動が必要であったり、フラッシュチップの数に対してスケーラブルな加速能力がないといった問題があります。
これらの課題を解決するために、著者たちは「Pattern Matching Enabled PiF Architecture」(パターンマッチングを有効化したPiFアーキテクチャ)を提案しています。このアーキテクチャでは、特定のパターンを検索するための「set_pattern」コマンドと、指定されたパターンを含むページのみを出力する「read_when_matched」コマンドが追加されています。
また、信頼性の高いインフラッシュリードをサポートするために、複雑なECCエンジンを直接実装する代わりに、軽量で低複雑性のECCモジュールを設計しています。さらに、バンド幅劣化を防ぐために、全ての操作をオーバーラップさせるパイプライン構造を採用しています。
評価結果によれば、提案されたPiFベースのSSDは、実行時間と電力効率の両方でPiSベースのSSDを数倍上回る性能を示しています。
"https://www.hotstorage.org/2022/slides/hotstorage22-paper69-presentation_slides.pdf"
このスライドは、細かなI/Oホワイトリストを使用してファイルをランサムウェア攻撃から保護する「Alohomora」という新しいシステムを紹介しています。
ランサムウェアはサイバーセキュリティの大きな脅威となっており、その被害は2021年には200億ドルに達しました。既存の対策は、未知のランサムウェアの挙動や署名を防ぐことができない検出中心の手法、バックアップ操作による過度のI/Oを伴う復元中心の手法、またはランサムウェアが事前に承認された(ホワイトリスト化された)プログラムに注入された場合に防ぐことができない許可中心の手法など、いくつかの制限があります。
これに対して、AlohomoraはI/Oアクティビティに基づいたホワイトリストを提供します。I/Oアクティビティは特定のI/O実行のセマンティックコンテキスト、つまりプログラムの実行パスを表します。Alohomoraでは、書き込まれたページのPrC(Program Context)値を保持し、コンテキストスイッチ時にPrC値を保存・復元します。
また、Alohomoraはホワイトリストを作成するために、事前に承認されたI/OアクティビティのPrC値を事前に知る必要があります。これには静的PrC抽出方法と動的PrC抽出方法の両方が使用されます。
評価結果によれば、Alohomoraは37の公開ランサムウェアプログラム(例えば、GonnaCry、RAASNet、Ransom0、Hidden-tearなど)に対して成功裏に防御しました。また、パフォーマンスオーバーヘッドは平均でわずか3.7%であり、ほとんどI/Oパフォーマンスの低下はありませんでした。
"https://www.hotstorage.org/2022/slides/hotstorage22-paper31-presentation_slides.pdf"
このスライドは、ストレージシステムのパフォーマンスを向上させるための新しいアプローチ、「Pegasus」について説明しています。
Pegasusは、ディスクI/Oの遅延を最小限に抑えるための新しいスケジューリングアルゴリズムを提供します。これは、ディスクI/Oの遅延がストレージシステムのパフォーマンスに大きな影響を与えるためです。
Pegasusの主な特徴は、I/O要求のスケジューリングを行う際に、ディスクの物理的なレイアウトを考慮に入れることです。これにより、ディスクヘッドの移動を最小限に抑え、I/O要求の処理時間を短縮することができます。
Pegasusのアルゴリズムは、ディスクの物理的なレイアウトを考慮に入れるだけでなく、I/O要求の優先順位も考慮に入れます。これにより、重要なI/O要求が優先的に処理され、システムの全体的なパフォーマンスが向上します。
Pegasusの評価結果によれば、既存のI/Oスケジューリングアルゴリズムに比べて、Pegasusは平均で30%のパフォーマンス向上を達成しました。これは、Pegasusがディスクの物理的なレイアウトとI/O要求の優先順位を同時に考慮に入れることで、ディスクI/Oの遅延を大幅に削減した結果です。
"https://www.hotstorage.org/2022/slides/hotstorage22-paper5-presentation_slides.pdf"
このスライドは、次世代ストレージシステムのためのLinuxソフトウェアRAIDシステムを最適化する「ScalaRAID」という新しいアプローチを紹介しています。
RAIDは、スーパーコンピュータ、クラウド、データセンターなど、多くの領域で広く使用されています。しかし、ハードウェアRAIDカードは高速SSDをサポートする能力が限られており、ソフトウェアRAIDが次世代ストレージに適した選択肢となっています。
しかし、現行のLinuxソフトウェアRAID(mdraid)はスケーラブルではなく、CPUスレッド数が増えても帯域幅がスケールせず、またSSD数が増えてもピークスループットがスケールしないという問題があります。これは、mdraidのロックメカニズムが主なボトルネックとなっているためです。
これに対して、ScalaRAIDは、ロックメカニズムを最適化することで、次世代ストレージのためのスケーラブルなパフォーマンスを実現します。具体的には、リソースの異なる範囲を管理するための複数のロックを使用し、スレッドレベルの並列性を最大化します。また、衝突を避けるためのカスタマイズされたデータ構造を提案しています。
評価結果によれば、ScalaRAIDは、帯域幅を89.4%向上させ、99.99パーセンタイルの遅延を85.4%減少させることができました。これは、ScalaRAIDがロックメカニズムを最適化し、スレッドレベルの並列性を最大化した結果です。
"https://www.hotstorage.org/2022/slides/hotstorage22-paper32-presentation_slides.pdf"
このスライドは、ファイルの断片化がI/O制御にどのように影響するか、そしてそれをどのように解決するかについて説明しています。
ファイルの断片化は、ファイルが複数の断片に分散される現象を指します。これはI/Oの数を増やし、I/Oのサイズを減らし、I/Oのランダム性を増加させることで、パフォーマンスを低下させます。
LinuxのI/O制御メカニズム(CFQ、BFQ、IOCost)は、断片化によってそれぞれ異なる問題を引き起こします。CFQでは、断片化により同じデータに対するI/Oの数が増えます。BFQでは、断片化により同じデータに対する時間が増えます。IOCostでは、断片化によりデバイス占有の推定が失敗します。
これらの問題を解決するための一つの解決策として、デフラグメンテーション(断片化の解消)が提案されています。デフラグメンテーションは、CFQではI/Oの数を減らし、BFQでは平均I/Oサイズを増やし、IOCostではI/Oパフォーマンスを安定化させることで、断片化による問題を軽減します。
評価結果によれば、デフラグメンテーションは、CFQ、BFQ、IOCostの各I/O制御メカニズムにおいて、断片化によるパフォーマンスの低下を大幅に改善することができました。