将 1PB 数据从一个存储移动到新存储的最快方法是什么?

将 1PB 数据从一个存储移动到新存储的最快方法是什么?

首先,感谢您的阅读,很抱歉问了一些与我工作有关的问题。我知道这是我应该自己解决的问题,但正如您所看到的,这有点困难。

简要描述一下:

现在

存储 => 1PB,使用 DDN S2A9900 存储 OST、4 OSS、10 GigE 网络。(lustre 1.6)

100 个计算节点,配备 2x Infiniband

1 个带有 36 个端口的 Infiniband 交换机

存储 => 以前的存储 + 另外 1PB 使用 DDN S2A 990 或 LSI E5400(仍有待决定)(lustre 2.0)

8 OSS,10GigE 网络

100 个计算节点,配备 2x Infiniband

以往的经验: 使用以下命令在不到 3 天的时间内传输了 120 TB:

 tar -C /old --record-size 2048 -b 2048 -cf - dir | tar -C /new
--record-size 2048 -b 2048 -xvf - 2>&1 | tee /tmp/dir.log

所以,这里存在一个大问题,使用大型数学方程式,我得出结论,我们需要 1 个月的时间将数据从一侧转移到另一侧。在此期间,研究人员将需要退后一步,我个人对此并不满意。

我告诉你我们有无限带宽连接,因为我认为可能有机会使用它来传输数据,使用 18 个计算节点(18 * 2 IB = 36 个端口)将数据从一个存储传输到另一个存储。我试图弄清楚 IB 交换机是否能处理所有流量,但万一它烧坏了,速度会比使用 10GigE 更快。

此外,在同一台服务器上安装 Lustre 1.6 和 2.0 代理运行得很好,这样就不需要通过两个步骤通过 1.8 来升级元数据服务器。

有任何想法吗?

非常感谢

注 1:Zoredache,我们可以将其分为两个块 (A)600Tb 和 (B)400Tb。想法是将 (A) 移动到 lustre2.0 格式的新存储,然后使用 lustre2.0 格式化 (A),并将 (B) 移动到此 lustre2.0 块,并扩展 (B) 所在的空间。

这样,我们将在单独的文件系统上得到(A)和(B),每个文件系统都有 1PB。

答案1

目标是让旧存储和新存储之间的每一层都比旧机器的最大读取速度更快。他们的规格声称连续读取速度为 6GB/s(应该是这样的)。这意味着,如果您能够获得宣传的速度,那么移动数据的最短时间将在 46 小时左右。

当您使用 tar 在 3 天内移动 120 TB 时,平均每秒传输速度肯定略低于半 GB,这比规格声称的 6 GB/s 要低得多。真实数字可能介于两者之间。

首先,tar 可能是您的问题所在。我是一名存储专家,而不是 unix 专家,但据我所知,它可以根据处理器速度限制您的吞吐量。如果您坚持使用这种方法,您可以通过增加运行迁移的节点数量并让它们处理数据集的不同部分来缩短迁移窗口。继续添加节点,直到旧机器无法更快地提供文件。

其次,确保您能够以与读取旧存储一样快的速度从迁移节点向新存储写入数据。这可能意味着调整新存储上的某些设置(特别是如果它具有老式镜像写入缓存),并确保没有网络瓶颈。

最后,这可能有点牵强,如果您可以承受停机时间,并且此设备通过 FC 提供 LUN,则可以将存储虚拟化设备插入数据路径,这样您就可以在迁移期间继续使用存储,尽管速度会更慢。IBM 的 SAN 卷控制器、Falconstore 的虚拟化设备或 HDS 存储阵列都能够在后台自动执行数据迁移,而不会中断主机访问。它们都不会像您习惯的那样快,但它可以让您在迁移过程中完成工作,在短暂的中断之后,让节点从新的存储头开始工作。

它可能不值得购买,因为您在完成迁移后将不会使用它,但您可以借用或租用一个。

相关内容