我有 2 台运行 HAProxy 的 Apache/PHP 服务器组成的小型集群,连接到 2 台 MySQL 集群服务器。站点由两台 Apache 服务器提供服务,DNS RR 可用于故障转移和粗略负载平衡。
图表:
Apache/PHP -- HAProxy -- MySQL
\/
/\
Apache/PHP -- HAProxy -- MySQL
(请原谅我缺乏 ASCII 艺术技能!)
我面临的麻烦是,Apache/PHP/HAProxy 服务器之一和两个 MySQL 服务器之间的网络定期出现故障。
但是,由于 Apache 仍在运行,因此每当请求依赖于 MySQL 是否可用时,它就会开始提供错误(正如您所期望的那样!)。
理想情况下,如果 MySQL 不可用,则应停止 Apache,并且当 MySQL 再次可用时,可能自动重新启动 Apache。
这将导致客户端请求由其他 Apache 服务器处理,无需任何人工干预。
是否有人知道可以配置为开箱即用的软件包?
答案1
Pacemaker 是一个集群资源管理器,可以配置为强制执行服务的位置和顺序约束。如果某些监视操作失败,集群可以按指定顺序重新启动依赖服务。
您可以在 ClusterLabs 网站上找到有关 Pacemaker 项目的更多信息:http://clusterlabs.org/