有没有办法在 Linux 下执行以下操作:
- 有两个Web服务器,主服务器和备份服务器
- 有两个数据库服务器(postgres),主服务器和备份服务器
- Web 服务器彼此同步,即。配置/内容/应用程序相同
- 备份数据库与主数据库不断同步。
- 如果任何一个主服务器出现故障,它就会被即时替换为备用服务器。
- 当主数据库服务器备份时,备份服务器的所有数据都上传到它。
更复杂的是,一个重要的细节是这两个服务器实际上是 VPS,并且它们由不同的提供商托管在不同的国家,因此在同一子网/机架等中的服务器的明显解决方案都不会在这里工作。
本质上,如果可能的话,我需要在没有或最少用户干预的情况下自动进行热交换。恢复过程最好是自动的,但可以包括一些手动步骤。
http://www.linuxvirtualserver.org/
将允许您在生产和备份服务器前面放置一个负载均衡器(或更好,两个)。
您可以单独使用 heartbeat,这将允许一个公共 IP 由两个 IP 提供服务。它必须感觉到主要或次要出现故障,然后发出公告以成为该公共 IP。
你会有类似的东西:
每个人都会看到单个 IP,该 IP 将由任何一台“活动”的机器提供虚拟服务
将 haproxy 或 Nginx 作为前端负载均衡器。如果主服务器出现故障,这将监控流量并从主服务器重定向到备份服务器,反之亦然,即自动故障转移。
对于数据库之间的数据同步,请查看多主复制。
您可能应该查看 Web 层的 DNS 故障转移,以及 DB 层的 Tungsten Cluster。
干杯