设置 Linux Web 服务器进行手动故障转移的最有效方法是什么

设置 Linux Web 服务器进行手动故障转移的最有效方法是什么

我目前管理一个运行 ubuntu linux 的小型 Web 服务器,该服务器带有 apache、mysql 和 ssh。我使用 rsync 将其备份到另一台服务器,但我将其备份到 /backup 目录。

我希望这样设置,如果第一台服务器出现故障,我可以更改第二台服务器的 IP,并让所有用户、文件、数据库等准备就绪。

有人对解决此问题最简单/最佳方法有什么建议吗?

注意事项

  • 用户
  • 数据库
  • Apache 配置
  • 文件
  • 确保两个盒子上都安装了相同的软件。(可能需要提前做这件事)

答案1

对于基于文件的服务(Web 服务器等),rsync 可以有效地使第二台服务器保持最新状态 - (用户、配置等) - 当涉及到数据库时,事情会变得有点复杂(我为此使用了 MySQL 和从属服务器,而且非常有效,我也在一些 HA/备用配置中使用了 PostgreSQL,但它比较笨拙)

这与少量 IP 盗窃(一个将故障机器的 IP 分配给备份机器接口的快速脚本)相结合,可以实现相对简单的设置,但允许快速恢复。

只需考虑一件事 - 小心故障恢复。将服务移至备份机器是一回事,在纠正故障后将其移回可能会很棘手,请密切关注数据库。

如果你决定让它更加自动化,LinuxHA 是一个(有点重量级的)方法

http://www.linux-ha.org/

答案2

您可以使用同步或者驱动保持备份服务器同步,或通过以下方式挂载数据网络文件系统从第三台服务器备份。如果你想保持简单,我会备份到相同的备份服务器上的目录位置与源服务器相同。

心跳2是管理 IP 地址的良好解决方案,并提供了自动或手动故障转移工具 - 并考虑到 arp 缓存刷新和其他我没有想到的事情。

答案3

虚拟化可以帮到您。您可以让 2 台服务器作为主机服务器运行,每台服务器都配备一台随时可用的虚拟服务器。实时服务器运行虚拟服务器,而备份服务器的虚拟服务器“已关闭”,但仍可访问该服务器的文件系统。

然后,您就可以定期从实时虚拟服务器向备份虚拟服务器进行 rsync。如果实时服务器出现故障,您只需启动备份虚拟服务器即可。

细节取决于您使用的虚拟化软件(我以前使用过 linux-vserver 来完成此操作),但一些要点是:

  • 您将需要排除一些设置 - 特别是 IP 地址。
  • 当一切正常时测试你的设置 - 你需要知道有用
  • 例如,为 www1.mysite.com 和 www2.mysite.com 设置 DNS,其中 www.mysite.com 为 www1 和 www2 的循环 DNS
  • 你甚至可以研究某种心跳服务来自动启动备份服务器,但这可能过于复杂,除非停机时间真的昂贵的。

答案4

我相信 heartbeat 会为您做到这一点,但如果您不使用它,我建议手动为 Web 服务器设置一个虚拟 IP。

每个 Web 服务器都有自己的真实 IP 和虚拟 IP。只有当某台机器是活动 Web 服务器时,才会为其分配虚拟 IP。

这种设置意味着 ssh、rsync 和所有其他工具可以继续在真实 IP 上运行,而不会因变化的 IP 地址而感到困惑。

相关内容