Udviklerne af Fedora-projektet har til hensigt at skifte standarden for atomisk opdaterede versioner af distributionen til filsystemet Composefs. Hvis forslaget godkendes af FESCo (Fedora Engineering Steering Committee), som står for den tekniske del af udviklingen af Fedora-distributionen, vil Composefs begynde at blive anvendt i Fedora Silverblue (GNOME), Fedora Kinoite (KDE), Fedora CoreOS, Fedora IoT, Fedora Sway Atomic og Fedora Budgie Atomic-bygninger.
Ændringen vil gøre det muligt at anvende en rodpartition, der fungerer i skrivebeskyttet tilstand, samt i fremtiden at implementere integritetsverifikation for systempartitionen, der kan identificere opståede problemer under drift. Partitionerne /etc og /var vil fortsætte med at blive monteret med mulighed for skrivning.
I øjeblikket er arbejdet organiseret gennem montering af partitionen /usr i skrivebeskyttet tilstand, mens rodpartitionen monteres i en tilstand, der tillader skrivning, og ændringer forhindres på adgangsniveauet ("chattr +i /"). Integritetskontrol udføres på opdateringsstadiet af partitionen, hvilket ikke gør det muligt at identificere skader og ændringer, der er foretaget under drift, uden at initiere en fuld kontrol af alle data med kommandoen "ostree fsck".
Filsystemet Composefs er implementeret som et lag oven på de allerede eksisterende filsystemer OverlayFS og EROFS i kernen, og det er optimeret til effektivt delt opbevaring af indholdet fra flere monterede diskbilleder. Funktionaliteten i EROFS (Extendable Read-Only File System) opfylder kravene til Composefs fra Linux-kernens version 5.15, mens OverlayFS gør det fra kerneversion 6.5. Composefs muliggør oprettelse af lagdelte filsystemer, hvor vilkårlige filsystemtræer i skrivebeskyttet tilstand lægges over standard Linux-filsystemer, der fungerer som bundlag.
Composefs adskiller sig fra allerede eksisterende lignende filsystemer ved at støtte delt opbevaring af indhold fra forskellige diskbilleder og have funktioner til verifikation af de læste data. I Composefs anvendes en adressemodel baseret på indhold, hvor den primære identificering ikke er filnavnet, men en hash af filens indhold. Denne model sikrer deduplication og gør det muligt kun at opbevare én kopi af identiske filer, der findes i forskellige monterede partitioner.
Systemafbildninger indeholder normalt mange standardfiler, og med Composefs vil hver af disse filer blive delt af alle monterede billeder uden brug af tricks såsom omdirigering med hårde links. Dette betyder, at de delte filer ikke kun gemmes som én kopi på disken, men også kun bruger én post i sidecache, hvilket sparer både disk- og RAM-hukommelse.
For at spare diskplads opdeles data og metadata i Composefs, og ved montering angives et binært indeks, der indeholder alle metadata for filsystemet, filnavne, adgangsrettigheder og andre oplysninger. Metadataindekser oprettes for hvert FS-billede og gemmes i en separat fil i EROFS-format (i loopback-tilstand monteres EROFS-billedet, som kun indeholder metadata). De faktiske filer fra alle monterede billeder gemmes i et fælles grundlæggende bibliotek i et almindeligt FS (ext4, xfs, btrfs) og knyttes til billedet via den udvidede attribut rusted.overlay.redirect, hvormed OverlayFS finder de nødvendige filer baseret på indholdets hash.
For at verificere indholdet af individuelle filer og hele billedet under fælles lagring anvendes mekanismen fs-verity, som ved adgang til filerne kontrollerer overensstemmelsen mellem de angivne hashes i det binære indeks og det faktiske indhold — hvis en angriber ændrer en fil i den grundlæggende mappe, eller hvis dataene beskadiges som følge af en fejl, vil en sådan kontrol afsløre uoverensstemmelser.
Kilde: opennet.ru
