Sistema de arquivos de desduplicação em nível de bloco

8

Estou procurando uma solução de sistema de arquivos de cópia-na-escrita com desduplicação para dados gerais do usuário, como /home e backups dela. Ele deve usar a desduplicação on-line / inline / síncrona no nível de bloco usando hashing seguro (para chances insignificantes de colisões) como SHA256 ou TTH . Blocos duplicados nem precisam tocar no disco.

A idéia é que eu possa copiar apenas /home/<user> para um HDD externo com o mesmo sistema de arquivos para fazer um backup. Simples. Não mexer com backups incrementais em que a corrupção de qualquer um dos instantâneos quase sempre acabe com todos os instantâneos posteriores, e não seja necessário usar uma ferramenta específica para excluir ou "fazer check-out" de um instantâneo. Tudo deve ser feito simplesmente no navegador de arquivos sem preocupação. Você pode imaginar como isso seria fácil? Eu nunca teria que pensar duas vezes antes de fazer o backup novamente!

Eu não me importo com um impacto no desempenho, a confiabilidade é a principal preocupação. Embora, com implementações específicas de cp , mv e scp e um plug-in de navegador de arquivos, essas operações seriam muito rápidas, especialmente quando há muita duplicação, pois elas só precisariam transferir os blocos ausentes. Acidentalmente, usar ferramentas de cópia convencionais que não se integram com o FS levaria mais tempo, gastaria um pouco de largura de banda quando copiasse remotamente e gastasse um pouco de CPU, já que os dados duplicados seriam relidos, re-transferidos e re-hashed (embora nada fosse reescrito), mas absolutamente não corromperia qualquer coisa. (Alguns softwares de compartilhamento de arquivos também podem se beneficiar da integração com o FS.)

Então, qual é a melhor maneira de fazer isso?

Eu olhei algumas opções:

  • lessfs - parece sem manutenção. Alguma coisa boa?
  • Opendedup / SDFS - Java? Eu poderia usar isso no Android ?! O que significa SDFS ?
  • Btrfs - Alguns patches circulam nos arquivos da lista de discussão, mas não oferecem suporte real.
  • ZFS - Espero que um dia eles façam o relicenciamento com uma licença compatível com GPL gratuita e gratuita.

Além disso, há 2 anos atrás tive uma tentativa em Python usando o Fuse no nível de arquivo para ser usado por cima de um FS sólido típico como o EXT4, mas achei o Fuse for Python não documentado e não o usei. conseguir implementar todas as chamadas do sistema.

    
por James Haigh 10.06.2012 / 22:51

2 respostas

1

Isso soa muito empresarial (como no preço).

datadomain oferece desduplicação de dados e talvez netapp com seu sistema de arquivos wafl. Mas a um alto custo.

Uma alternativa "livre" poderia ser zfs.

De acordo comigo, embora a alternativa "melhor" e mais Linuxy, embora em nível de arquivo em vez de "nível de bloco", seja rsnapshot. Ele usa rsync e hardlinks para gerenciar o controle de versão.

Eu confio em ferramentas antigas e comprovadas do que em usar um novo sistema de arquivos como o Btrfs, que não existe há tempo suficiente para que as pessoas descubram todos os tipos de bugs desagradáveis.

    
por tomodachi 10.06.2012 / 23:43
1

Estou procurando e investigando exatamente o mesmo, eu poderia sugerir link por enquanto, parece fique quieto simples e bom para backups de linux.

Há também bacula com esse recurso, mas o sótão parece ser bom o suficiente para a maioria dos casos.

    
por pablodav 21.11.2014 / 17:18