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

Компания 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 за ядрения модул също позволи споделяне на код между ядрото и компонентите, работещи в потребителското пространство, за създаване на единна защитена реализация.

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

Източник: opennet.ru

Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри 🔥 Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри | ProHoster