Coleta mais rápida de arquivos de um arquivo tar

1

Temos uma coleção de servidores que estamos fazendo backup usando o Duplicity. Estamos tentando criar algumas funcionalidades para nossa equipe, para que possam selecionar um arquivo e visualizar as versões disponíveis para restauração. A duplicidade armazena seus metadados em arquivos tar como:

16M Mar  6 07:20 duplicity-new-signatures.20140305T070733Z.to.20140306T070755Z.sigtar.gz
17M Mar  5 07:17 duplicity-new-signatures.20140304T070728Z.to.20140305T070733Z.sigtar.gz
74M Mar  4 08:02 duplicity-full-signatures.20140304T070728Z.sigtar.gz
13M Mar  3 09:11 duplicity-new-signatures.20140302T070743Z.to.20140303T070723Z.sigtar.gz
14M Mar  2 07:18 duplicity-new-signatures.20140301T070921Z.to.20140302T070743Z.sigtar.gz
18M Mar  1 07:22 duplicity-new-signatures.20140228T071001Z.to.20140301T070921Z.sigtar.gz
16M Feb 28 07:23 duplicity-new-signatures.20140227T071151Z.to.20140228T071001Z.sigtar.gz
15M Feb 27 07:27 duplicity-new-signatures.20140226T070820Z.to.20140227T071151Z.sigtar.gz
13M Feb 26 07:20 duplicity-new-signatures.20140225T071049Z.to.20140226T070820Z.sigtar.gz
14M Feb 25 07:28 duplicity-new-signatures.20140224T070941Z.to.20140225T071049Z.sigtar.gz
92M Feb 24 08:14 duplicity-full-signatures.20140224T070941Z.sigtar.gz
  • Cada .sigtar.gz é um arquivo tar contendo as assinaturas de todos os arquivos alterados. As assinaturas são armazenadas como arquivos nomeados de forma idêntica àqueles a que eles se referem.
  • duplicity-full arquivos contêm uma assinatura para cada arquivo no conjunto
  • Os arquivos duplicity-new contêm apenas assinaturas para arquivos que foram alterados desde o último backup completo ou incremental.

Essencialmente, o que preciso fazer é:

for file in 'ls /root/.cache/duplicity/hashid/*.sigtar.gz'; do
  tar -tzvf $file signature/path/to/specified/file.name
done

O problema é que, mesmo no servidor que contém apenas 1/20 da quantidade de dados que esperamos que um servidor 'totalmente carregado' tenha, a listagem de um 'cheio' pode levar mais de 10 segundos. Eu tremo ao pensar em quanto tempo esse processo pode demorar uma vez que essas máquinas se encham.

Existe alguma maneira de acelerar a recuperação via tar?

Ou se alguém souber de uma maneira melhor de analisar metadados de Duplicidade, eu definitivamente gostaria de saber.

    
por Sammitch 07.03.2014 / 02:33

1 resposta

1

É possível acelerar a recuperação via tar com a opção --seek :

-n, --seek
  archive is seekable

No entanto, o fato de o tarball ser compactado significa que ele não é pesquisável. O link reconhece essa limitação.

    
por 07.03.2014 / 19:18