Alexander Larsson, skaberen af Flatpak, som arbejder hos Red Hat, har præsenteret en foreløbig version af patches til implementering af Composefs filsystemet til Linux kernen. Det foreslåede filsystem minder om Squashfs og er også velegnet til montering af billeder i skrivebeskyttet tilstand. Forskellene ligger i, at Composefs muliggør effektiv gemning af indhold fra flere monterede diskbilleder og understøtter autentificering af de læste data. Anvendelsesområderne, hvor Composefs filsystemet kan blive efterspurgt, omfatter montering af containerbilleder og anvendelse til en Git-lignende OSTree repository.
Composefs anvender en opbevaringsmodel baseret på indholdsadresse, dvs. den primære identifikator er ikke filnavnet, men en hash af filens indhold. Denne model muliggør deduplisering og gør det muligt at opbevare kun én kopi af identiske filer, der findes i forskellige monterede partitioner. For eksempel indeholder containerbilleder mange typiske systemfiler, og hvis Composefs anvendes, vil hver af disse filer blive delt af alle de monterede billeder uden at anvende tricks som hårde links. Samtidig opbevares de delte filer ikke kun som én kopi på disken, men også med én post i sidecache, hvilket muliggør besparelser både i disk- og hukommelsesforbrug.
For at spare på diskpladsen er data og metadata i de monterede billeder adskilt. Ved montering angives:
- En binær indeksfil, der indeholder alle filsystemets metadata, filnavne, adgangsrettigheder og andre informationer, undtagen selve filernes indhold.
- Den grundlæggende katalog, hvor indholdet af alle monterede billeder opbevares. Filerne opbevares i forhold til hash af deres indhold.
En binær indeks oprettes for hver FS-billede, mens basisbiblioteket er fælles for alle billeder. For at verificere indholdet af individuelle filer og hele billedet under betingelser for delt lagring kan mekanismen fs-verity anvendes, som ved adgang til filer sikrer, at de angivne hashes i den binære indeks stemmer overens med det faktiske indhold (dvs. hvis en ondsindet person foretager ændringer i filen i basisbiblioteket, eller hvis data bliver beskadiget som følge af en fejl, vil en sådan kontrol afsløre uoverensstemmelser).
Kilde: opennet.ru
