ComposeFS, файловая система от создателя Flatpak

компоненты

componefs — новая файловая система, предложенная для Linux.

Недавно стало известно, что Александр Ларссон, создатель Flatpak в Red Hat, выложил превью патчей, реализующих файловая система ComposeFS для ядра Linux.

Предлагаемая файловая система напоминает Сквошфс а также подходит для монтирования образов только для чтения. Различия сводятся к способности ComposeFS эффективно обмениваться содержимым нескольких смонтированных образов дисков и поддержке проверки подлинности читаемых данных.



Области приложений, в которых ComposeFS может быть востребована, — это монтирование образов контейнеров и использование Git-подобного репозитория OSTree. Это позволяет совместно использовать файлы содержимого между изображениями, даже если метаданные (такие как временные метки или права собственности на файлы) различаются между изображениями.



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

По сути, composefs — это способ создания и использования изображений, доступных только для чтения. которые используются аналогично тому, как вы использовали бы, например, loopback изображения сквоша. В дополнение к этому composefs имеет две новые основы Особенности. Во-первых, он позволяет совместно использовать файловые данные (как на диске, так и на кэш страницы) между изображениями, а во-вторых, у вас есть dm-verity, как прочитай валидацию.

К примеру, образы контейнеров содержат много общих файлов system и с Composefs каждый из этих файлов будет использоваться всеми смонтированными образами без использования таких уловок, как пересылка с жесткими ссылками.



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

Composefs также поддерживает проверку подлинности файлов содержимого с помощью fs. Используя это, дайджест файлов контента сохраняется в образе, и composefs проверяет, что используемый им файл контента имеет дайджест fs-verity, включенный для сопоставления. Это означает, что содержимое резервной копии не может быть изменено каким-либо образом (по ошибке или умышленно) без обнаружения при использовании файла.

Вы также можете использовать fs-verity для самого файла изображения и передать ожидаемый дайджест fs-verity в качестве параметра монтирования, который будет проверен composefs. В этом случае мы полностью уверены как в данных, так и в метаданных смонтированного файла. Это устраняет слабость, которая возникает при использовании только fs-verity, поскольку она может проверять только данные файла, а не метаданные.

Для экономии места на диске данные и метаданные разделены в смонтированных образах. При монтировании указать:

  • Двоичный индекс, содержащий все метаданные файловой системы, имена файлов, разрешения и другую информацию, кроме фактического содержимого файлов.
  • Базовый каталог, в котором хранится содержимое всех смонтированных файлов образов. Файлы хранятся относительно хэша их содержимого.
  • Двоичный индекс создается для каждого образа FS, а базовый каталог одинаков для всех образов. Для проверки содержимого отдельных файлов и всего образа в условиях общего хранилища может использоваться механизм fs-verity, который при доступе к файлам проверяет соответствие хэшей, указанных в бинарном индексе, содержимому real (то есть, если злоумышленник внесет изменения в файл в базовом каталоге или данные будут повреждены в результате сбоя, такая сверка выявит несоответствие).


наконец, если вы интересно узнать об этом больше, вы можете проверить подробности по следующей ссылке.




2022-11-29T10:31:01
приложений