Deduplicar arquivos dentro de vários arquivos .tar.gz

3

Eu faço um backup noturno do meu serviço de hospedagem como .tar.gz. Os dados alterados são muito pequenos a cada noite (< 10MB).

Eu gostaria de arquivar esses arquivos e desduplicar (compactação sólida) arquivos em vários arquivos .tar.gz sem extrair cada arquivo de backup individual.

Exemplo simplificado:

2013-02-24.tar.gz contém a.pdf 2013-02-25.tar.gz contém a.pdf e b.pdf

Eu quero compactar e arquivar 2013-02-24.tar.gz e 2013-02-25.tar.gz e armazenar a.pdf apenas uma vez.

A única maneira de fazer a desduplicação funcionar foi descompactar ambos .tar.gz e empacotá-los novamente (usando compactação sólida). Mas este é um passo adicional e provavelmente apagará as informações do sistema de arquivos devido a diferentes sistemas operacionais. Simplesmente tar / gz ambos os arquivos .tar.gz não funcionarão, o tamanho final deste arquivo será a soma de ambos os arquivos originais .tar.gz.

Existe uma maneira de usar a desduplicação no conteúdo de vários arquivos .tar.gz?

    
por rimshot 26.02.2013 / 23:55

4 respostas

0

Eu não acho que você pode fazer o que você está tentando fazer "facilmente"

Se os arquivos .tgz forem semelhantes o suficiente, você poderá usar o xdelta e fazer o backup do primeiro arquivo completo, e então um xdelta com a diferença entre o primeiro e o segundo arquivo.

Uma solução parcial alternativa seria usar o rzip (ou lrzip ??) que é projetado para encontrar compressão em arquivos muito grandes - embora não seja ideal, ele provavelmente será significativamente menor do que o que você está usando no momento, às custas de CPU e memória.

    
por 27.02.2013 / 04:10
0

Eu uso squashfs para propósitos semelhantes:

mksquashfs dir1 dir2 dir3 backup_file.fs -keep-as-directory
    
por 18.09.2014 / 17:41
0

Estou atrasado para a festa, mas os requisitos parecem essencialmente resumir-se a isso:

  1. Deduplicar o conteúdo do arquivo tarball
  2. Deve ser capaz de restaurar arquivos gzip originais

A princípio, isso parece impossível. A desduplicação geralmente depende de poder trabalhar nos arquivos descompactados. Mas então percebi que se você pode confiar em gunzip / gzip produzindo exatamente o mesmo arquivo (melhor testá-lo), então você pode usar zbackup , que Na verdade, é projetado para desduplicar tarballs. Então:

  1. gunzip os tarballs que você recebe
  2. gzip os tarballs novamente para verificar se eles são correspondências exatas (deve ser se a implementação do gzip for a mesma, mas o nível de compactação pode variar por exemplo, então você pode precisar descobrir isso)
  3. Alimente os tarballs para zbackup
por 08.10.2015 / 07:17
0

Existe uma excelente solução que faz o que você pede, desduplica blocos dentro de vários arquivos TAR. Isso não apenas elimina arquivos que não foram alterados, mas também armazena apenas partes alteradas de arquivos semelhantes.

No entanto, é uma solução cliente / servidor em que o servidor é uma oferta paga. Mas devido à desduplicação é muito acessível, além de oferecer criptografia e armazena os arquivos com segurança para você.

O cliente usa o código tar normal para que o comando seja fácil de usar.

    
por 07.04.2017 / 03:42