我正在阅读有关虚拟化中的 HA 技术的文章,但我看到的所有解决方案或多或少都像更专业的 VRRP 一样工作 - 当主机发生故障时,VM 会在另一个虚拟化主机上启动。如果存储是共享的(例如 iSCSI),则可以启动“同一个”VM,因此对于客户操作系统来说,这看起来像是电源故障。但如果 RAM 中有一些重要数据(例如内存数据库),那么它仍然会丢失。
不过,可以以一定的间隔创建正在运行的 VM 的快照(不幸的是,创建这样的快照需要花费大量时间,因此实际上不可能每隔 10 秒就创建一次)。然后,另一台虚拟化主机可以加载此类快照并继续“不间断”地运行 VM(加上减去间隔时间)。
所以我的问题是 - 是否有任何解决方案可以自动“镜像”虚拟机,以便在虚拟化主机发生故障后,虚拟机可以在另一台主机上“恢复”,而不会出现明显的中断?实际上就像虚拟机的 RAID1。在 RAM 级别完全同步的镜像。
答案1
答案2
1)部署 VMware vSphere 集群并使用容错https://www.vmware.com/files/pdf/techpaper/VMware-vSphere6-FT-arch-perf.pdf虚拟机上的功能(如上所述)。
2)部署XenServer集群并使用Remushttps://wiki.xenproject.org/wiki/Remus。
答案3
答案4
不幸的是,答案是不,至少对于商业/企业级虚拟机管理程序而言。
好吧,我承认错误:我从来没有使用过或读过Xen+雷穆斯,看起来还挺有意思的。
我知道 VMWare FT,但它如此巨大的局限性我自动丢弃了它。幸运的是,其中一些限制已被取消使用最新的 VMWare 版本。然而,在网络或 I/O 绑定场景中,原始性能影响实在太大,难以容忍。
无论如何,据我所知,两者都基于检查点:基本上,底层 VM 是持续实时迁移的。真正的 RAM 锁步/镜像要昂贵得多:几年前,一个基于 Qemu/KVM 的项目尝试了同样的事情 - 但由于其导致的性能大幅下降而被放弃。