将非常大的数据集从集群传输到存储服务器

将非常大的数据集从集群传输到存储服务器

我们必须将一组非常大的数据(以 PB 为单位)从 HPC 集群移动到存储服务器。我们在设备之间拥有高容量的通信链路。然而,瓶颈似乎是一个可以对单个文件进行并行化的快速传输工具(因为每个单个文件都是 TB 级)。

在这方面,我正在寻找一种不需要管理员权限并且仍然比 scp 或 rsync 快得多的工具。如果有任何可以在没有管理员权限的情况下本地安装的工具,那也会很有用。我遇到这个链接(在两台计算机之间发送大量数据的最快方法是什么?),其中提到了 netcat 方式,但我们无法使其工作。

作为信息,我们正在尝试复制相对较少的非常大的文件(并且不是很多小文件)。

感谢您的时间和帮助

答案1

我用过rsync+ parallel

  • 识别所有大文件
  • 并行运行rsync30-100 个文件

它看起来像这样(未经测试):

cd src-dir
find . -type f -size +10000 |
  parallel -j100 -X rsync -zR -Ha --inplace ./{} fooserver:/dest-dir/

要处理断开的连接,请使用--appendforrsync--retriesforparallel:

parallel --retries 987 -j100 -X rsync -zR -Ha --append ./{} fooserver:/dest-dir/

我们假设文件的源头没有改变。

相关内容