Alexander Larsson, de maker van Flatpak en werkzaam bij Red Hat, heeft een voorlopige versie van patches gepresenteerd waarmee het Composefs-bestandssysteem in de Linux-kernel wordt geïmplementeerd. Het voorgestelde bestandssysteem lijkt op Squashfs en is ook geschikt voor het mounten van afbeeldingen in een alleen-lezen modus. De verschillen zijn dat Composefs efficiënte gezamenlijke opslag van de inhoud van meerdere gemonteerde schijfafbeeldingen biedt en ondersteuning heeft voor de authenticatie van leesbare gegevens. Als toepassingsgebieden waarbij het Composefs-bestandssysteem van nut kan zijn, worden het mounten van containerafbeeldingen en het gebruik ervan voor een Git-achtig repository, OSTree, genoemd.
Composefs maakt gebruik van een opslagmodel met inhoudsgebaseerde adressering, dat wil zeggen dat de primaire identificator niet de bestandsnaam is, maar een hash van de inhoud van het bestand. Dit model zorgt voor deduplicatie en maakt in feite mogelijk dat er slechts ƩƩn exemplaar van identieke bestanden wordt opgeslagen, die in verschillende gemonteerde delen voorkomen. Bijvoorbeeld, containerafbeeldingen bevatten veel standaard systeembestanden en bij het gebruik van Composefs zal elk van deze bestanden door alle gemonteerde afbeeldingen gezamenlijk worden gebruikt, zonder trucs zoals het doormaken via harde links. Daarnaast worden gedeelde bestanden niet alleen als ƩƩn exemplaar op schijf opgeslagen, maar gaan ze ook maar ƩƩn vermelding in de pagina-cache, wat zowel schijfruimte als RAM bespaart.
Om schijfruimte te besparen zijn de gegevens en metadata in gemonteerde afbeeldingen gescheiden. Bij het mounten worden de volgende zaken aangegeven:
- Een binaire index waarin alle metadata van het bestandssysteem zijn opgenomen, inclusief bestandsnamen, toegangsrechten en andere informatie, met uitzondering van de feitelijke inhoud van de bestanden.
- De basisdirectory waarin de inhoud van alle gemonteerde afbeeldingen wordt opgeslagen. Bestanden worden opgeslagen gekoppeld aan de hash van hun inhoud.
Een binaire index wordt gemaakt voor elke image van het bestandssysteem, terwijl de basisdirectory gemeenschappelijk is voor alle images. Om de inhoud van afzonderlijke bestanden en de hele image in een gedeelde opslag te verifiƫren, kan een mechanisme zoals fs-verity worden gebruikt. Dit mechanisme controleert bij toegang tot bestanden of de opgegeven hashes in de binaire index overeenkomen met de feitelijke inhoud (d.w.z. als een aanvaller een wijziging aanbrengt in een bestand in de basisdirectory of als gegevens beschadigd raken door een storing, zal deze controle discrepanties aan het licht brengen).
Bron: opennet.ru
