我设法通过收集以下信息,建立了一个具有虚拟 IP 地址和 ldirectord 虚拟实例的起搏器心跳集群:这里,这里和这里。看来正确的使用方法ldirectord
是在两台 apache 服务器前面放置两台负载平衡服务器,然后做一些 arp 技巧让 apache 服务器响应虚拟 IP。
根据这篇博文(从“传统方式”开始),这些 arp 技巧在双服务器设置中不起作用,并且可能导致无限循环。然后他提出了一些解决方案,我并不完全理解,但这些解决方案是针对 keepalived 的。
所以我的问题是:是否可以使用集群 ldirectord 在同一两台服务器上的 apache 实例之间进行负载平衡?就像这张照片?
答案1
Keepalived 是一个与 heartbeat 不同的项目。
我通常使用 heartbeat 来实现高可用性。对于 heartbeat,您可以定义一台机器一次拥有的资源。VIP 是可以从一台机器“移动”到另一台机器的资源之一。据我所知,heartbeat 包不提供负载平衡。要实现负载平衡,我可以使用另一个包,例如 haproxy。
是的,可以使用相同的两台服务器充当负载平衡器和 Web 服务器。
答案2
使用 keepalived。
它是目前首选的软件,ldirectord 已经有好几年没有维护了。
是的,可以运行双节点设置。
然而每一个真实的集群至少需要三个节点。