The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

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

09.06.2023 15:43

Компания 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 и простая в реализации архитектура.

 
  1. Главная ссылка к новости (https://lore.kernel.org/rust-f...)
  2. OpenNews: Доступен порт файловой системы HAMMER2 для NetBSD и FreeBSD
  3. OpenNews: Для Linux предложена файловая система Composefs
  4. OpenNews: Первый публичный выпуск распределённой файловой системы JuiceFS
  5. OpenNews: Файловая система DwarFS, обеспечивающая очень высокий уровень сжатия
  6. OpenNews: Обновление кластерной файловой системы LizardFS 3.13.0-rc2
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/59271-puzzlefs
Ключевые слова: puzzlefs, cisco, rust, kernel
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (188) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, alexandr_0503 (ok), 16:37, 09/06/2023 [ответить] [﹢﹢﹢] [ · · · ]  []     [к модератору]
  • –8 +/
    Btrfs best forever, no rust please
     

     ....большая нить свёрнута, показать (88)

  • 1.2, Аноним (2), 16:42, 09/06/2023 [ответить] [﹢﹢﹢] [ · · · ]  [] []     [к модератору]
  • +3 +/
    >> Применение Rust для модуля ядра также позволило совместно использовать код в ядре и компонентах, работающих в пространстве пользователя, для создания единой защищённой реализации.

    шта ?

     
     
  • 2.6, Аноним (3), 16:44, 09/06/2023 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +3 +/
    Если компоненты написаны на одном языке, им, как минимум, проще общаться, потому что можно использовать одни и те же описания структур данных, без экспорта в protobuf.
     
     
  • 3.19, Аноним (2), 16:59, 09/06/2023 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +6 +/
    думаю лучше сериализовать в json перед отпавкой в юзерспейс
     
     
  • 4.28, Аноним (3), 17:12, 09/06/2023 [^] [^^] [^^^] [ответить]      [к модератору]
  • –1 +/
    Это пусть деды-сишники делают, причём с обязательным переполнением буфера.
    А единорожки-зумеры в упор не понимают, зачем это нужно.
     
  • 4.29, Аноним (26), 17:13, 09/06/2023 [^] [^^] [^^^] [ответить]      [к модератору]
  • +3 +/
    В XML
     
     
  • 5.32, Аноним (3), 17:16, 09/06/2023 [^] [^^] [^^^] [ответить]      [к модератору]
  • +7 +/
    И общаться через SOAP или XML-RPC.
     
     
  • 6.114, Аноним (112), 02:12, 10/06/2023 [^] [^^] [^^^] [ответить]      [к модератору]
  • +1 +/
    Пересылая их через Websocket.
     
     
  • 7.155, pda (ok), 15:25, 10/06/2023 [^] [^^] [^^^] [ответить]      [к модератору]
  • +1 +/
    Был такой юмористический язык BABBAGE, в котором к вызову по имени и вызову по значению был добавлен вызов по телефону. Думаю для передачи данных в пользовательское пространство это подойдёт ещё лучше. Не надо переключать контекст, если ядро может просто позвонить и сказать всё нормальным голосом.
     
  • 3.45, keydon (ok), 17:32, 09/06/2023 [^] [^^] [^^^] [ответить]  [] []     [к модератору]
  • +1 +/
    Может поколение смузи тебе и поверит, а я уже повидал случаи когда это не так даже для одного языка. Да, на си с разными компиляторами. Поэтому сишники не верят в маркетинговую магию раста.
     
     
  • 4.76, Mail (?), 19:26, 09/06/2023 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +/
    Перекомпилить одним компилятором религия не позволяет? Ах да, это же святая шишка: "раз скомпилил, не трогай - хрен починишь". До чего дошли сишные смузихлебы...
     
     
  • 5.91, Аноним (91), 22:23, 09/06/2023 [^] [^^] [^^^] [ответить]      [к модератору]
  • +1 +/
    Это было во времена мамонтов, когда религию ещё не изобрели, человечество ещё не знало слово линукс, а либы распространялись в (первую очередь) бинарном виде и наличие разных компиляторов похоже не предполагалось.
     
  • 4.115, Аноним (112), 02:16, 10/06/2023 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +3 +/
    В своё время, так про Java вещели. Мол, один раз написано - используется везде.
     
     
  • 5.200, keydon (ok), 13:47, 13/06/2023 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    > В своё время, так про Java вещели. Мол, один раз написано -
    > используется везде.

    О, да. А еще что она все сделает безопаснее. Под этим главным предлогом ее и пропихнули в андройд. И тогда было оооочень много воя насчет производительности, потому что смартфоны были кратно слабее современных. Но вот гугл все аппелировал к безопасности, рассказывал про свои технологии, проходит лет 5, андройд становится популярным и...одновременно самой дырявой популярной ОС. Вот она джава безопасность. И да, тогда тоже главным лейтмотивом было "нет указателям" и "дырявый си".

     
  • 3.104, fidoman (ok), 23:33, 09/06/2023 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +6 +/
    Приличные языки программирования имеют возможность описать структуру так, что её размещение в памяти будет определено однозначно.
    Даже питон умеет структуры по описанию расчехлять.
    А если вы просто описали структуру как получилось и заявляете, ну оно будет работать, просто надо всё одной версией компилятора компилять - лучше занимайтесь чем-то другим.
     
  • 2.84, Аноним (83), 20:40, 09/06/2023 [^] [^^] [^^^] [ответить]  [] []     [к модератору]
  • –1 +/
    У них Rust головного мозга. Всё в юзерспейсных компонентах должно быть на Rust.
     
     
  • 3.177, Прохожий (??), 02:32, 11/06/2023 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Тебя Раст беспокоит? А ты его не чеши.
     
  • 2.169, n00by (ok), 19:17, 10/06/2023 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +/
    >>> Применение Rust для модуля ядра также позволило совместно использовать код в ядре и компонентах, работающих в пространстве пользователя, для создания единой защищённой реализации.
    > шта ?

    Если речь не о работе с железом, то воможно и на Си так делать. Взять код драйвера на Си, собрать и запустить в юзермоде. Правда, придётся написать переходники для ядерных функций. Грубо говоря, написать свою kmalloc(), которая будет вызывать malloc(), и так далее. В Rust при портировании библиотеки в ядро, похоже, проделали унификацию. Мы такое делали на плюсах, поскольку в юзермоде некоторые вещи (алгоритмически сложный код, как раз ФС из новости подходит) проще отлаживать, гоняли сначала там, потом собирали под ядро.

     
     
  • 3.183, Аноним (2), 08:04, 11/06/2023 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    и как там плюсы в ядре поживают?
     
     
  • 4.186, n00by (ok), 14:10, 11/06/2023 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Реализовали весь необходимый минимум для freestanding implementation стандартной библиотеки Си++, в том числе исключения и dynamic_cast (хотя сами такое и не использовали, по понятным причинам). Но с тех пор сами плюсы не стояли на месте, изменился стандарт и для сборки сейчас потребуется старый компилятор.
     
  • 4.187, n00by (ok), 14:16, 11/06/2023 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Вообще, тут надо понимать нюанс -- в Винде как бы не было компилятора Си. MSVC частично поддерживал какой-то замшелый диалект. Что бы писать на более-менее похожем на актуальный Си, надо было делать файлы *.cpp, потому нередко люди потихоньку использовали что-то из плюсов. Но обычно с этим не бегали по всем форумам -- если где-то 10 лет пишут в проекте goto cleanup, то опасно туда RAII тащить.
     

  • 1.5, Аноним (35), 16:43, 09/06/2023 [ответить] [﹢﹢﹢] [ · · · ]  [] []     [к модератору]
  • +1 +/
    За день корпорация Cisco сделала больше для опенсорса, чем все опеннетные комментаторы вместе взятые делают за год. Классическим образом взяли и решили свои проблемы, поделившись с сообществом без искусственных ограничений. Продолжайте рассказывать про злобные корпорации, только и ждущие как нагадить в карман простому анониму.
     

     ....большая нить свёрнута, показать (54)

  • 1.21, Аноним (21), 17:03, 09/06/2023 [ответить] [﹢﹢﹢] [ · · · ]  [] []     [к модератору]
  • +/
    В случае поломки рассыпается на части?
     
     
  • 2.30, VladSh (?), 17:14, 09/06/2023 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    А в созвездии раков водятся раки?
     
     
  • 3.54, Аноним (21), 18:07, 09/06/2023 [^] [^^] [^^^] [ответить]      [к модератору]
  • +1 +/
    Была у людей какая-то причина назвать так, а не от фонаря
     
     
  • 4.56, VladSh (?), 18:10, 09/06/2023 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Так и вопрос выше тоже ж наверное должен быть не от фонаря. Какой в нём смысл? Есть хоть одно подтверждение?
     

  • 1.36, Аноним (39), 17:21, 09/06/2023 [ответить] [﹢﹢﹢] [ · · · ]  [] []     [к модератору]
  • +3 +/
    Если выключишь комп, то получишь пазл как запустить его обратно.
     
     
  • 2.48, Аноним (48), 17:42, 09/06/2023 [^] [^^] [^^^] [ответить]      [к модератору]
  • +1 +/
    Сначала включить попробуйте, написано же "прототип".
     
  • 2.70, пох. (?), 19:12, 09/06/2023 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Никаких пазлов, это ж дыркер. После перезапуска просто mkfs заново и разверни все контейнеры с нуля. Оно ж очень быстрое, прям неимоверно! А поскольку оно уже перезапустилось - клиенты уже все равно порвали тебя на много маленьких медвежат.

     
     
  • 3.82, Аноним (39), 20:32, 09/06/2023 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    но тогда это не пазл
     
     
  • 4.85, пох. (?), 20:56, 09/06/2023 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    > но тогда это не пазл

    похоже они намекали на "сначала включить попробуйте" (нет, но забавно)


     
     
  • 5.138, Аноним (138), 10:55, 10/06/2023 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Собери по кусочкам свои байты.
     

  • 1.52, Анонус (?), 18:05, 09/06/2023 [ответить] [﹢﹢﹢] [ · · · ]  [] []     [к модератору]
  • +/
    Это проблема, которую микрософт решила еще во времена висты в своем формате wim? Или что-то другое?
     
     
  • 2.55, Аноним (21), 18:08, 09/06/2023 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    MS? Решила?? В висте??????????????? Тяпница удалась?
     
  • 2.68, пох. (?), 19:11, 09/06/2023 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    не microsoft, а apple, не wim, а Package. Ну да, примерно.
    Только потом ее изобрел заново дыркер.

     

  • 1.62, Аноним (62), 18:53, 09/06/2023 [ответить] [﹢﹢﹢] [ · · · ]  []     [к модератору]
  • +2 +/
    >This is a proof of concept

    Лол, это даже не прототип.

     
  • 1.90, Аноним (90), 22:23, 09/06/2023 [ответить] [﹢﹢﹢] [ · · · ]  []     [к модератору]
  • –1 +/
    Анонимус одобряет, что язык, имя которого нельзя называть, наконец начал использоваться для разработки, а не для рекламы самого себя.
     
     
  • 2.135, Аноним (135), 10:19, 10/06/2023 [^] [^^] [^^^] [ответить]      [к модератору]
  • +3 +/
    Для пруф оф концепт? Самое место для языка который сам по себе пруф оф концепт.
     

  • 1.96, Аночик (?), 22:37, 09/06/2023 [ответить] [﹢﹢﹢] [ · · · ]  [] []     [к модератору]
  • +3 +/
    странные чуваки, они переписали местами фичи Composefs который на стадии запихивания в ядро. Ну такое.
     
     
  • 2.136, Аноним (138), 10:20, 10/06/2023 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Зачем Циско лезет куда ему не надо? У них же своя ОС есть.
     
     
  • 3.139, пох. (?), 11:28, 10/06/2023 [^] [^^] [^^^] [ответить]      [к модератору]
  • +1 +/
    > Зачем Циско лезет куда ему не надо? У них же своя ОС
    > есть.

    нету. В файрволах, магистральных маршрутизаторах и энтерпрайзных свитчах - давным-давно линукс.

    IOS-XR теперь еще и с rpm, блжад.


     
     
  • 4.197, pofigist (?), 10:26, 13/06/2023 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    IOS-XR не имеет к линаксу никакого отношения. Это QNX.
     
     
  • 5.213, Капитан Очевидность (?), 21:12, 16/06/2023 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    У меня для тебя плохие новости
    Пока ты лежал в криокамере они заменили QNX на Wind River Linux и сделали это достаточно давно
     

  • 1.128, Аноним (-), 08:54, 10/06/2023 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +1 +/
     
  • 1.201, Пряник (?), 14:26, 13/06/2023 [ответить] [﹢﹢﹢] [ · · · ]      [к модератору]
  • +1 +/
    Главное, чтобы это можно будет убрать через make menuconfig.
     
  • 1.214, Аноним (112), 14:14, 25/06/2023 [ответить] [﹢﹢﹢] [ · · · ]      [к модератору]
  • +/
    Намёк на то, что ФС будет сыпаться на пазлы.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2025 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру