Existe um arquivador de arquivos paralelo (como tar)?

36

Existe algo lá fora para o arquivamento paralelo de arquivos?

Tar é ótimo, mas eu não uso arquivos de fita, e é mais importante para mim que o arquivamento ocorra rapidamente (com compressão como bzip2) desde que eu tenha smp.

    
por supercheetah 11.10.2010 / 14:42

8 respostas

33

Eu acho que você está procurando por pbzip2:

PBZIP2 is a parallel implementation of the bzip2 block-sorting file compressor that uses pthreads and achieves near-linear speedup on SMP machines.

Dê uma olhada na página inicial do projeto ou verifique seu repositório de pacotes favorito.

    
por 11.10.2010 / 14:56
19

7zip pode ser executado em vários segmentos quando recebe o sinal -mmt , mas apenas ao compactar em arquivos 7z, que oferecem excelente compressão, mas geralmente são mais lentas que o zip para criar arquivos. Faça algo assim:

7z a -mmt foo.7z /opt/myhugefile.dat
    
por 11.10.2010 / 15:04
12

O OP perguntou sobre arquivamento paralelo, não compressão paralela.

Se o material de origem estiver vindo de um sistema de arquivos no qual diferentes diretórios / arquivos possam estar em discos diferentes, ou até mesmo um único disco rápido que exceda a velocidade de entrada da (s) ferramenta (s) de compactação, fluxos de entrada indo para as camadas de compressão.

A questão significativa torna-se, como é a saída de um arquivo paralelo? Não é mais apenas um único descritor de arquivo / stdout , mas um descritor de arquivo por encadeamento.

Um exemplo disso até agora é o modo de despejo paralelo do Postgresql pg_dump , em que é feito o dump para um diretório, com encadeamentos trabalhando sobre o conjunto de tabelas para backup (fila de trabalho com vários encadeamentos consumindo a fila).

Não tenho certeza de nenhum arquivador paralelo real que seja mainstream. Houve um hack para o Solaris Tar para uso no ZFS: link

Existem algumas ferramentas de backup dedicadas que executam com sucesso vários threads, mas muito mais que apenas dividem a carga de trabalho por diretório em um nível alto.

    
por 25.03.2017 / 06:30
10

pigz é uma implementação paralela do gzip, mas só pode realmente usar múltiplos processadores para compressão, não descompressão.

    
por 29.03.2011 / 17:39
10
tar --use-compress-program=pigz  ....

substitua pigz pelo seu programa de compressão paralela favorito. O motivo para usar tar é porque ele pode armazenar o proprietário, o grupo e as permissões. Esses metadados geralmente são úteis (por exemplo, restaurar uma árvore dir em um sistema complexo).

    
por 22.08.2015 / 23:53
7

tar é simplesmente um formato de arquivo que é muito bom em duplicar exatamente os arquivos e preservar a árvore de diretórios e os atributos originais do arquivo. O TAR é muito bom para fazer backups, porque tudo é preservado. Eu uso pbzip2 para compactar os arquivos tar que eu uso para backups do sistema com resultados muito bons.

este comando deve fazer o truque.

tar -cpS "infile" | pbzip2 > "outfile"

pbzip2 pode ser substituído por um utilitário de compactação diferente, mas esteja avisado, a compactação LZMA (como pxz) usa uma TON de RAM ao compactar / descompactar arquivos grandes (tentei executar 8 segmentos com 8 GB de RAM e pxz começou a trocar para o disco).

    
por 05.01.2014 / 01:53
4

Outro concorrente é lbzip2 . É bem parecido com o pbzip2

    
por 25.02.2014 / 07:26
0

No que diz respeito à compactação, xz desde a versão 5.2 suporta compactação paralela por meio da opção -T .

    
por 26.07.2018 / 11:23