古参のカーネルメンテナーで、前回紹介したcgroupの新機能実装をメインで担当するChristian Braunerが、ふたたび大きなアップデートのプロポーザルを行っている。AndroidのBinderFSから着想したという「loopfs」がそれだ。Braunerは4月8日(ドイツ時間)、カーネル開発者向けメーリングリスト「LKML.org」にloopfsに関するパッチを連続で投稿した。
- [PATCH 0/8] loopfs -Christian Brauner
ループデバイスファイルシステムの実装に関しては数年前からカーネル開発者の間で議論されており、Braunerも2018年にカナダ・バンクーバーで行われた「Linux Plumbers Conference 2018」において、AndroidのBinderFSの実装の可能性について言及しているが、今回Braunerが提案したloopfsは「過去のアイデアよりもかなり新しく、すっきりしていて、より完璧なアプローチ」(Brauner)を取っているという。
Braunerはloopfsのユースケースのひとつとして、サンドボックス化されたワークロードに対し、容易にループデバイスを動的に割り当てられるようになることを挙げている。当該のワークロードを/devあるいは/dev/loop-controlなどで指定したり、ループデバイス用のファイルディスクリプタを送信するために複雑で入り組んだプロトコルを実装する必要はない。また、loopfsの下では、個々のループデバイスはloopfsのひとつのインスタンスとしてマウントされる。したがってあるインスタンスに含まれるループデバイスは、異なるインスタンスに含まれるループデバイスとは互いに独立した関係となる。なお、1つのインスタンスに含むことができるループデバイスの数は"max"オプションで制限できるという。
また、loopfsはユーザ名前空間のrootでマウントできるため、コンテナでの利用に適したファイルシステムといえる。Braunerによれば、たとえば「mount -o loop <image> <mountpoint>
」のように実行することで、ループデバイス上のイメージをセキュアにマウントすることが可能になるという。
今回のプロポーザルが次期カーネルのLinux 5.7にマージされるかは不明だが、実装されれば新しいファイルシステムとして大きな注目を集めることになりそうだ。