是否有并行文件归档器(如 tar)?

是否有并行文件归档器(如 tar)?

有没有可以并行归档文件的东西?

Tar 很棒,但我不使用磁带存档,而且对我来说更重要的是存档速度很快(使用 bzip2 等压缩),因为我有 smp。

答案1

我认为您正在寻找 pbzip2:

PBZIP2 是 bzip2 块排序文件压缩器的并行实现,它使用 pthreads 并在 SMP 机器上实现近线性加速。

看看项目主页或者检查您最喜欢的包存储库。

答案2

OP询问并行归档,而不是并行压缩。

如果源材料来自文件系统,其中不同的目录/文件可能位于不同的磁盘上,甚至是超过压缩工具输入速度的单个快速磁盘,那么拥有多个输入流确实可能是有益的进入压缩层。

有意义的问题是,并行存档的输出是什么样的?它不再只是单个文件描述符 / stdout,而是每个线程的文件描述符。

到目前为止的一个例子是 Postgresql 的并行转储模式pg_dump,其中它转储到一个目录,线程在要备份的表集上工作(工作队列,多个线程消耗该队列)。

我不确定是否有任何实际的并行归档器是主流的。有一个针对 Solaris Tar 的 hack 可以在 ZFS 上使用:http://www.maier-komor.de/mtwrite.html

有一些专用的备份工具可以成功运行多个线程,但还有更多工具只是按目录在较高级别上分割工作负载。

答案3

7zip当给定标志时,可以在多个线程上运行-mmt,但仅限于压缩为 7z 存档时,它提供了很好的压缩效果,但通常比 zip 创建存档慢。做这样的事情:

7z a -mmt foo.7z /opt/myhugefile.dat

答案4

猪猪是gzip的并行实现,但只能真正使用多个处理器进行压缩,而不能解压缩。

相关内容