Ícone do site Blog do Edivaldo – Informações e Notícias sobre Linux

DwarFS, um sistema de arquivos criado para reduzir dados redundantes

Conheça os detalhes, o criador e tudo mais sobre o DwarFS, um incrível sistema de arquivos criado para reduzir dados redundantes.

Marcus Holland-Moritz (um engenheiro de software do Facebook) lançou as primeiras versões do DwarFS, um sistema de arquivos somente leitura projetado para maximizar a compactação e reduzir dados redundantes.

Este sistema de arquivos usa o mecanismo FUSE e é executado no espaço do usuário, o código é escrito em C++ e é distribuído sob a licença GPLv3.

DwarFS, um sistema de arquivos criado para reduzir dados redundantes

DwarFS, um sistema de arquivos criado para reduzir dados redundantes

DwarFS se assemelha a sistemas de arquivos como SquashFS, cramfs e CromFS em suas tarefas e pode ser usado para criar imagens live e reduzir o tamanho dos arquivos com um grande número de duplicatas e dados duplicados (por exemplo, armazenamento de imagens de máquinas virtuais ou coleções de diferentes versões de programas).

Em termos de velocidade de acesso a dados, o DwarFS está quase no mesmo nível que o SquashFS, mas várias vezes à frente deste FS em termos de eficiência de compressão e velocidade de imagem.

O projeto foi desenvolvido para resolver o problema de otimização de armazenamento com diferentes versões do Perl (o autor do DwarFS participa da manutenção do arquivo CPAN).

Inicialmente foi feita uma tentativa de usar o Cromfs para compressão, mas demorou muito para construir a imagem e a estabilidade deixou muito a desejar. O SquashFS rodou de forma estável e renderizou imagens notavelmente mais rápido, mas o nível de compressão era inaceitável.

A maior parte do código DwarFS foi escrito em 2013. Este ano, o autor encontrou tempo para trazer o código ao público e escrever documentação. DwarFS usa as bibliotecas Boost e Folly.

A biblioteca congelada da filial do Facebook Thrift é usada para armazenar metadados. Outras dependências incluem FUSE3 e as bibliotecas de compactação lz4, zstd e liblzma.

O DwarFS superou o SquashFS em termos de taxa de compressão em 8 vezes e em termos de velocidade de criação de imagem em 4 vezes ao criar uma imagem que inclui 1139 instalações Perl diferentes, das quais existem 284 versões de Perl.

O DwarFS foi capaz de reduzir o conjunto de testes de 47 GB para 582 MB (1,1% do tamanho original), enquanto o tamanho da imagem SquashFS resultante era de 4,7 GB. O SquashFS levou 69 minutos para criar a imagem, enquanto o DwarFS concluiu o trabalho em 15 minutos.

Ambos os sistemas de arquivos usaram o algoritmo ZSTD para compressão. Usando o LZMA, o tamanho da imagem DwarFS foi reduzido em outros 18% (aprox. 479 MB), mas a velocidade de acesso a essa imagem foi significativamente reduzida.

Testes com dados com menos duplicatas mostraram uma vantagem não tão significativa, mas ainda notável, do DwarFS.

Por exemplo, o tamanho da imagem para Paspberry Pi OS root FS foi de 298 MB para DwarFS e 364 MB para SquashFS, e o tempo de construção foi de 1 minuto 36 segundos e 1 minuto 54 segundos, respectivamente.

Dos principais recursos do DwarFS, os seguintes se destacam:

Finalmente, se você deseja saber mais sobre este sistema de arquivos ou está interessado em poder compilar seu código-fonte, pode consultar as informações ou obter o código-fonte no seguinte endereço.

Sair da versão mobile