web-dev-qa-db-fra.com

Y a-t-il un archiveur de fichier parallèle (comme goudron)?

Y a-t-il quelque chose pour l'archivage parallèle de fichiers?

Tar est génial, mais je n'utilise pas d'archives de bandes, et il est plus important pour moi que l'archivage se produise rapidement (avec la compression comme Bzip2) depuis que j'ai SMP.

42
supercheetah

Je pense que vous recherchez PBZip2:

PBZIP2 est une implémentation parallèle du compresseur de fichiers de tri des blocs BZIP2 qui utilise Pthreads et réalise une vitesse à proximité des machines SMP.

Jetez un coup d'œil à la Page d'accueil du projet ou vérifiez votre référentiel de packages préférés.

36
echox

L'OP a posé des questions sur l'archivage parallèle, pas la compression parallèle.

Si le matériau source provenait d'un système de fichiers où différents répertoires/fichiers peuvent être sur différents disques, voire un seul disque rapide dépassant la vitesse d'entrée de l'outil de compression, peut en effet être bénéfique pour avoir plusieurs flux d'entrée. entrer dans les couches de compression.

La question significative devient, à quoi ressemble la production d'une archive parallèle? Ce n'est plus un seul descripteur de fichier/stdout, mais un descripteur de fichier par fil.

Un exemple de cela jusqu'à présent est le mode de décharge parallèle de PostgreSQL pg_dump, dans lequel il décharge dans un répertoire, avec des threads travaillant sur l'ensemble des tables à sauvegarder (filtration de travail avec plusieurs threads consommant la file d'attente).

Je ne suis pas sûr des architons parallèles réels qui sont traditionnels. Il y avait un hack pour le goudron Solaris pour une utilisation sur ZFS: http://www.maier-komor.de/mtwrite.html

Certains outils de sauvegarde dédiés sont exécutés avec succès plusieurs threads, mais beaucoup plus qui viennent de scinder la charge de travail par répertoire à un niveau élevé.

16
robbat2
tar --use-compress-program=pigz  ....

remplacez pigz avec votre programme de compression parallèle préféré. La raison d'utiliser tar est que cela peut stocker le propriétaire, le groupe, les autorisations. Ces métadonnées sont souvent utiles (par exemple, la restauration d'un arbre de direction dans un système complexe).

12
uDude

tar est simplement un format d'archivage très bon à la double duplication des fichiers et en préservant l'arborescence de répertoires et les attributs de fichier d'origine. Tar est très bon pour faire des sauvegardes, car tout est préservé. J'utilise pbzip2 Pour compresser les archives de goudron, j'utilise pour des sauvegardes système avec de très bons résultats.

cette commande devrait faire l'affaire.

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

pbzip2 peut être remplacé par un utilitaire de compression différent, mais être averti, la compression LZMA (comme PXZ) utilise une tonne de RAM lorsque vous comprimez/décompressez de gros fichiers (j'ai essayé d'exécuter 8 threads avec 8 Go de RAM, et PXZ ont commencé à échanger sur le disque).

8
lovot

En ce qui concerne la compression est considérée, xz puisque la version 5.2 prend en charge la compression parallèle via la -T option.

2
peterph