首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不适用于虚拟磁盘的Rsync增量复制

不适用于虚拟磁盘的Rsync增量复制
EN

Server Fault用户
提问于 2012-08-30 12:27:42
回答 1查看 1.5K关注 0票数 0

我尝试过rsync将VM复制到远程主机上,但是这个分层备份似乎不起作用。我在CentOS 6.2上使用Virtualbox。我的VM有一个快照,所以我只复制快照文件,而不是整个基本映像。当我复制到映射为本地驱动器的远程主机时(在这种情况下,不使用rsync分层备份),这是可行的。

问题是,当我使用rsync over复制一个简单的文本文件时,更改将被复制,但是当我使用相同的方法复制快照文件时,更改(例如在桌面上创建的文本文件)不会被复制。是否有人成功地使用rsync将更改复制到VM而不复制整个文件?

EN

回答 1

Server Fault用户

发布于 2012-11-20 13:12:45

我认为rsync可能会对虚拟磁盘执行增量复制,但是磁盘太大了,它需要读取整个文件才能找到差异。对于多个文件(比如普通的文件系统,而不是虚拟磁盘),rsync可以使用所有文件的单独时间戳和大小,但是对于虚拟磁盘,它只有1文件。

因此,如果您在本地复制一个文件,它将在同一台机器上读取两次磁盘(2个文件、源文件和目标文件),使其速度仍然很慢,如果它是远程的,则通过有线传输的速度很低,但是整个磁盘将由两个独立的rsync进程在滚动diff过程中在两侧读取。我还没有完全验证这一点,但是观察iostat (所有磁盘活动,而不仅仅是我的rsync测试),我发现与读取速度相比,写速度非常低。

此外,当您使用rsync复制时,它会在覆盖目标文件之前创建一个临时文件。为了避免这种情况,你可以使用这样你就永远不会有第二份拷贝了,但是你仍然可以读取整个磁盘,所以这不是一个完美的解决方案。

最初我说:我不认为有什么方法可以绕过阅读整个文件.要做到这一点,您需要的不是rsync,比如具有增量发送功能的btrfs或zfs之类的写文件系统,这是一种只从文件系统元数据中了解差异而不是再次读取所有数据的能力。

编辑:今天我意识到,如果文件被分割成多个部分,您可能会避免读取整个文件,所以每个部分都有一个不同的时间戳,例如vmdk格式的Split2G变体,它将文件拆分成许多2GB文件(但我还没有验证这些部分是否有不同的时间戳)。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/422858

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档