A Cisco apresentou o sistema de arquivos PuzzleFS para o núcleo Linux.

A empresa Cisco apresentou um novo sistema de arquivos PuzzleFS, implementado como um módulo para o núcleo Linux, escrito na linguagem Rust. Este sistema de arquivos é projetado para ser utilizado na hospedagem de contêineres isolados e continua o desenvolvimento das ideias propostas no sistema de arquivos Atomfs. A implementação ainda está em fase de protótipo, suporta a construção com a branch rust-next do núcleo Linux e está licenciada sob as licenças Apache 2.0 e MIT.

O projeto visa contornar as limitações que surgem ao usar imagens de contêineres no formato OCI (Open Container Initiative). O PuzzleFS resolve questões como armazenamento eficiente de dados duplicados, a possibilidade de montagem direta, reconstrução repetida de imagens e operação segura com a memória.

Para a deduplicação de dados repetidos em diferentes contêineres, é utilizado o algoritmo FastCDC (Fast Content-Defined Chunking), que trabalha fragmentando os dados em pedaços de tamanhos arbitrários e mantendo um índice com hashes dos fragmentos processados. Os fragmentos repetidos são armazenados apenas uma vez e indexados conjuntamente para todas as camadas do sistema de arquivos, ou seja, a deduplicação pode abranger diferentes pontos de montagem (uma nova camada do sistema de arquivos pode ser iniciada com base em uma existente e utilizar os fragmentos de dados já presentes para deduplicação).

A reconstrução repetida de imagens de contêineres é alcançada por meio da definição de uma representação canônica do formato das imagens de contêineres. A montagem direta (direct-mount) permite montar uma imagem de contêiner no formato OCI de um armazenamento compartilhado global sem a necessidade de descompactá-la previamente, utilizando como identificador o hash do conteúdo do manifesto do contêiner. Para verificar a integridade dos dados em um ambiente de armazenamento compartilhado, pode ser utilizado o mecanismo fs-verity, que, ao acessar arquivos, verifica a conformidade dos hashes indicados no índice binário com o conteúdo real.

A linguagem Rust foi escolhida por combinar alto desempenho do código resultante com recursos para um trabalho seguro com a memória, o que ajuda a reduzir o risco de vulnerabilidades causadas por problemas como a referência à memória após sua liberação e o estouro de buffer. O uso de Rust para o módulo do núcleo também permitiu o compartilhamento de código entre o núcleo e componentes que operam no espaço do usuário, criando uma implementação única e segura.

Entre outros objetivos do projeto: compilação e montagem de imagens muito rápidas, possibilidade de usar uma etapa intermediária opcional para a conversão (canonicalization) de imagens, não obrigatoriedade de percursos completos pela árvore do FS de maneira similar ao mtree ao usar uma estrutura em camadas, aplicação de alterações no estilo casync e arquitetura fácil de implementar.

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster