gpt4 book ai didi

rsync --sparse 确实传输整个数据

转载 作者:行者123 更新时间:2023-12-04 06:03:38 25 4
gpt4 key购买 nike

我有一些需要每天同步的 VM 镜像。 VM 文件是稀疏的。

为了节省网络流量,我只想传输图像的真实数据。
我在 rsync 中使用 --sparse 选项进行尝试,但在网络流量上,我看到整个大小都通过网络传输,而不仅仅是实际数据使用情况。

如果我使用 rsync -zv --sparse 则只有真实大小通过网络传输,一切正常。但由于 cpu 使用率,我不想压缩文件。

--sparse 选项不应该只传输真实数据,而在本地创建“空数据”以节省网络流量吗?

有没有不压缩的解决方法?

谢谢!

最佳答案

看看 this discussion ,具体来说,this answer .

看来解决办法是做一个rsync --sparse后跟一个 rsync --inplace .

首先,--sparse ,调用,也使用 --ignore-existing防止已经传输的稀疏文件被覆盖,以及 -z以节省网络资源。

第二个电话,--inplace , 应该只更新修改过的块。在这里,压缩是可选的。

另见 this post .

更新

我相信上述建议不会解决您的问题。我也相信rsync不是完成任务的正确工具。您应该寻找能够在网络和磁盘 I/O 效率之间取得良好平衡的其他工具。
Rsync专为有效利用单一资源网络而设计。它假设读取和写入网络比读取和写入源文件和目标文件要昂贵得多。

We assume that the two machines are connected by a low-bandwidth high-latency bi-directional communications link. The rsync algorithm, abstract.



该算法,概括为四个步骤。
  • 接收方 β 发送大小块的校验和 小号 目标文件 .
  • 发送方 α 识别源文件中匹配的块 一个 , 在任何偏移。
  • α 发送 β 由逐字、非匹配、数据或匹配块引用组成的指令列表。
  • β 从这些指令重建整个文件。

  • 请注意 rsync通常重建文件 作为临时文件 电话 ,然后替换 电话 .在这种情况下,它必须写入整个文件。
    --inplace不缓解 rsync从写入块匹配 α ,正如人们想象的那样。它们可以在不同的偏移量处匹配。扫描 就性能而言,第二次采用新数据校验和是令人望而却步的。可以跳过与在第一步读取的相同偏移量中匹配的块,但 rsync不这样做。在稀疏文件的情况下, 的空块乙 将匹配 的每个空块一个 ,并且必须重写。
    --inplace正因 rsync直接写信给 , 而不是 电话 .它将重写整个文件。

    关于rsync --sparse 确实传输整个数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19821186/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com