跳转至

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
    
    软件fpsyncrsync
    时间(s)137610435
  • 向远程主机拷贝

    $ 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
    
    软件fpsyncrsync
    时间(s)25379587

参考:

迁移到 NFS Azure 文件共享

fpsync数据迁移工具

msrsync: maximize rsync bandwidth usage

parsyncfp - a parallel rsync wrapper for large data transfers

本文阅读量  次
本站总访问量  次