今天要备份个比较大的库,大概200G 左右吧,听说tar + pv + lz4 传输大数据的速度,比传统的scp 快很多,今天测试了一下:
过程如下:
tar+pv+lz4 大文件传输,速度到底比scp 快多少呢,实际验证了,才知道,经过测试大概两倍吧
1.install
这里需要提前编译安装两个软件,这两个软件可以直接google 搜索下载,下面我给的链接可以直接wget 下载
1.PV(pv-1.1.4.tar.gz)包可以在线下载或网盘取
wget http://pkgs.fedoraproject.org/repo/pkgs/pv/pv-1.1.4.tar.gz/8d0eda2182640919daaf6186cd816a13/pv-1.1.4.tar.gz
解压:tar -xf pv-1.1.4.tar.gz
cd pv-1.1.4
./configure && make && make install
2.lz4 (lz4-r108.tar.gz) 包可以在线下载或网盘取
wget https://src.fedoraproject.org/repo/pkgs/lz4/lz4-r108.tar.gz/5c621dd18f27810bba3629cdb326e852/lz4-r108.tar.gz
解压: tar xf lz4-r108.tar.gz
cd lz4-r108
make && make install ***注意:这里不需要configure
特别注意: lz4 需要在数据传输的两台服务器都要安装,理由很简单,传输的过程就是: 打包--压缩--解压 的过程, 两端都要lz4 解压缩,所以两端都需要安装
3.命令: tar -c tt.tar.gz|pv|lz4 -B4|ssh -c arcfour128 -o "MACs umac-64@openssh.com" 192.168.50.244 "lz4 -d |tar -xC /data/bak" ****提前做好免秘钥登录
说明:
tt.tar.gz --代表要传输的文件
pv --显示传输速度和进度
ssh : 可以-p 指定端口,默认可不写
arcfour128 --加密算法
192.168.50.244 --远程主机的ip
/data/bak --远程主机存放目录
*****和scp 的速度对比:用时大概2倍的关系,有人说6倍,可能吧,测试可能有偏差,仅供参考,只是想说明一个问题,tar+ lz4 确实比scp 快很多,测试在局域网内,如果线上或不同网段,取决于出口带宽
[root@centos-6 websit_116]# time scp tt.tar.gz 192.168.50.244:/data/bak
tt.tar.gz 100% 228MB 45.7MB/s 00:05
real 0m5.578s
user 0m1.699s
sys 0m0.542s
[root@centos-6 websit_116]# time tar -c tt.tar.gz|pv|lz4 -B4|ssh -c arcfour128 -o "MACs umac-64@openssh.com" 192.168.50.244 "lz4 -d |tar -xC /data/bak"
228MB 0:00:02 [79.4MB/s] [ <=> ]
real 0m2.899s
user 0m0.224s
sys 0m1.923s
综述:有兴趣的可以尝试下, 如果文件很小,就没必要了,用你的scp 或rsync 就可以了,为啥??折腾呗!