Новая файловая система Composefs для Linux: что это такое и как она работает

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!

В ноябре 2022 года Александр Ларсон, сотрудник Red Hat, разработавший Flatpack, предложил реализацию файловой системы Composefs. Она в некоторых моментах похожа на Squashfs, подходит для монтирования образов в режиме «Только для чтения». Особенности новой ФС — совместное хранение содержимого нескольких примонтированных дисковых образов и поддержка проверки подлинности читаемых данных. Позиционируется она как инструмент для монтирования образов контейнеров, а также применения для Git-подобного репозитория OSTree.

Что это за система?

В Composefs используется модель хранения с адресаций на основе содержимого. В этом случае идентификатор — хэш содержимого файла, а не его имя. Такой подход даёт возможность обеспечить дедупликацию с хранением лишь одной копией одинаковых файлов, которые есть в разных примонтированных разделах.

Так, образы контейнеров содержат большое количество типовых системных файлов. Если использовать Composefs, каждый из них будет совместно использоваться всеми примонтированными образами, без применения трюков вроде проброса посредством жёстких ссылок. Ещё одна особенность в том, что общие файлы хранятся в виде одной копии на диске плюс обходятся одной записью в страничном кэше. Это даёт возможность экономить и оперативную, и дисковую память.

Что касается второго типа, то данные и метаданные разделяются в монтируемых образах. При монтировании указываются:

  • бинарный индекс, в котором содержатся все метаданные файловой системы, имена файлов, права доступа и другие сведения, за исключением непосредственно содержимого файлов

  • базовый каталог, в котором хранится содержимое файлов всех монтируемых образов. Файлы хранятся в привязке к хэшу от их содержимого

Бинарный индекс создаётся для каждого нового образа ФС, причём базовый каталог един для всех образов. Верификация содержимого файлов в этом случае реализуется посредством механизма fs-verity, который при обращении к файлам проверяет соответствие указанных в бинарном индексе хэшей с фактическим содержимым. В чём достоинство такого подхода? Если всё же злоумышленнику удастся внести изменения в файл в базовом каталоге либо данные будут повреждены из-за какого-то сбоя, то сверка сможет выявить расхождение.

Нужно больше подробностей!

Да, и они есть. Так, в самом начале реализации Composefs была создана в виде отдельного модуля ядра Linux. Но потом команда разработчиков решила изменить реализацию, представив новую версию уже в виде надстройки над имеющимися в ядре ФС OverlayFS и EROFS. Их функциональность частично пересекается с новой ФС. Сейчас работа по интеграции Composefs заключается в продвижении в OverlayFS и EROFS патчей, реализующих необходимые для Composefs специфичные возможности.

Extendable Read-Only File System полностью отвечает требованиям ФС начиная с версии ядра 5.15. В OverlayFS изменения вносили в несколько этапов. Сначала разработчики добавили поддержку слоёв data-only, используемых только для данных (отдельно от метаданных), в ядро 6.5. Потом велась работа над возможностью сохранения хэшей fs-verity в расширенном атрибуте (xattr) overlay.verity, и эти изменения уже добавлены в состав тестового выпуска ядра 6.6-rc1. Соответственно, в ядре Linux, в основном составе, появилась поддержка функций Composefs.

Всё это дало возможность финализировать формат образов Composefs и опубликовать версию 1.0, стабилизирующую формат хранения и библиотечный API/ABI. Отличие релиза от предыдущих версий заключается в добавлении различных оптимизаций, включая:

  • повышение эффективности формата хранилища

  • переход в пользу работающих в пространстве пользователей библиотек

  • добавление утилиты composefs-info для инспектирования файлов с образами Composefs

  • выявление несоответствий между метаданными и отдельно хранимыми данными

Что касается функциональности новой файловой системы, то она заключается в построении многослойных ФС, где как произвольные деревья ФС накладываются на стандартные ФС Linux.

Разработчики ФС позаботились об экономии дисковой памяти. Для этого реализована следующая схема: данные и метаданные разделены, в случае монтирования отдельно указывается бинарный индекс. В нём есть все метаданные, имена файлов, права доступа к ним и другие сведения. Индексы же с метаданными генерируются для каждого образа ФС и хранятся в отдельном файле с форматом EROFS. Файлы монтируемых образов хранятся в общем базовом каталоге в обычной файловой системе. Они связываются с образом посредством расширенного атрибута rusted.overlay.redirect, на базе которого OverlayFS находит необходимые файлы по хэшу содержимого.

Для того чтобы выполнить операцию монтирования, используются FUSE-модуль composefs-fuse и утилита mount.composefs, а для создания ФС предоставляется утилита mkcomposefs.

Стоит отметить, что Composefs уже используется несколькими проектами. Разработчики упоминают два из них — Ostree и Container Storage Library. В первом случае поддержка ФС добавлена в выпуски Ostree 2023.6 и rpm-ostree 2023.6 в качестве экспериментального кода. Во втором — применяется начальная реализация бэкенда, использующего Composefs для хранения образов контейнеров.

Источник: https://habr.com/ru/companies/ru_mts/articles/765476/


Интересные статьи

Интересные статьи

Каждый, кто активно пользуется интернетом, хотя бы однажды замечал, как он заходил в интернет-магазин, смотрел товары, а потом эти артикулы преследовали его в рекламе на других сайтах. Так работают см...
Эта статья для тех, кто только открывает для себя мир NiFi или планирует применять этот чудесный инструмент. Инструмент необычный, и, чтобы его эффективно использовать, важно понимать, как NiFi работа...
19 мая 2023 года в галактике M101 вспыхнула сверхновая звезда — SN 2023ixf Удача первому обнаружить сверхновую звезду улыбнулась японскому любителю астрономии Коичи Итагаки.
Привет, Хабр! В этом году мы провели пятый ежегодный опрос о состоянии экосистемы разработки и выяснили, чем живут программисты, какие языки, технологии и инструменты они используют и как изменился ми...
Математическая модель столкновения чёрных дыр работает даже в тех случаях, когда, по идее, работать не должна. Пока астрономы используют эту модель для поиска новых класс...