是否有用于并行归档文件的设备?
Tar很不错,但是我不使用磁带存档,而对我来说,更重要的是,由于我有smp,所以归档工作要迅速进行(使用bzip2之类的压缩方式)。
zip
能够处理目录:|
tar
的档案,然后通过压缩文件压缩包(如gzip
,pigz
等)。您可以分两步进行操作,也可以分一个步骤进行操作,因为它们可以处理来自标准输入/输出的数据流。结果与极为相似zip
,但用途更多。
是否有用于并行归档文件的设备?
Tar很不错,但是我不使用磁带存档,而对我来说,更重要的是,由于我有smp,所以归档工作要迅速进行(使用bzip2之类的压缩方式)。
zip
能够处理目录:|
tar
的档案,然后通过压缩文件压缩包(如gzip
,pigz
等)。您可以分两步进行操作,也可以分一个步骤进行操作,因为它们可以处理来自标准输入/输出的数据流。结果与极为相似zip
,但用途更多。
Answers:
如果指定了-mmt
标志,则7zip可以在多个线程上运行,但仅在压缩成7z归档文件时才可以运行,这提供了很大的压缩率,但通常比zip创建档案要慢。做这样的事情:
7z a -mmt foo.7z /opt/myhugefile.dat
OP询问的是并行归档,而不是并行压缩。
如果源材料来自文件系统,其中不同的目录/文件可能位于不同的磁盘上,或者甚至单个超速磁盘超出了压缩工具的输入速度,那么拥有多个输入流确实可能是有益的。进入压缩层。
有意义的问题变成了,并行归档的输出是什么样的?它不再只是单个文件描述符/ stdout
,而是每个线程的文件描述符。
到目前为止,它的一个示例是Postgresql的并行转储模式pg_dump
,其中它转储到目录中,其中线程在表集上工作以进行备份(工作队列带有多个消耗队列的线程)。
我不确定主流的实际并行存档器。在ZFS上有一个针对Solaris Tar的黑客:http : //www.maier-komor.de/mtwrite.html
有一些专用的备份工具可以成功运行多个线程,但还有更多工具可以在更高级别上按目录划分工作负载。
tar --use-compress-program=pigz ....
pigz
用您最喜欢的并行压缩程序替换。使用的原因tar
是因为它可以存储所有者,组,权限。该元数据通常很有用(例如,在复杂系统中还原目录树)。
-I
选项,这是一样的--use-compress-program
。因此,例如tar cvzf /some/dir/yournewarchive.tar.gz /directory/tobecompressed --exclude="/directo...."
可以使用pigz
as 应用于多线程选项tar -I pigz -cvf /some/dir/yournewarchive.tar.gz /directory/tobecompressed --exclude="/directo..."
。这是最好,最合适的答案,恕我直言。谢谢@uDude!:)