De ontwikkelaars van het Fedora-project zijn van plan om als standaard de atomair updatebare versies van de distributie over te zetten naar het bestandssysteem Composefs. Als het voorstel wordt goedgekeurd door de FESCo-commissie (Fedora Engineering Steering Committee), die verantwoordelijk is voor de technische ontwikkeling van de Fedora-distributie, zal Composefs worden toegepast in de builds van Fedora Silverblue (GNOME), Fedora Kinoite (KDE), Fedora CoreOS, Fedora IoT, Fedora Sway Atomic en Fedora Budgie Atomic.
Deze wijziging maakt het mogelijk om in deze builds een root-partitie te gebruiken die in een alleen-lezen modus werkt, en daarnaast in de toekomst mogelijkheden voor integriteitsverificatie van de systeempartitie in te schakelen, zodat problemen tijdens het gebruik kunnen worden gedetecteerd. De partities /etc en /var blijven schrijfbaar gemonteerd.
Op dit moment is het systeem georganiseerd met de /usr-partitie gemonteerd in alleen-lezen modus, terwijl de root-partitie wordt gemonteerd in een schrijfbare modus, waarbij wijzigingen op het niveau van toegangsrechten worden verboden (āchattr +i /ā). Integriteitscontrole vindt plaats tijdens de update van de partitie, wat het onmogelijk maakt om beschadigingen en wijzigingen die tijdens het gebruik zijn aangebracht te detecteren zonder een volledige controle van alle gegevens met het commando 'ostree fsck' te initiĆ«ren.
Het bestandssysteem Composefs is geïmplementeerd als een uitbreiding bovenop de al aanwezige besturingssystemen OverlayFS en EROFS en is geoptimaliseerd voor efficiënte gezamenlijke opslag van de inhoud van verschillende ingemonteerde schijfbeelden. De functionaliteit van EROFS (Extendable Read-Only File System) voldoet aan de eisen van Composefs vanaf versie 5.15 van de Linux-kernel, en OverlayFS vanaf kernelversie 6.5. Composefs maakt het mogelijk om gelaagde bestandssystemen te creëren, waarbij willekeurige alleen-lezen bestandsstructuren worden gelegd bovenop de standaard Linux-bestandssystemen die als de basislaag fungeren.
Composefs onderscheidt zich van andere vergelijkbare bestandssystemen door ondersteuning voor gezamenlijke opslag van de inhoud van verschillende schijfbeelden en de aanwezigheid van functies voor het verifiƫren van de authenticiteit van leesbare gegevens. In Composefs wordt een opslagmodel toegepast op basis van inhoudsadressering, waarbij de primaire identificator niet de bestandsnaam is, maar de hash van de bestandsinhoud. Dit model zorgt voor deduplicatie en maakt het mogelijk om slechts ƩƩn kopie van identieke bestanden op te slaan, die in verschillende ingemonteerde partities voorkomen.
Systeembestanden bevatten meestal veel standaardbestanden, en wanneer Composefs wordt gebruikt, worden al deze bestanden gedeeld door alle aangekoppelde images, zonder technieken zoals hardlinks te gebruiken. Deze gedeelde bestanden worden niet alleen als ƩƩn exemplaar op de schijf opgeslagen, maar nemen ook slechts ƩƩn vermelding in de pagina-cache in beslag, wat zowel schijfruimte als RAM bespaart.
Om schijfruimte te besparen, zijn gegevens en metadata in Composefs gescheiden en wordt er bij het aankoppelen een binaire index opgegeven waarin alle metadata van het bestandssysteem, bestandsnamen, toegangsrechten en andere informatie zijn opgenomen. Metadata-indexen worden voor elke FS-image gemaakt en opgeslagen in een apart bestand in het EROFS-formaat (in loopback-modus wordt een image van EROFS aangekoppeld, waarin alleen metadata aanwezig zijn). De daadwerkelijke bestanden van alle aangekoppelde images worden opgeslagen in een gezamenlijke basisdirectory in een normaal bestandssysteem (ext4, xfs, btrfs) en worden met de image verbonden via de uitgebreide attribuut rusted.overlay.redirect, waarop OverlayFS de benodigde bestanden op basis van de inhoudshash vindt.
Voor de verificatie van de inhoud van afzonderlijke bestanden en de gehele image in een gedeelde opslagomgeving wordt het fs-verity mechanisme gebruikt, dat bij toegang tot bestanden controleert of de in de binaire index opgegeven hashes overeenkomen met de werkelijke inhoud. Als een aanvaller een bestand in de basisdirectory wijzigingen aanbrengt of als gegevens door een storing beschadigd raken, zal deze controle afwijkingen aan het licht brengen.
Bron: opennet.ru
