# ホスト誘導データ配置
## 定義
ホスト誘導データ配置とは、NAND フラッシュ SSD の内部ガーベジコレクション(有効データの再配置)を減らすために、ホスト側(アプリケーション・ファイルシステム・シムレイヤーなど)がデータの意味的な関係をデバイスへ伝え、物理的な配置を制御する仕組みの総称である。関連するデータをまとめて配置することで、無関係なデータがフラッシュ上で混在するのを防ぎ、ドライブの断片化を減らす。Multi-Stream SSD(2016年導入)・Open-Channel SSD(2017年)・Zoned Namespace SSD(ZNS, 2021年)・Flexible Data Placement(FDP, 2022年)といったインターフェースが、ヒント提供からホストによる配置・ガーベジコレクションの全面管理まで、さまざまな粒度でこの機能を提供してきた。(Source: [[@2025__SoCC__Valet - Efficient Data Placement on Modern SSDs]])
[[@2025__SoCC__Valet - Efficient Data Placement on Modern SSDs]] は、効果的な配置戦略を2つの軸に一般化する: **affinity(親和性)**は同一の書き込み元(アプリケーション、あるいはアプリケーション内の1つの論理的ライタ)が生成するデータをまとめ、独立したデータストリームを別々のデバイス資源に配置することで性能分離を提供する。**lifetime(寿命)**は生成・削除の時間局所性を持つデータをまとめることで、消去時のデータ再配置を最小化する。この2軸による定式化は、Linux カーネルの RWH_HINT インターフェースのような temperature(hot/cold/warm/undefined の4値)ベースの粗い分類を置き換えるものとして提示されている。(Source: [[@2025__SoCC__Valet - Efficient Data Placement on Modern SSDs]])
## 横断的知見
- **ホスト誘導配置インターフェースは、歴史的に「少数アプリケーションで実証され、数年で廃れる」パターンを繰り返してきた**: Multi-Stream(2016)・Open-Channel SSD(2017)はいずれも Linux カーネルサポートが Deprecated となり、ZNS(2021)・FDP(2022)も対応ファイルシステム・アプリケーションは f2fs・btrfs、RocksDB・CacheLib 程度に限られる(論文 Table 1)。これは、配置ロジックをアプリケーションまたはファイルシステムに直接実装する従来のアプローチが、インターフェース変化への追従コストの高さゆえに持続しないことを示唆する。(Source: [[@2025__SoCC__Valet - Efficient Data Placement on Modern SSDs]])
- **配置責務をアプリケーション・カーネルいずれからも切り離し、userspace の中間層(シムレイヤー)に置くという設計判断が、追従性と性能を両立させる実証的な解として提示された**: [[Valet]] はこの責務分離により、RocksDB・MongoDB・CacheLib という3つの異なる特性を持つアプリケーションに同一アーキテクチャを無変更で適用しつつ、アプリケーション固有ソリューション(zenfs)に匹敵する性能を達成した。詳細は [[シムレイヤー]] を参照。(Source: [[@2025__SoCC__Valet - Efficient Data Placement on Modern SSDs]])
## 未解決の問い
- affinity と lifetime の2軸による一般化は、ログ構造化(append-only)アプリケーション以外(in-place 更新を多用するシステムなど)にどこまで適用できるか。
- Flexible Data Placement(FDP)はハードウェアの一般提供が進んでおらず、NVMe I/O 経由でしかディレクティブを提供できないという制約がある。この制約が緩和された場合、affinity/lifetime ベースの配置ヒントは FDP へどう写像されるべきか。
- ヒント生成の自動化(learning-based)は、ヒューリスティックに比べてどの程度の追加テールレイテンシと引き換えに汎用性を得ているか。ワークロードが変化する実運用環境での長期的な安定性は未検証。
## 関連
- ソース: [[@2025__SoCC__Valet - Efficient Data Placement on Modern SSDs]]
- 概念: [[シムレイヤー]] / [[ゾーン名前空間SSD]]
- エンティティ: [[Valet]] / [[zenfs]] / [[f2fs]]
- MOC: なし(新設概念のため今後の関連 MOC 整備を待つ)