componefs ist ein neues Dateisystem, das für Linux vorgeschlagen wird
Kürzlich haben die Nachrichten das verbreitet Alexander Larson, der Schöpfer von Flatpak bei Red Hat, hat hat eine Vorschau der Patches gepostet, die implementiert werden das Dateisystem ComposeFS für den Linux-Kernel.
Das vorgeschlagene Dateisystem ähnelt Squashfs und eignet sich auch zum Mounten von Nur-Lese-Images. Die Unterschiede reduzieren sich auf die Fähigkeit von ComposeFS, den Inhalt mehrerer gemounteter Disk-Images effizient zu teilen und die Authentifizierung lesbarer Daten zu unterstützen.
Anwendungsbereiche, in denen ComposeFS gefragt sein könnte, sind das Mounten von Container-Images und die Verwendung eines Git-ähnlichen OTree-Repositorys. Dadurch können Inhaltsdateien zwischen Bildern geteilt werden, selbst wenn Metadaten (wie Zeitstempel oder Dateibesitz) zwischen Bildern variieren.
ComposeFS verwendet ein inhaltsbasiertes Adressierungsspeichermodell, Das heißt, der primäre Bezeichner ist nicht der Dateiname, sondern ein Hash des Dateiinhalts. Dieses Model bietet Deduplizierung und erlaubt, nur eine Kopie zu speichern derselben Dateien, die auf verschiedenen gemounteten Partitionen gefunden wurden.
Im Wesentlichen ist composefs eine Möglichkeit, schreibgeschützte Bilder zu erstellen und zu verwenden. die ähnlich verwendet werden, wie Sie beispielsweise Loopback verwenden würden Squash-Bilder. Darüber hinaus hat composefs zwei neue Grundlagen Merkmale. Erstens ermöglicht es die gemeinsame Nutzung von Dateidaten (sowohl auf der Festplatte als auch auf Seitencache) zwischen Bildern, und zweitens haben Sie dm-verity like Validierung lesen.
Zum Beispiel Container-Images enthalten viele gemeinsame Dateien system und mit Composefs wird jede dieser Dateien von allen gemounteten Images geteilt, ohne dass Tricks wie die Weiterleitung mit harten Links verwendet werden.
Gleichzeitig werden gemeinsam genutzte Dateien nicht nur als einzelne Kopie auf der Festplatte gespeichert, sondern auch durch einen Eintrag im Seitencache verwaltet, wodurch sowohl Festplatte als auch RAM gespart werden können.
Composefs unterstützt auch die fs-verity-Validierung von Inhaltsdateien. Auf diese Weise wird der Digest der Inhaltsdateien im Image gespeichert, und composefs überprüft, ob für die verwendete Inhaltsdatei ein fs-verity-Digest für den Abgleich aktiviert ist. Das bedeutet, dass der Backing-Inhalt in keiner Weise (versehentlich oder böswillig) verändert werden kann, ohne dass dies bei der Verwendung der Datei erkannt wird.
Sie können fs-verity auch für die Image-Datei selbst verwenden und den erwarteten fs-verity-Digest als Mount-Option übergeben, der von composefs validiert wird. In diesem Fall haben wir volles Vertrauen sowohl in die Daten als auch in die Metadaten der gemounteten Datei. Dies behebt eine Schwachstelle, die fs-verity hat, wenn es alleine verwendet wird, da es nur Dateidaten, keine Metadaten, überprüfen kann.
Um Speicherplatz zu sparen, werden Daten und Metadaten in gemounteten Images getrennt. Geben Sie bei der Montage Folgendes an:
- Ein binärer Index, der alle Dateisystem-Metadaten, Dateinamen, Berechtigungen und andere Informationen außer dem eigentlichen Inhalt der Dateien enthält.
- Das Basisverzeichnis, in dem der Inhalt aller bereitgestellten Bilddateien gespeichert wird. Dateien werden relativ zum Hash ihres Inhalts gespeichert.
- Für jedes FS-Image wird ein binärer Index erstellt und das Basisverzeichnis ist für alle Images gleich. Um den Inhalt einzelner Dateien und des gesamten Abbilds unter Shared-Storage-Bedingungen zu verifizieren, kann der Mechanismus fs-verity verwendet werden, der beim Zugriff auf Dateien überprüft, ob die im Binärindex angegebenen Hashes dem Inhalt entsprechen. wenn ein Angreifer eine Änderung an einer Datei im Basisverzeichnis vornimmt oder Daten infolge eines Fehlers beschädigt werden, wird ein solcher Abgleich eine Diskrepanz aufdecken).
schließlich, wenn Sie sind daran interessiert, mehr darüber zu erfahren, können Sie das überprüfen Details im folgenden Link.