Linux 向けに提案された Composefs ファイル システム

Flatpak の作成者で Red Hat に勤める Alexander Larsson は、Linux カーネル用の Composefs ファイル システムを実装するパッチの暫定バージョンを発表しました。 提案されたファイル システムは Squashfs に似ており、読み取り専用モードでイメージをマウントするのにも適しています。 違いは、Composefs が複数のマウントされたディスク イメージの内容を効率的に共有する機能と、読み取り可能なデータの認証をサポートする機能にあります。 Composefs が役立つアプリケーション領域には、コンテナ イメージのマウントや Git のような OSTree リポジトリの使用などがあります。

Composefs はコンテンツベースのストレージ モデルを使用します。 主な識別子はファイル名ではなく、ファイルの内容のハッシュです。 このモデルは重複排除を提供し、異なるマウントされたパーティションにある同一ファイルのコピーを XNUMX つだけ実際に保存できるようにします。 たとえば、コンテナ イメージには多くの共通システム ファイルが含まれており、Composefs を使用すると、ハード リンクを使用した転送などのトリックを使用しなくても、これらの各ファイルはマウントされたすべてのイメージで共有されます。 この場合、共有ファイルはディスク上に XNUMX つのコピーとして保存されるだけでなく、ページ キャッシュ内の XNUMX つのエントリも消費されるため、ディスクと RAM の両方を節約できます。

ディスク容量を節約するために、マウントされたイメージではデータとメタデータが分離されます。 取り付ける際には、次のことを指示してください。

  • 実際のファイルの内容を除く、すべてのファイル システムのメタデータ、ファイル名、アクセス許可、その他の情報を含むバイナリ インデックス。
  • マウントされたすべてのイメージのファイルの内容が保存されるベース ディレクトリ。 ファイルは、その内容のハッシュと関連付けて保存されます。

ファイル システム イメージごとにバイナリ インデックスが作成され、ベース ディレクトリはすべてのイメージで同じになります。 共有ストレージ条件下で個々のファイルの内容とイメージ全体を検証するには、fs-verity メカニズムを使用できます。このメカニズムは、ファイルにアクセスするときに、バイナリ インデックスで指定されたハッシュと実際のコンテンツの対応関係をチェックします (つまり、攻撃者がベース ディレクトリ内のファイルに変更を加えたり、障害の結果としてデータが破損したりした場合、そのような調整により不一致が明らかになります)。

出所: オープンネット.ru

コメントを追加します