我们必须将一组非常大的数据(以 PB 为单位)从 HPC 集群移动到存储服务器。我们在设备之间拥有高容量的通信链路。然而,瓶颈似乎是一个可以对单个文件进行并行化的快速传输工具(因为每个单个文件都是 TB 级)。
在这方面,我正在寻找一种不需要管理员权限并且仍然比 scp 或 rsync 快得多的工具。如果有任何可以在没有管理员权限的情况下本地安装的工具,那也会很有用。我遇到这个链接(在两台计算机之间发送大量数据的最快方法是什么?),其中提到了 netcat 方式,但我们无法使其工作。
作为信息,我们正在尝试复制相对较少的非常大的文件(并且不是很多小文件)。
感谢您的时间和帮助
答案1
我用过rsync
+ parallel
:
- 识别所有大文件
- 并行运行
rsync
30-100 个文件
它看起来像这样(未经测试):
cd src-dir
find . -type f -size +10000 |
parallel -j100 -X rsync -zR -Ha --inplace ./{} fooserver:/dest-dir/
要处理断开的连接,请使用--append
forrsync
和--retries
forparallel:
parallel --retries 987 -j100 -X rsync -zR -Ha --append ./{} fooserver:/dest-dir/
我们假设文件的源头没有改变。