KVM 托管:如何有效地复制来宾

jwb*_*ley 5 virtual-machines replication kvm-virtualization

我有三台 KVM 服务器,每台都有 1 个来宾 VM,直接在它的本地存储上运行,(因此它们基本上每个都获得了一个专用的计算能力)。如果主机出现故障,我希望来宾至少复制到其他主机之一,以便我可以在那里旋转,直到故障主机得到修复。

我对 KVM 克隆很好奇。我可以实时克隆 VM,也可以在它挂起/关闭时进行克隆。显然,挂起的 VM 克隆起来自然会更快,但这三个 VM 构成了一个解决方案的三个部分,所以我不想让其中任何一个关闭。

如何在服务器之间有效地克隆这些 VM?

我有几个想法,但这些想法是疯狂的,还是我在我的场景中错过了更好的方法?

  1. 在运行 VM 1 的 box 1 和 2 之间设置一个 DRDB 分区,因此在 box1 和 box 2 之间复制,在 box 2 & 3 和 box 3 & 1 之间重复(这可能很疯狂,我从来没有只使用过 DRDB阅读它)

  2. 只需使用标准的 KVM CLI 克隆选项来执行实时克隆(我对此表示怀疑,因为我不知道这需要多长时间以及在此期间会产生什么性能影响)

  3. 在至少一台其他主机上运行每个 VM 的副本,并让一台主机上的来宾将其数据导出到另一台主机上的匹配来宾,在那里它可以导入该数据,并在来宾上编写脚本)

  4. 一些其他的方式?欢迎提出想法!

边注

这些服务器在 RAID 10 中有 4x15k SAS 驱动器,因此它们不会飞速发展,而且正如我所提到的,每个 VM 都从主机的本地存储运行,没有 NAS 或 SAN 等。所以这就是我问这个关于来宾复制的问题的原因. 此外,这与灾难恢复无关。访客将通过 VPN 将他们的数据导出到 NAS,因此我正在研究如何让他们在主机故障情况下快速启动。

jwb*_*ley 0

@Zoredache 没有回应,但最终使用了 Ganeti 并爱上了它;

http://code.google.com/p/ganeti/

对于那些想要使用 KVM 作为集群虚拟机管理程序并进行无缝复制和迁移的人来说,我极力推荐这一点。