Разработчиците на проекта Fedora имат намерение да прехвърлят атомарно обновяваните издания на дистрибутива по подразбиране на файловата система Composefs. В случай на одобрение на предложението от комисията FESCo (Fedora Engineering Steering Committee), отговаряща за техническата част на разработката на дистрибутива Fedora, Composefs ще започне да се прилага в сборките Fedora Silverblue (GNOME), Fedora Kinoite (KDE), Fedora CoreOS, Fedora IoT, Fedora Sway Atomic и Fedora Budgie Atomic.
Тази промяна ще позволи да се използва коренен дял, работещ в режим само за четене, и в бъдеще да се внедрят средства за верификация на целостта на системния дял, което ще помогне за откриване на възникващи проблеми по време на работа. Дяловете /etc и /var ще продължат да се монтират с възможност за запис.
Сега работата е организирана чрез монтиране на дяла /usr в режим само за четене, докато коренният дял се монтира в режим, допускащ запис, а извършването на промени е забранено на ниво права за достъп ("chattr +i /"). Проверка на целостта се извършва на етапа на обновяване на дяла, което не позволява откриването на повреди и промени, направени по време на работа, без да се активира пълна проверка на всички данни с команда "ostree fsck".
Файловата система Composefs е реализирана като надстройка над вече съществуващите в ядрото FS OverlayFS и EROFS и е оптимизирана за ефективно съвместно съхранение на съдържанието на няколко монтирани дискови образа. Функционалността на EROFS (Extendable Read-Only File System) отговаря на изискванията на Composefs, започвайки от версия на ядрото Linux 5.15, а OverlayFS — от ядрото 6.5. Composefs предлага възможност за създаване на многослойни файлови системи, в които произволни дървета на файлови системи в режим само за четене се налагат върху стандартни файлови системи Linux, които действат като долен слой.
Composefs се отличава от вече съществуващите подобни файлови системи с поддръжка на съвместно съхранение на съдържанието на различни дискови образи и наличието на функции за проверка на автентичността на четените данни. В Composefs се прилага модел на съхранение с адресация, основан на съдържание, при който основният идентификатор не е името на файла, а хеш на съдържанието на файла. Този модел осигурява дедупликация и позволява да се съхранява само една копия на идентични файлове, срещащи се в различни монтирани дялове.
Системните образи обикновено съдържат много стандартни файлове и в случай на приложение на Composefs всеки от тези файлове ще бъде съвместно използван от всички монтирани образи, без да се използват трикове като пробрасыране с помощта на жестоки линкове. В случай, че общите файлове не само че се съхраняват в една копие на диска, но и се отчитат с една запись в страничния кеш, което дава възможност за икономия на дисково и оперативно памет.
За спестяване на дисково пространство данните и метаданните в Composefs са разделени и при монтиране отделно се посочва бинарен индекс, в който са съдържат всички метаданти на файловата система, имената на файловете, правата за достъп и друга информация. Индекси с метаданти се създават за всеки образ на ФС и се съхраняват в отделен файл във формат EROFS (в loopback режим се монтира образ EROFS, в който присъстват само метаданти). В самите файлове на всички монтирани образи се съдържат в общ основен каталог в обичайна ФС (ext4, xfs, btrfs) и се свързват с образа чрез разширения атрибут rusted.overlay.redirect, на базата на който OverlayFS намира необходимите файлове по хеша на съдържанието.
За верификация на съдържанието на отделни файлове и на целия образ в условията на общо съхранение се използва механизъм fs-verity, който при достъпа до файловете проверява съответствието на указаните в бинарния индекс хешове с фактическото съдържание — ако злоумышленикът направи промяна в файла в основната директория или данните се повредят в резултат на сбой, подобна сверка ще установи разминаване.
Източник: opennet.ru
