Недавно стало известно, что Александр Ларссон, создатель 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 (то есть, если злоумышленник внесет изменения в файл в базовом каталоге или данные будут повреждены в результате сбоя, такая сверка выявит несоответствие).
наконец, если вы интересно узнать об этом больше, вы можете проверить подробности по следующей ссылке.