Linux Web/数据库服务器的热插拔

Linux Web/数据库服务器的热插拔

有没有办法在Linux下执行以下操作:

  1. 有两个 Web 服务器,主服务器和备份服务器
  2. 有两个数据库服务器(postgres),主服务器和备份服务器
  3. Web 服务器彼此同步,即配置/内容/应用程序相同
  4. 备份数据库与主数据库持续同步。
  5. 如果任何一个主服务器出现故障,它将被备份服务器即时替换。
  6. 当主数据库服务器恢复时,备份服务器中的所有数据都会上传到主数据库服务器。

为了使其变得更加复杂,一个重要的细节是这两个服务器实际上是 VPS,它们由不同的提供商托管在不同的国家/地区,因此同一子网/机架等中的服务器的明显解决方案都无法在这里发挥作用。

本质上,如果可能的话,我需要热插拔自动工作,无需或尽量减少用户干预。恢复过程最好是自动的,但可以包括一些手动步骤。

答案1

http://www.linuxvirtualserver.org/

允许您在生产和备份服务器前面放置一个负载均衡器(或更好的是两个)。

您可以单独使用心跳,这样可以让一个公共 IP 由两个 IP 提供服务。它必须感知到主 IP 或辅助 IP 发生故障,然后发出公告以成为该公共 IP。

你可能会得到类似这样的结果:

Public IP   1.2.3.4
Primary Server 1.2.3.5
Backup Server 1.2.3.6

每个人都会看到单个 IP,该 IP 实际上由处于“活动”状态的机器提供服务

答案2

将 haproxy 或 Nginx 作为前端负载均衡器。如果主服务器发生故障,它将监控并将流量从主服务器重定向到备份服务器,反之亦然,即自动故障转移。

对于数据库之间的数据同步,请查看多主复制

答案3

您可能应该查看 Web 层的 DNS 故障转移,或许还应该查看 DB 层的 Tungsten Cluster。

干杯

相关内容