rsync –sparse确实传输整个数据
我有一些需要每天同步的VM映像. VM文件稀疏. 为了节省网络流量,我只想传输图像的实际数据. 如果我使用rsync -zv –sparse然后只有真正的大小通过网络传输,一切都很好.但我不想因为cpu的使用而压缩文件. 不应该–sparse选项只传输实际数据,并且本地创建“空数据”以节省网络流量? 有没有压缩的解决方法? 谢谢! 解决方法看看 this discussion,特别是 this answer.似乎解决方案是执行rsync –sparse,然后执行rsync –inplace. 在第一个–sparse,call,也使用–ignore-existing来防止已经传输的稀疏文件被覆盖,-z来保存网络资源. 第二个调用–inplace,应仅更新已修改的块.这里,压缩是可选的. 另见this post. 更新 我相信上述建议无法解决您的问题.我也相信rsync不是正确的任务工具.您应该搜索其他工具,这些工具可以在网络和磁盘I / O效率之间取得良好的平衡. Rsync旨在有效使用单个资源,即网络.它假设读取和写入网络比读取和写入源文件和目标文件要昂贵得多.
该算法分为四个步骤. >接收方β发送目标文件B的大小为S的块的校验和. 请注意,rsync通常将文件B重建为临时文件T,然后用T替换B.在这种情况下,它必须写入整个文件. 正如人们可以想象的那样,– inplace并不能减轻rsync写入与α匹配的块.它们可以匹配不同的偏移量.在性能方面,第二次扫描B以获取新的数据校验和是令人望而却步的.可以跳过在第一步中读取的相同偏移量匹配的块,但rsync不会这样做.在稀疏文件的情况下,B的空块将匹配A的每个空块,并且必须被重写. –inplace只会导致rsync直接写入B而不是T.它将重写整个文件. (编辑:商洛站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |