Компания Cisco предложила файловую систему PuzzleFS для ядра Linux

Новости мира unix. Хотите узнать секрет вечного счастья? Откройте страницу 246.
Ответить
acolyte
Аватара пользователя
Сообщения: 3258
Зарегистрирован: 20.08.2022

#

Компания Cisco предложила файловую систему PuzzleFS для ядра Linux
Дата публикации:Fri, 09 Jun 2023 15:43:12 +0300




Компания Cisco предложила новую файловую систему PuzzleFS, реализованную в виде модуля для ядра Linux, написанного на языке Rust. ФС рассчитана на использование для размещения изолированных контейнеров и продолжает развитие идей, предложенных в ФС Atomfs. Реализация пока находится на стадии прототипа, поддерживает сборку с веткой ядра Linux rust-next и открыта под лицензиями Apache 2.0 и MIT.




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



Для дедупликации повторяющихся в разных контейнерах данных задействован алгоритм FastCDC (Fast Content-Defined Chunking), работающий через разделение данных на фрагменты произвольного размера и ведение индекса с хэшами обработанных фрагментов. Повторяющиеся фрагменты хранятся один раз и совместно индексируются для всех слоёв ФС, т.е. дедупликация может охватывать разные точки монтирования (новый слой ФС может быть запущен на основе существующего и использовать, имеющиеся в нём фрагменты данных при дедупликации).



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



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



Среди других целей проекта: очень быстрая сборка и монтирование образов, возможность использования необязательной промежуточной стадии для преобразования (canonicalization) образов, необязательность полных проходов по дереву ФС в стиле mtree при использовании многослойной структуры, наложение изменений в стиле
casync и простая в реализации архитектура.

Новость позаимствована с opennet.ru
Ссылка на оригинал: https://www.opennet.ru/opennews/art.shtml?num=59271

Жизнь за Нер'зула!

Ответить