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.
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.
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é.
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).
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).
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.