场景描述:

目标:将服务器A的某个文件夹同步传输到服务器B;

硬件条件:服务器A与服务器B之间通过万兆网连接;

待传输文件:包含海量的小文件。

常规方法:

直接使用scp或rsync进行传输

scp -r /source/path 172.16.150.201:/remote/path

/source/path中包含大量的小文件,scp和rsync会频繁开启会话,大量的时间被用于开启和关闭传输会话,因此效率低下。

加速方法

考虑使用tar + scp的方式,先对文件进行压缩,然后再使用scp进行传输。

但是tar的压缩方式是单进程,也会受到小文件过多的问题限制,因此考虑使用tar+pigz来进行

压缩:

tar -cf - ./data | pigz -p 8 > data_archive.tar.gz

传输: 使用常规的scp或rsync进行传输。

解压:

pigz -dc -p 8 logs.tar.gz | tar -xf -

如果压缩的文件特别大,不方便传输和验证,还可以采用分片压缩的方式。

压缩:

tar -cf - ./data | pigz -p 12 | split -b 10G - data_archive.tar.gz.

传输: 使用常规的scp或rsync进行传输。

解压:

cat data_archive.tar.gz.* > data_archive.tar.gz

pigz -dc -p 8 data_archive.tar.gz | tar -xf -

文章作者: Hao.Jia
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Hao.Jia's Blog
服务器 服务器维护
喜欢就支持一下吧