在过去的两周里,我一直在 LINUX 中寻找一种解决方案,以便能够获得 .img 文件(KVM)的增量备份,并且我尝试了几乎所有可以通过谷歌搜索到的方法(Rdiffbackup、Attic、Rsync、Rsnapshot、Bacula、Areca Backup 等,任您选择!)但仍然找不到解决方案。
基本上,我希望在虚拟机的硬件节点中运行类似代理的东西,检测图像是否发生变化,并能够读取 img 文件内部,将新部分仅复制到第一次运行时备份的原始 img 文件中,并拥有一个主备份机器,所有备份都进入其中。我不需要任何 Web 界面(不一定),它必须在 LINUX 下。
将不胜感激任何关于此事的建议或帮助。
谢谢
答案1
我建议使用 LVM(可选精简配置)以及lvm同步,但是我有偏见,因为我针对这种情况编写了 lvmsync。
如果这不合适,qemu 增量备份支持(如@HBruijn 在评论中所述)在较新版本的 qemu 中可用,如果您不介意运行前沿代码。不幸的是,qcow2 映像格式不允许实现您想要的同步过程所需的那种“实时时间点快照”功能。VMDK 格式允许,我写道虚拟机同步来处理这个问题,但我不知道 qemu 的 VMDK 支持是否足够先进来处理这个问题(我编写它是为了从 VMWare 服务器迁移,而且我从未针对 qemu 测试过它)。
答案2
有几种可能性。
rsync。它会按照您的预期执行操作,但要做到这一点,它必须在两端读取整个文件,计算校验和并传输更改。如果您没有远程使用 rsync(例如网络文件系统),则需要禁用整个文件传输。(
--no-whole-file
)LVM 快照 + lvmsync 按照@womble 的建议
支持快照和增量备份的文件系统(如 btrfs(仍然不推荐用于生产)或 ZFS)。
DRBD - 用作在线“RAID1”。不能用作存档 - 如果主服务器上删除了任何内容,从服务器上也会立即丢失。但是,如果发生硬件故障,您仍可获得最新数据。(可能的破解方法是仅在特定时间启用同步,但我不建议这样做)请记住,大多数文件系统无法在两端都安装。
2/3 和 4 的组合(DRBD+LVM 快照,或 DRBD+ZFS) - 为您提供两全其美的解决方案。跨机器的在线“RAID”,以及在备份服务器上对备份设备进行快照以保存存档。