Alexander Larsson, der Schöpfer von Flatpak und Mitarbeiter bei Red Hat, hat einen vorlĂ€ufigen Satz von Patches vorgestellt, die das Composefs-Dateisystem fĂŒr den Linux-Kernel implementieren. Das vorgeschlagene Dateisystem Ă€hnelt Squashfs und eignet sich ebenfalls fĂŒr das Einbinden von Images im Nur-Lese-Modus. Die Unterschiede liegen darin, dass Composefs ein effizientes gemeinsames Speichern des Inhalts mehrerer eingebundener Disk-Images ermöglicht und die Authentifizierung der lesbaren Daten unterstĂŒtzt. Zu den Anwendungsbereichen, in denen das Composefs-Dateisystem gefragt sein könnte, zĂ€hlen das Einbinden von Container-Images und die Verwendung fĂŒr ein Git-Ă€hnliches Repository OSTree.
Composefs verwendet ein speicheradressierungsbasiertes Modell auf Grundlage des Inhalts, d.h. der primĂ€re Identifier ist nicht der Dateiname, sondern der Hash des Dateiinhalts. Ein solches Modell ermöglicht die Deduplizierung und erlaubt es, tatsĂ€chlich nur eine Kopie identischer Dateien zu speichern, die in verschiedenen eingebundenen Partitionen auftreten. Zum Beispiel enthalten Container-Images viele Standard-Systemdateien, und wenn Composefs verwendet wird, wird jede dieser Dateien von allen eingebundenen Bildern gemeinsam genutzt, ohne Tricks wie das Durchreichen ĂŒberHardlinks zu verwenden. Dabei werden gemeinsame Dateien nicht nur als eine Kopie auf der Festplatte gespeichert, sondern sie beanspruchen auch nur einen Eintrag im Seitencache, was sowohl den Festplattenspeicher als auch den Arbeitsspeicher einsparen hilft.
Zur Einsparung von Festplattenspeicher sind die Daten und Metadaten in den eingebundenen Images getrennt. Beim Einbinden werden angegeben:
- Ein binÀrer Index, der alle Metadaten des Dateisystems, Dateinamen, Zugriffsrechte und andere Informationen enthÀlt, mit Ausnahme des tatsÀchlichen Inhalts der Dateien.
- Ein Basisverzeichnis, in dem der Inhalt aller eingebundenen Images gespeichert ist. Die Dateien werden in Verbindung mit dem Hash ihres Inhalts gespeichert.
Ein binĂ€rer Index wird fĂŒr jedes Abbild des FS erstellt, wĂ€hrend das Basisverzeichnis fĂŒr alle Abbilden einheitlich ist. Zur ĂberprĂŒfung des Inhalts einzelner Dateien und des gesamten Abbilds in einer gemeinsamen Speicherumgebung kann der Mechanismus fs-verity verwendet werden, der beim Zugriff auf Dateien die Ăbereinstimmung der im binĂ€ren Index angegebenen Hashes mit dem tatsĂ€chlichen Inhalt ĂŒberprĂŒft (d.h. wenn ein Angreifer Ănderungen an einer Datei im Basisverzeichnis vornimmt oder Daten aufgrund eines Fehlers beschĂ€digt werden, wird eine solche ĂberprĂŒfung abweichungen aufdecken).
Quelle: opennet.ru
