Estou procurando uma solução de sistema de arquivos de cópia na gravação com desduplicação para dados gerais do usuário, como /home
backups. Ele deve usar a desduplicação online / em linha / síncrona no nível do bloco usando hash 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 disco rígido externo com o mesmo sistema de arquivos para fazer um backup. Simples. Sem mexer nos backups incrementais, onde a corrupção em qualquer um dos instantâneos quase sempre interrompe todos os instantâneos posteriores, e não é necessário usar uma ferramenta específica para excluir ou 'retirar' um instantâneo. Tudo deve ser feito simplesmente no navegador de arquivos, sem preocupações. Você pode imaginar como isso seria fácil? Eu nunca precisaria pensar duas vezes em fazer backup novamente!
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 sejam muito rápidas, especialmente quando há muita duplicação, pois elas precisam apenas transferir os blocos ausentes. Acidentalmente, usar ferramentas de cópia convencionais que não se integram ao FS levaria apenas mais tempo, desperdiçaria alguma largura de banda ao copiar remotamente e desperdiçaria alguma CPU, pois os dados duplicados seriam relidos, transferidos e re-hash (embora nada seja reescrita), mas absolutamente não corromperia nada. (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 para algumas opções:
- lessfs - Parece sem manutenção. Bom?
- Opendedup / SDFS - Java? Eu poderia usar isso no Android ?! O que SDFS representa?
- Btrfs - Alguns patches flutuando nos arquivos da lista de discussão, mas sem suporte real.
- ZFS - Esperamos que um dia eles voltem a licenciar sob uma licença compatível com GPL Free / Opensource.
Além disso, há dois anos, tentei em Python usar o Fuse no nível do arquivo para ser usado sobre um FS sólido típico como o EXT4, mas achei o Fuse for Python sub-documentado e não consegui implementar todas as chamadas do sistema.
Respostas:
Isso soa muito corporativo (como no caro).
datadomain oferece deduplicação de dados e talvez netapp com seu sistema de arquivos wafl. Mas a um custo alto.
Uma alternativa "livre" pode ser o zfs.
De acordo comigo, a alternativa "melhor" e mais Linux, embora em nível de arquivo, e não em "nível de bloco", seria o rsnapshot. Ele usa rsync e hardlinks para gerenciar o controle de versão.
Eu prefiro confiar em ferramentas antigas e comprovadas do que usar um novo sistema de arquivos como o Btrfs, que não existe há tempo suficiente para as pessoas descobrirem todos os tipos de bugs desagradáveis.
fonte
rsnapshot
não é um sistema de arquivos, é mais um truque para trazer funcionalidades semelhantes a instantâneos para sistemas de arquivos legados, não cria instantâneos 'reais' (os instantâneos devem ser atômicos ) e é incremental (consulte o segundo parágrafo). Prefiro usar um FS relativamente novo do que algo que usa incrementais.Estou procurando e investigando exatamente o mesmo, posso sugerir https://attic-backup.org/quickstart.html#automating-backups por enquanto, parece ser silencioso, simples e bom para backups do linux.
Há também bacula com esse recurso, mas o sótão parece ser bom o suficiente para a maioria dos casos.
fonte