為 Linux 提出的 Composefs 文件系統

Red Hat 的 Flatpak 的創建者 Alexander Larsson 發布了為 Linux 內核實現 Composefs 文件系統的補丁預覽。 建議的文件系統類似於 Squashfs,也適用於掛載只讀圖像。 差異歸結為 Composefs 有效共享多個已安裝磁盤映像內容的能力以及對可讀數據身份驗證的支持。 作為可能需要 Composefs FS 的應用領域,容器鏡像的掛載和類 Git OSTree 存儲庫的使用被稱為。

Composefs 使用基於內容的尋址存儲模型,即主要標識符不是文件名,而是文件內容的哈希值。 此模型提供重複數據刪除功能,並允許您實際僅存儲出現在不同掛載分區中的相同文件的一個副本。 例如,容器鏡像包含許多常見的系統文件,而使用 Composefs,這些文件中的每一個都將被所有掛載的鏡像共享,而無需使用硬鏈接轉發等技巧。 同時,共享文件不僅在磁盤上存儲為單個副本,而且在頁面緩存中也由一個條目管理,從而可以同時節省磁盤和RAM。

為了節省磁盤空間,數據和元數據在裝載的圖像中是分開的。 安裝時:

  • 包含所有文件系統元數據、文件名、權限和其他信息(文件的實際內容除外)的二進制索引。
  • 存儲所有掛載圖像文件內容的基本目錄。 文件是根據其內容的哈希值存儲的。

為每個 FS 圖像創建一個二進制索引,並且基本目錄對所有圖像都是相同的。 為了在共享存儲條件下驗證單個文件和整個圖像的內容,可以使用 fs-verity 機制,該機制在訪問文件時檢查二進制索引中指定的哈希值是否與實際內容相對應(即如果攻擊者更改基本目錄中的文件或因故障而損壞的數據,這樣的協調將揭示差異)。

來源: opennet.ru

添加評論