我使用 rsync 备份虚拟机的 qcow2 磁盘。但是,我希望能够获得增量备份,这样我就不必每次都复制整个磁盘。就我目前使用而言rsync -hav --progress / source / target
,即使第二次已经复制了磁盘,执行时间也始终相同,并且应该花费更少的时间
更新
做一些额外的研究我发现了位图的存在:
https://wiki.qemu.org/Features/IncrementalBackup
https://qemu.readthedocs.io/en/latest/interop/bitmaps.html#overview
这应该可以执行 qcow2 磁盘的增量备份,但是我不知道正确的步骤,而且总体而言,我对这个主题不是完全清楚。有没有更了解这个主题的人可以帮助我?
答案1
我知道这已经晚了,但对其他人来说可能有用。
rsync
是减少网络传输,但它不会减少使用默认设置更改的文件所需的磁盘带宽,因为它首先复制整个文件,然后应用所需的更改,最后将临时文件重命名为原始名称。
您可以尝试--inplace
避免中间复制,但请注意,rsync
对于非常大的文件来说,这不是特别有效。
如果事实证明它不是合适的工具,您可以尝试bdsync
或之类的方法blocksync
。
更好的是,如果您的文件系统支持它(阅读:如果您正在使用btrfs
或zfs
),您可以send/recv
进行真正的差异备份。
答案2
这是一个利用您提到的位图功能的实用程序,它支持增量和差异备份,还可以保存虚拟机配置和相关文件。它还附带一个用于恢复虚拟机的恢复实用程序和一个用于将备份映射到覆盖映像以进行单个文件恢复的实用程序。但是,它要求您使用 libvirt 管理虚拟机:
https://github.com/abbbi/virtnbdbackup
对于独立的 qemu 进程也有一个解决方案,它使用 qemu 管理协议直接连接到 qemu 进程,以允许使用脏位图进行增量备份:
https://github.com/abbbi/qmpbackup
注意:这两个实用程序都是我编写的。
再见,
- 迈克尔