Для Linux предложена файловая система Composefs

Александр Ларсон (Alexander Larsson), создатель Flatpak, работающий в компании Red Hat, представил предварительный вариант патчей с реализацией файловой системы Composefs для ядра Linux. Предложенная файловая система напоминает Squashfs и также подходит для монтирования образов в режиме только для чтения. Отличия сводятся к обеспечению в Composefs эффективного совместного хранения содержимого нескольких примонтированных дисковых образов и поддержке проверки подлинности читаемых данных. В качестве областей применения, в которых может оказаться востребована ФС Composefs, называется монтирование образов контейнеров и применение для Git-подобного репозитория OSTree.

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

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

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

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

Release. Ссылка here.