fpsync
介绍¶
fpart 是一个将所有文件进行排序打包的工具,与 rsync、cpio 等工具配合,可以大幅提高数据传输的效率。
https://github.com/martymac/fpart
安装¶
$ wget -N https://github.com/martymac/fpart/archive/fpart-1.6.0.tar.gz
$ tar xf fpart-1.6.0.tar.gz
$ cd fpart-fpart-1.6.0
$ autoreconf -i
$ ./configure --prefix=$HOME/bin/
$ make
$ make install
$ ls ~/bin/
fpart fpsync
$ module load fpart/1.6.0
使用¶
fpsync 是一个shell脚本,使用fpart和rsync(或cpio、tar等)加快文件传输,其原理是利用fpart将目录分成多份,然后起多个rsync进程传输数据。
本地文件拷贝¶
在服务器本地拷贝大量文件。
$ fpsync -n 20 -t ~/tmp/ -vv /data/src/ /data/dst/
fpsync
只能拷贝目录,即 /data/src/
只能为目录,如果是文件则会报错 $ fpsync -n 20 -t ~/tmp/ -vv ~/data/test.gz ~/test/
Source directory does not exist (or is not a directory): /home/test/data/test.gz
远程文件拷贝¶
配置好无密码访问,使本地能无密码访问远程服务器A。
$ fpsync -n 20 -t ~/tmp/ ~/alphafold_data/pdb_mmcif/ user@192.168.100.10:~/cc/
如果远程服务器A 的 ssh 端口不是默认端口,需要在本地配置 ~/.ssh/config
文件。
Host A
port 12345
Hostname 192.168.100.10
$ fpsync -n 20 -t ~/tmp/ ~/alphafold_data/pdb_mmcif/ user@A:~/cc/
速度比较¶
分别向本地目录、远程主机拷贝21万个文件,总大小为 280G
向本地目录拷贝
# fpsync + sync $ time fpsync -n 30 ~/opt/alphafold_data/pdb_mmcif/ ~/test/fpart/pdb/ real 1376.66 user 2319.06 sys 1536.16 mem 63732 # fpsync + cpio $ time fpsync -n 30 -v -m cpio ~/opt/alphafold_data/pdb_mmcif/ ~/test/fpart/pdb3/ real 1490.48 user 732.69 sys 7849.11 mem 66200 # fpsync + tar $ time fpsync -n 30 -v -m tar ~/opt/alphafold_data/pdb_mmcif/ ~/test/fpart/pdb2/ real 667.57 user 227.43 sys 1302.75 mem 66196 # rsync $ time rsync -avP ~/opt/alphafold_data/pdb_mmcif/ ~/test/fpart/pdb2/ real 10435.28 user 2418.50 sys 536.21 mem 17336
软件 fpsync rsync 时间(s) 1376 10435 向远程主机拷贝
$ time fpsync -n 20 -t ~/tmp/ ~/opt/alphafold_data/pdb_mmcif/ user@A:~/cc/ real 2537.06 user 2514.85 sys 2237.79 mem 63732 $ time rsync -a ~/opt/alphafold_data/pdb_mmcif/ hliu@160:~/cc/ real 9587.44 user 1993.47 sys 372.75 mem 17372
软件 fpsync rsync 时间(s) 2537 9587
参考:
msrsync: maximize rsync bandwidth usage
parsyncfp - a parallel rsync wrapper for large data transfers
本文阅读量 次本站总访问量 次