我们需要为 VOIP 应用程序设置容错解决方案,最好使用 Linux 集群。
应用程序将驻留在服务器 A 上,而配置相同的服务器 B 将充当故障转移服务器。虽然我们能够切换 IP,甚至可以确保应用程序在故障转移时使用 HeartBeat 和 DRBD 在一分钟内启动,但会出现通话中断的情况。原因是虽然可以使用 DRBD 动态复制数据,但我认为仍在内存中的通话会话会崩溃。
我们能够使用 Vmware Enterprise editon 建立高可用性集群,但解决方案的成本非常高。
有人建议我使用 Ubuntu Cloud 设置一个 Ubuntu 集群,这将是一个高可用性解决方案。我尝试了手册,但我们实际上无法拥有一个可以在两个或更多服务器上提供服务的实例,这样即使一台机器出现故障,虚拟机也能保持完好无损。
我本质上需要的是一种解决方案,即使主服务器出现故障,虚拟机仍可保持运行,会话保持稳定。不要建议使用 heartbeat&DRBD,因为在这种情况下不起作用。如果可以使用其他开源平台,请提供建议
答案1
您可以使用 Xen 和 Remus。Remus 会保留您的 VM 的实时副本,如果原始副本死机,它会接管。
Remus 为在 Xen 虚拟机监视器上运行的普通虚拟机提供透明、全面的高可用性。它通过在备份服务器上维护正在运行的 VM 的完整最新副本来实现这一点,如果主服务器发生故障,该备份服务器会自动激活。主要功能:
- 备份虚拟机是主虚拟机的精确副本。当发生故障时,它会继续在备份主机上运行,就像从未发生过故障一样。
- 备份完全是最新的。即使活动的 TCP 会话也会不间断地保持。
- 保护是透明的。现有的客户端可以受到保护,而无需以任何方式进行修改。
这是 Xen 的新功能,因此可能需要进行一些调整,但它是免费的!