[BPF for storage: an exokernel-inspired approach](https://arxiv.org/abs/2102.12922) [[2021__HotOS__BPF for storage - an exokernel-inspired approach]] [[eBPF|BPF]]はnetworkingとtracing,securityへの適用事例がほとんどなのだけど,storageにアプローチすることはないのかなと思ってたら,それらしい論文がでてきた.arXivなので査読に通っているわけではない. [Cilium & eBPFのSlackワークスペースでも話題になっていた.](https://cilium.slack.com/archives/C01EPDZD88P/p1616854214001900)タイミングと論文のページ数からみてHostOSに投稿していたのかもしれないとコメントがあった.どうでもいいけど,アブストの下にソロモン王の有名な箴言が引用されてておもしろい. - カーネルのストレージパスのオーバーヘッドが、新しいNVMeストレージデバイスのアクセスレイテンシの半分を占める。 - カーネルのI/O処理スタックの奥深くにユーザー定義関数を組み込むことで、BPFを使ってこのオーバーヘッドを削減することを検討した。 - 一連の依存性のあるI/Oリクエストを発行する場合、このアプローチは、カーネルレイヤーをバイパスし、ユーザーとカーネルの境界を越えないようにすることで、IOPSを2.5倍以上に向上させ、レイテンシーを半分にすることができる。 - しかし、ファイルシステムの安全性の保証や、物理ブロックのアドレスとファイルのオフセットとの間の変換など、ファイルシステムやブロック層をバイパスする際に重要な特性が失われることは避けなければならない。 - ここでは、90年代後半に登場したexokernelファイルシステムにヒントを得て、これらの問題に対する潜在的なソリューションを紹介する。 引用文献である次の,eBPFでネットワークごしにストレージにアクセスする論文もおもしろそう. [Safe and Efficient Remote Application Code Execution on Disaggregated NVM Storage with eBPF](https://arxiv.org/abs/2002.11528)