有没有可以并行归档文件的东西?
Tar 很棒,但我不使用磁带存档,而且对我来说更重要的是存档速度很快(使用 bzip2 等压缩),因为我有 smp。
答案1
答案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的并行实现,但只能真正使用多个处理器进行压缩,而不能解压缩。