该文件传输需要多长时间?

该文件传输需要多长时间?

我有 12 个小时来备份 2 TB 的数据。

我想将数据备份到使用消费级 WD 2TB Black 7200rpm 硬盘的计算机的网络共享中。千兆以太网。

我需要考虑哪些其他变量来确定这是否可行?我该如何设置此计算?

答案1

这里有两个重要因素:源端发送数据的速度以及接收端提交数据的速度。GigE 是一个很好的开始,这意味着理论上只需要 4.7 小时。可以增加这个速度的因素有:

  • 如果接收端的网络缓冲区用完了(源音调太快)。
  • 如果发送端碎片化严重,就无法以线速传输数据。
  • 如果接收端的碎片化程度不高,那么它可能无法以足够快的速度写入。
  • 您的网络路径上的某些东西正在占用带宽(某些隐藏的上行链路端口被其他流量饱和)。

我粗略地计算了一下,要让它工作,你需要以大约 49 MB/秒的速度传输数据。如果硬盘是裸机,并且网络堆栈还不错,那么最终速度可能取决于源碎片级别。

编辑:我从评论中看到您正在计划一个备份到磁盘系统。

还有一些事情需要考虑。在某种条带配置中使用多个目标驱动器是并行化寻道过程并减少碎片损失的真正好方法。RAID10 是此问题的最佳解决方案,尽管如果您的 RAID 卡足够快,Raid5/6 也可以工作。如果不是,那么 RAID10 是您唯一的冗余希望。7.2K RPM 驱动器确实可以用于这些情况,我现在正在这样做,但使用的是 500GB 驱动器而不是 2TB 驱动器。您真的非常希望确保这些驱动器尽可能按顺序写入并减少随机写入。

随机写入有多种原因。如果您的备份系统只是将文件复制到新位置,那么您只是在创建大量文件,在这种情况下备份将不可避免地具有随机性。您需要避免使用这样做的备份系统。如果您的备份系统创建大型存档文件(例如 10GB 文件),则当这些文件碎片化时会发生随机 I/O。

避免大文件碎片需要几个步骤:

  • 确保在任何给定时间仅写入一个文件。
    • 如果您在 Linux 上运行正确的文件系统,则有一些例外,但我不知道您是否这样做。如果使用 NTFS,请保留一个写入器。
  • 必须有足够的可用空间才能将一个大文件写入一个块中。
    • 跑步一段时间后,请留意你的碎片图表。
  • 如果可能,请配置您的备份系统以在使用前完全创建文件。您可能会得到一些 10GB 的文件,这些文件大部分是空的,但至少它们是连续的,并且将有助于减少系统老化时的碎片蔓延。

答案2

如果您的连接速度为 1000 兆比特,传输所有数据大约需要 4.5 小时(1 兆比特为 0.125 MB),因此这可能会起作用,但可能会根据您的网络布局在那段时间内使用大量的网络带宽。

备份的一个更好的替代方案是只传输实际更改,特别是如果你只想备份更改,并且你实际上每 12 小时不会产生 2TB 的数据。我建议你研究一下快照这是 的一个很好的包装rsync。这样,您在开始时只需进行一次完整的长传输,并且更新快照将快得多。超级用户上已经有一些 rsnapshot 教程。

相关内容